SUMMARY The warning popup when trying to save a document through Save As... or Export... over an identically named file (+ format) in the folder is skipped if the File name input does not explicitly have the file ending written. This seems to only happen if the native file dialog option under Configure Krita > General > Miscellaneous is disabled. STEPS TO REPRODUCE 1. Make sure the native file dialogs option is disabled 2. Open an image file in Krita and save it into a folder 3. Overwrite it through Save As..., leave the file name unchanged but remove the file ending 4. Change the file format from the Type drop-down and try overwriting that file too OBSERVED RESULT The overwrite warning dialog is skipped. EXPECTED RESULT The overwrite warning should appear just like when the file ending is written out. SOFTWARE/OS VERSIONS Tested in master build (git 9b45d78), AppImage (git 511ecc7) and 4.2.7 from repo, all showing the same behavior. KDE Plasma 5.16.5 + Dolphin ADDITIONAL INFORMATION I'm using Plasma and Dolphin, in case that influences the behavior of the native file dialog. Original context is this reddit topic: https://www.reddit.com/r/krita/comments/dcztyv/krita_does_not_inform_me_there_is_another_file/
https://bugreports.qt.io/browse/QTBUG-27186 seems relevant
Git commit b8073ac7a6a673e26ce6ea55eb3db77749e6e8f7 by Agata Cacko. Committed on 30/10/2019 at 17:19. Pushed by tymond into branch 'master'. Make jp(e)g default extensions context-aware This commit contains changes to Qt that enable two things: - non-native file dialogs give .jpg or .jpeg extension depending on the context: 1. If the current file is *.jp(e)g, suggest that extension. 2. Whether there are already files with this name and extension in the directory, take that extension. 3. Take .jpg. - "All" filter now suggests .kra extension instead of .exr. A +161 -0 3rdparty/ext_qt/0082-jpeg-extensions-handling-in-non-native-file-dialogs.patch M +5 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/b8073ac7a6a673e26ce6ea55eb3db77749e6e8f7
Git commit c5c9528b1d2c2b322eac516103cf22bfedee673a by Agata Cacko, on behalf of Friedemann Kleint. Committed on 30/10/2019 at 17:19. Pushed by tymond into branch 'master'. Fix no warning for overwriting files in non-native dialogs Before this commit, in case a user wanted to Save As "filename", Krita would add an extension based on the selected filter. In native file dialogs, Krita will warn user if it would overwrite the file. In non-native file dialogs though (based on Qt widgets), it wouldn't happen. This commit makes it possible to append the extension before the non-native file dialog is closed, which enables warning before overwriting the file inside the file dialog. This commit applies the patch from Qt bug report: https://bugreports.qt.io/browse/QTBUG-27186 https://codereview.qt-project.org/c/qt/qtbase/+/109815/ Author of the patch and info from the original commit: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Task-number: QTBUG-27186 Change-Id: I3ece055b328dfe361b93e68954cb0a33bd9e7d94 "The Windows native dialog prefers the name filter over the defaultSuffix (uses the same mechanism), I chose the convervative approach here (defaultSuffix takes precedence)." A +123 -0 3rdparty/ext_qt/0081-non-native-file-dialog-overwrite-warnings-based-on-filter.patch M +5 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/c5c9528b1d2c2b322eac516103cf22bfedee673a
Git commit 5bc7a40b1ea6841df6144cdc3ffd893664283057 by Agata Cacko. Committed on 30/10/2019 at 17:19. Pushed by tymond into branch 'master'. Make sure non-native file dialogs show extensions Since the fix in the file dialog that was implemented is based on extensions mentioned in the filter, the filter needs to show the extensions... It's a bit of an unwanted dependency between view and logic, so it would be good to find a way to implement it wiser. M +1 -1 libs/widgetutils/KoFileDialog.cpp https://invent.kde.org/kde/krita/commit/5bc7a40b1ea6841df6144cdc3ffd893664283057
Git commit 3fd9f4bc8009204746b908c2dc47f2cf1b257a04 by Agata Cacko. Committed on 10/12/2019 at 18:55. Pushed by tymond into branch 'krita/4.2'. Make sure non-native file dialogs show extensions Since the fix in the file dialog that was implemented is based on extensions mentioned in the filter, the filter needs to show the extensions... It's a bit of an unwanted dependency between view and logic, so it would be good to find a way to implement it wiser. M +1 -1 libs/widgetutils/KoFileDialog.cpp https://invent.kde.org/kde/krita/commit/3fd9f4bc8009204746b908c2dc47f2cf1b257a04
Git commit 0932736885f7e6609f912f1ef2c48830b9508359 by Agata Cacko, on behalf of Friedemann Kleint. Committed on 11/12/2019 at 12:47. Pushed by tymond into branch 'krita/4.2'. Fix no warning for overwriting files in non-native dialogs Before this commit, in case a user wanted to Save As "filename", Krita would add an extension based on the selected filter. In native file dialogs, Krita will warn user if it would overwrite the file. In non-native file dialogs though (based on Qt widgets), it wouldn't happen. This commit makes it possible to append the extension before the non-native file dialog is closed, which enables warning before overwriting the file inside the file dialog. This commit applies the patch from Qt bug report: https://bugreports.qt.io/browse/QTBUG-27186 https://codereview.qt-project.org/c/qt/qtbase/+/109815/ Author of the patch and info from the original commit: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Task-number: QTBUG-27186 Change-Id: I3ece055b328dfe361b93e68954cb0a33bd9e7d94 "The Windows native dialog prefers the name filter over the defaultSuffix (uses the same mechanism), I chose the convervative approach here (defaultSuffix takes precedence)." A +123 -0 3rdparty/ext_qt/0081-non-native-file-dialog-overwrite-warnings-based-on-filter.patch M +4 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/0932736885f7e6609f912f1ef2c48830b9508359
Git commit fa031e630b99b5782698adab6161ade45bee0b3d by Agata Cacko. Committed on 11/12/2019 at 12:48. Pushed by tymond into branch 'krita/4.2'. Make jp(e)g default extensions context-aware This commit contains changes to Qt that enable two things: - non-native file dialogs give .jpg or .jpeg extension depending on the context: 1. If the current file is *.jp(e)g, suggest that extension. 2. Whether there are already files with this name and extension in the directory, take that extension. 3. Take .jpg. - "All" filter now suggests .kra extension instead of .exr. A +161 -0 3rdparty/ext_qt/0082-jpeg-extensions-handling-in-non-native-file-dialogs.patch M +4 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/fa031e630b99b5782698adab6161ade45bee0b3d
Git commit 9d1dd6ed529d23c3ec4806ce3b0e4428155d7830 by Alvin Wong, on behalf of Bourumir Wyngs. Committed on 09/05/2022 at 15:13. Pushed by alvinwong into branch 'master'. Set default file suffix in save dialog When using Qt's non-native QFileDialog, this is needed for the save dialog to correctly append the default file extension, so that the dialog can correctly prompt the user before overwriting an existing file. Related: bug 440122 M +46 -13 libs/widgetutils/KoFileDialog.cpp M +6 -3 libs/widgetutils/KoFileDialog.h https://invent.kde.org/graphics/krita/commit/9d1dd6ed529d23c3ec4806ce3b0e4428155d7830
Git commit 45b8fd5f867e7ea9fedc488cd2e034a616ea36fc by Alvin Wong. Committed on 09/05/2022 at 15:13. Pushed by alvinwong into branch 'master'. ext_qt: Remove patches adding default file suffix They didn't work quite well and relied on specific options being set in caller code, so we are replacing it and handle the default file suffix from Krita directly. Related: bug 440122 D +0 -156 3rdparty/ext_qt/0081-Fix-no-warning-for-overwriting-files-in-non-native-d.patch D +0 -186 3rdparty/ext_qt/0082-Make-jp-e-g-default-extensions-context-aware.patch M +0 -6 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/graphics/krita/commit/45b8fd5f867e7ea9fedc488cd2e034a616ea36fc