Version: (using Devel) OS: Linux Installed from: Compiled sources If the filter is set to "*.Foo", KFileDialog will change it to "*.foo": it displays the lower case version in the bottom text "Automatically select...", and will indeed use the lower case if the file is saved. Using the exact same code under windows, the extension is displayed and used as expected, unchanged. This is especially hurtful as it happens even from a Qt-only application. I think this commit is kind of related as it introduces the toLower(), but i'm not sure of how to fix it. http://websvn.kde.org/trunk/KDE/kdelibs/kio/kfile/kfiledialog.cpp?r1=948437&r2=948436&pathrev=948437 I'm not even sure you will consider it as a bug, though i think it is.
Nearly all MIME types allow extensions in either case, so x.jpeg and x.JPEG are both considered the same extension. For the remaining extensions where case matters (such as .c vs .C), it would be possible to parse MIME database to find them.
Though, the current KFileDialog will never write anything but lowercase extensions. To accept files in a case-insensitve manner is one thing (ok), but not respecting the case given by the developer seems an unneeded technical limitation.
The bug is still there in 4.5. We have several software here with long extension (>8 characters) and the case matters. We cannot save files with those extensions because of KDE. Fortunately the Qt file dialog is ok with this regard, so we can compile our software with Qt only, but sometimes this is still the KDE dialog that is used, and we have to rename files by hand afterward... really annoying :/
Works for me in KDE Frameworks 5.45. Saving (including for file extensions) is case-sensitive, while filtering is not. This seems sane.