From eaa43c5d89024b90fada14a76702deefff54f3ea Mon Sep 17 00:00:00 2001 From: Rafał Lichwała Date: Mon, 24 Nov 2025 20:32:08 +0100 Subject: kconfig: add update script for split view closing options --- src/CMakeLists.txt | 14 +++++++++++++ src/settings/dolphin_splitviewsettings.upd | 6 ++++++ src/settings/dolphin_update_splitviewsettings.cpp | 25 +++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/settings/dolphin_splitviewsettings.upd create mode 100644 src/settings/dolphin_update_splitviewsettings.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 80f2f12b1..3cf10f486 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -646,6 +646,20 @@ install( DESTINATION ${KDE_INSTALL_LIBDIR}/kconf_update_bin ) +add_executable( + dolphin_update_splitviewsettings + "settings/dolphin_update_splitviewsettings.cpp" +) +target_link_libraries(dolphin_update_splitviewsettings + KF6::ConfigCore + KF6::XmlGui +) +install( + TARGETS + dolphin_update_splitviewsettings + DESTINATION ${KDE_INSTALL_LIBDIR}/kconf_update_bin +) + if(BUILD_TESTING) add_subdirectory(tests) endif() diff --git a/src/settings/dolphin_splitviewsettings.upd b/src/settings/dolphin_splitviewsettings.upd new file mode 100644 index 000000000..212f005f7 --- /dev/null +++ b/src/settings/dolphin_splitviewsettings.upd @@ -0,0 +1,6 @@ +#Configuration update for Dolphin +Version=6 + +#Convert bool CloseActiveSplitView to enum CloseSplitViewChoice +Id=24.11.2025-convert-closeactivesplitview-bool-to-closesplitviewchoice-enum +Script=dolphin_update_splitviewsettings diff --git a/src/settings/dolphin_update_splitviewsettings.cpp b/src/settings/dolphin_update_splitviewsettings.cpp new file mode 100644 index 000000000..5ba905442 --- /dev/null +++ b/src/settings/dolphin_update_splitviewsettings.cpp @@ -0,0 +1,25 @@ +#include +#include + +int main() +{ + const auto closeActiveSplitView = QStringLiteral("CloseActiveSplitView"); + const auto closeSplitViewChoice = QStringLiteral("CloseSplitViewChoice"); + auto config = KSharedConfig::openConfig(QStringLiteral("dolphinrc")); + + KConfigGroup general = config->group(QStringLiteral("General")); + if (!general.hasKey(closeActiveSplitView)) { + return EXIT_SUCCESS; + } + + const auto value = general.readEntry(closeActiveSplitView); + if (value == QStringLiteral("true")) { + general.deleteEntry(closeActiveSplitView); + general.writeEntry(closeSplitViewChoice, QStringLiteral("ActiveView")); + } else if (value == QStringLiteral("false")) { + general.deleteEntry(closeActiveSplitView); + general.writeEntry(closeSplitViewChoice, QStringLiteral("InactiveView")); + } + + return general.sync() ? EXIT_SUCCESS : EXIT_FAILURE; +} -- cgit v1.3