Bug 518136 - Qt6: Incremental Version and Incremental Backup Saves Do Not Work
Summary: Qt6: Incremental Version and Incremental Backup Saves Do Not Work
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (other bugs)
Version First Reported In: 6.0.0
Platform: Other Linux
: NOR major
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-03-25 17:26 UTC by zhjihuang
Modified: 2026-03-27 15:18 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zhjihuang 2026-03-25 17:26:16 UTC
SUMMARY
There seems to be issues for Krita 6 where incremental and backup saves do not work properly. I've tried 5.3.0 and saving using those options work on that version on the same machines.

STEPS TO REPRODUCE
Attempt to save using incremental version or incremental backup.

OBSERVED RESULT
1. Save document normally (ctrl+s), no issues, though the usual backup (~) copy does not get created.
2. Save document using incremental version, get error popup: "Krita alternative names exhausted try saving manually with a higher number"
3. Save document using incremental backup, Krita locks up completely.

EXPECTED RESULT
Backups are made and saved.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Official Fedora Sway Atomic / Custom Niri Image
Qt Version:
$ rpm -qa | grep qt
qt5-filesystem-5.15.18-1.fc43.x86_64
qt-settings-43.101-3.fc43.noarch
qt5-qtbase-5.15.18-1.fc43.x86_64
qt5-qtbase-common-5.15.18-1.fc43.noarch
qt5-qtbase-gui-5.15.18-1.fc43.x86_64
qt5-qtdeclarative-5.15.18-1.fc43.x86_64
qt5-qtwayland-5.15.18-1.fc43.x86_64
qt5-qtx11extras-5.15.18-1.fc43.x86_64
gstreamer1-plugins-good-qt-1.26.10-1.fc43.x86_64
qt5-qtxmlpatterns-5.15.18-1.fc43.x86_64
qt5-qttranslations-5.15.18-1.fc43.noarch
qt6-filesystem-6.10.2-1.fc43.x86_64
qt6-qtbase-6.10.2-2.fc43.x86_64
qt6-qtbase-common-6.10.2-2.fc43.noarch
qt6-qtbase-gui-6.10.2-2.fc43.x86_64
qt6-qtsvg-6.10.2-1.fc43.x86_64
qt6-qtdeclarative-6.10.2-2.fc43.x86_64
gstreamer1-plugins-good-qt6-1.26.10-1.fc43.x86_64
qt6-qttranslations-6.10.2-1.fc43.noarch

ADDITIONAL INFORMATION
None.
Comment 1 Halla Rempt 2026-03-25 18:01:42 UTC
Could you please check whether this also happens with the appimage?
Comment 2 Freya Lupen 2026-03-25 18:13:56 UTC
I can reproduce the issues with incremental save and incremental backup on Krita 6.0.0 (on macOS).
Incremental backup gets stuck here:
> 0   QtCore5Compat                 	       0x10622d4a0 invalidateEngine(QRegExpPrivate*) + 56
> 1   QtCore5Compat                 	       0x10622e3d4 QRegExp::replaceIn(QString const&, QString const&) const + 168
> 2   libkritaui.21.0.0.dylib       	       0x105354854 KisViewManager::slotSaveIncrementalBackup() + 14760
There must be a mistake somewhere in the if-def'd code for the rewritten regular expression handling on Qt6.

However, I don't have any issues with the normal ~ backup.
Comment 3 zhjihuang 2026-03-25 23:57:24 UTC
(In reply to Halla Rempt from comment #1)
> Could you please check whether this also happens with the appimage?

Sorry, I forgot to mention that this was happening with the official appimages.
Comment 4 Freya Lupen 2026-03-26 19:43:59 UTC
Git commit c50d034f64e969974da54bf08f5ca7fd5ad9d2ee by Freya Lupen.
Committed on 26/03/2026 at 19:43.
Pushed by freyalupen into branch 'master'.

Qt6: Fix saving incremental version/backup

QRegExp.replaceIn, unlike QString.replace,
does not modify the string in place.

M  +5    -5    libs/ui/KisViewManager.cpp
M  +2    -2    libs/ui/widgets/kis_floating_message.cpp
M  +1    -1    plugins/tools/svgtexttool/SvgTextInsertCommand.cpp

https://invent.kde.org/graphics/krita/-/commit/c50d034f64e969974da54bf08f5ca7fd5ad9d2ee
Comment 5 Freya Lupen 2026-03-26 19:44:43 UTC
Git commit 5dc4cb82e02173b37ad99148aa289a401276c69b by Freya Lupen.
Committed on 26/03/2026 at 19:44.
Pushed by freyalupen into branch 'krita/6.0'.

Qt6: Fix saving incremental version/backup

QRegExp.replaceIn, unlike QString.replace,
does not modify the string in place.


(cherry picked from commit c50d034f64e969974da54bf08f5ca7fd5ad9d2ee)

Co-authored-by: Freya Lupen <penguinflyer2222@gmail.com>

M  +5    -5    libs/ui/KisViewManager.cpp
M  +2    -2    libs/ui/widgets/kis_floating_message.cpp
M  +1    -1    plugins/tools/svgtexttool/SvgTextInsertCommand.cpp

https://invent.kde.org/graphics/krita/-/commit/5dc4cb82e02173b37ad99148aa289a401276c69b
Comment 6 Dmitry Kazakov 2026-03-27 15:18:04 UTC
Git commit ecd80681447a42f96c9bcabffba4978f0c16ba91 by Dmitry Kazakov, on behalf of Freya Lupen.
Committed on 27/03/2026 at 15:11.
Pushed by dkazakov into branch 'release/6.0.0'.

Qt6: Fix saving incremental version/backup

QRegExp.replaceIn, unlike QString.replace,
does not modify the string in place.


(cherry picked from commit c50d034f64e969974da54bf08f5ca7fd5ad9d2ee)

Co-authored-by: Freya Lupen <penguinflyer2222@gmail.com>

M  +5    -5    libs/ui/KisViewManager.cpp
M  +2    -2    libs/ui/widgets/kis_floating_message.cpp
M  +1    -1    plugins/tools/svgtexttool/SvgTextInsertCommand.cpp

https://invent.kde.org/graphics/krita/-/commit/ecd80681447a42f96c9bcabffba4978f0c16ba91