Created attachment 154729 [details] Save dialog in Krita app STEPS TO REPRODUCE 1. Open application that uses kio (such as Krita, Ocenaudio, etc) 2. Try to save a current document 3. Go to File -> Save/Save As 4. Click on the Filter dropdown menu OBSERVED RESULT All the fields are empty. EXPECTED RESULT List of all supported file types. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Artix Linux KDE Plasma Version: 5.26.4 KDE Frameworks Version: 5.101.0 Qt Version: 5.15.7 ADDITIONAL INFORMATION Here's a terminal log taken from Krita Invalid profile : "/usr/share/color/icc/colord/Crayons.icc" Invalid profile : "/usr/share/color/icc/colord/x11-colors.icc" QObject::startTimer: Timers cannot have negative intervals /usr/lib/krita-python-libs/krita added to PYTHONPATH QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::setCompositionMode: Painter not active QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::setCompositionMode: Painter not active kf.kio.filewidgets.kfilefiltercombo: Could not find filter " *.kra *.krz |Krita document " krita.lib.widgetutils: KoFileDialog::onFilterSelected: Cannot find suffix for filter "" krita.lib.widgetutils: KoFileDialog::onFilterSelected: Cannot find suffix for filter "" kf.kio.filewidgets.kfilefiltercombo: Could not find filter " *.kra *.krz |Krita document " krita.lib.widgetutils: KoFileDialog::onFilterSelected: Cannot find suffix for filter "" libpng warning: iCCP: known incorrect sRGB profile krita.lib.widgetutils: KoFileDialog::onFilterSelected: Cannot find suffix for filter "*.krz" QFSFileEngine::open: No file name specified
Can't reproduce, works fine here
*** Bug 463544 has been marked as a duplicate of this bug. ***
*** Bug 463535 has been marked as a duplicate of this bug. ***
Can reproduce on Neon user edition
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/1092
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/1095
Git commit adad3bec21ebbc886f45ec2ae6065d6b6070fa93 by David Faure, on behalf of Nicolas Fella. Committed on 11/01/2023 at 22:43. Pushed by dfaure into branch 'master'. Restore old behavior for KFileFilterCombo::setFilter fb2a2268dbb2033bb8483d9bee63cb11f914573e refactored it to use the newly introduced KFileFilter class to parse the input. However, it actually allows input that is not a valid filter string expression. For example K3B uses filters like "audio/x-wav |Wave Sound Files", which are now parsed incorrectly. Also, contrary to KFileWidget's filter strings slashes were allowed unescapted, which broke Krita. K3B's usage of KFileFilterCombo for this is somewhat questionable, but we should not break it regardless. Longer-term setFilter should be replaced with API that takes a KFileFilter object to avoid such confusion Revert the implementation of setFilter to the original one. For setMimeFilter the usage of KFileFilter is fine. That means we now have separate codepaths for when setFilter and setMimeFilter was called. Longer-term there will be only one using KFileFilter M +20 -0 autotests/kfilefiltercombotest.cpp M +45 -19 src/filewidgets/kfilefiltercombo.cpp https://invent.kde.org/frameworks/kio/commit/adad3bec21ebbc886f45ec2ae6065d6b6070fa93
Git commit c576a6e53b8d14b584525ac6241f952eb53446ea by David Faure, on behalf of Nicolas Fella. Committed on 11/01/2023 at 22:44. Pushed by dfaure into branch 'kf5'. Restore old behavior for KFileFilterCombo::setFilter fb2a2268dbb2033bb8483d9bee63cb11f914573e refactored it to use the newly introduced KFileFilter class to parse the input. However, it actually allows input that is not a valid filter string expression. For example K3B uses filters like "audio/x-wav |Wave Sound Files", which are now parsed incorrectly. Also, contrary to KFileWidget's filter strings slashes were allowed unescapted, which broke Krita. K3B's usage of KFileFilterCombo for this is somewhat questionable, but we should not break it regardless. Longer-term setFilter should be replaced with API that takes a KFileFilter object to avoid such confusion Revert the implementation of setFilter to the original one. For setMimeFilter the usage of KFileFilter is fine. That means we now have separate codepaths for when setFilter and setMimeFilter was called. Longer-term there will be only one using KFileFilter (cherry picked from commit adad3bec21ebbc886f45ec2ae6065d6b6070fa93) M +20 -0 autotests/kfilefiltercombotest.cpp M +45 -19 src/filewidgets/kfilefiltercombo.cpp https://invent.kde.org/frameworks/kio/commit/c576a6e53b8d14b584525ac6241f952eb53446ea