]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Confirmations setting: Add checkbox for ConfirmOpenManyFolders and ConfirmOpenManyTer...
authorMéven Car <meven@kde.org>
Mon, 28 Aug 2023 11:59:02 +0000 (13:59 +0200)
committerMéven Car <meven@kde.org>
Mon, 28 Aug 2023 11:59:09 +0000 (13:59 +0200)
We have to special handle the values saved as it is interpreted by KMessageBox

src/settings/dolphin_generalsettings.kcfg
src/settings/interface/confirmationssettingspage.cpp
src/settings/interface/confirmationssettingspage.h

index aedc24ea47ed3b22cd10bdb35b1e2dfbf2e03036..9bb202b7152733283233278d3ec3d5d97889cef0 100644 (file)
             <emit signal="sortingChoiceChanged" />
         </entry>
     </group>
             <emit signal="sortingChoiceChanged" />
         </entry>
     </group>
+    <group name="Notification Messages">
+        <entry name="ConfirmOpenManyFolders" type="Bool">
+            <label>Ask for confirmation when opening many folders at once.</label>
+            <default>false</default>
+        </entry>
+        <entry name="ConfirmOpenManyTerminals" type="Bool">
+            <label>Ask for confirmation when opening many terminals at once.</label>
+            <default>false</default>
+        </entry>
+    </group>
 </kcfg>
 </kcfg>
index 61c3a14b6a17f919dcaf7e6fb68ee71e2eb8ad21..491f8261fb6ad4e809f0877557a1191db6f54e11 100644 (file)
@@ -60,9 +60,12 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget *parent)
         new QCheckBox(i18nc("@option:check Ask for confirmation when", "Closing windows with a program running in the Terminal panel"), this);
 #endif
 
         new QCheckBox(i18nc("@option:check Ask for confirmation when", "Closing windows with a program running in the Terminal panel"), this);
 #endif
 
+    m_confirmOpenManyFolders = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when", "Opening many folders at once"), this);
+    m_confirmOpenManyTerminals = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when", "Opening many terminals at once"), this);
+
     QHBoxLayout *executableScriptLayout = new QHBoxLayout();
     QLabel *executableScriptLabel = new QLabel(i18nc("@title:group", "When opening an executable file:"), this);
     QHBoxLayout *executableScriptLayout = new QHBoxLayout();
     QLabel *executableScriptLabel = new QLabel(i18nc("@title:group", "When opening an executable file:"), this);
-    confirmLabelKde->setWordWrap(true);
+    executableScriptLabel->setWordWrap(true);
     executableScriptLayout->addWidget(executableScriptLabel);
 
     m_confirmScriptExecution = new QComboBox(this);
     executableScriptLayout->addWidget(executableScriptLabel);
 
     m_confirmScriptExecution = new QComboBox(this);
@@ -81,6 +84,9 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget *parent)
     topLayout->addWidget(m_confirmClosingTerminalRunningProgram);
 #endif
 
     topLayout->addWidget(m_confirmClosingTerminalRunningProgram);
 #endif
 
+    topLayout->addWidget(m_confirmOpenManyFolders);
+    topLayout->addWidget(m_confirmOpenManyTerminals);
+
     topLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT);
     topLayout->addLayout(executableScriptLayout);
 
     topLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT);
     topLayout->addLayout(executableScriptLayout);
 
@@ -93,6 +99,8 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget *parent)
     connect(m_confirmDelete, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
     connect(m_confirmScriptExecution, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ConfirmationsSettingsPage::changed);
     connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
     connect(m_confirmDelete, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
     connect(m_confirmScriptExecution, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ConfirmationsSettingsPage::changed);
     connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
+    connect(m_confirmOpenManyFolders, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
+    connect(m_confirmOpenManyTerminals, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
 
 #if HAVE_TERMINAL
     connect(m_confirmClosingTerminalRunningProgram, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
 
 #if HAVE_TERMINAL
     connect(m_confirmClosingTerminalRunningProgram, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
@@ -128,6 +136,8 @@ void ConfirmationsSettingsPage::applySettings()
 
     GeneralSettings *settings = GeneralSettings::self();
     settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked());
 
     GeneralSettings *settings = GeneralSettings::self();
     settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked());
+    settings->setConfirmOpenManyFolders(!m_confirmOpenManyFolders->isChecked());
+    settings->setConfirmOpenManyTerminals(!m_confirmOpenManyTerminals->isChecked());
 
 #if HAVE_TERMINAL
     settings->setConfirmClosingTerminalRunningProgram(m_confirmClosingTerminalRunningProgram->isChecked());
 
 #if HAVE_TERMINAL
     settings->setConfirmClosingTerminalRunningProgram(m_confirmClosingTerminalRunningProgram->isChecked());
@@ -169,6 +179,12 @@ void ConfirmationsSettingsPage::loadSettings()
 
     m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs());
 
 
     m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs());
 
+    // KMessageBox for its dontshowAgain settings are true => Yes, false => No, No value => ask
+    // we use default = false to not write false into the rc file, but have no value
+    // the UI has inversed meaning compared to the interpretation
+    m_confirmOpenManyFolders->setChecked(!GeneralSettings::confirmOpenManyFolders());
+    m_confirmOpenManyTerminals->setChecked(!GeneralSettings::confirmOpenManyTerminals());
+
 #if HAVE_TERMINAL
     m_confirmClosingTerminalRunningProgram->setChecked(GeneralSettings::confirmClosingTerminalRunningProgram());
 #endif
 #if HAVE_TERMINAL
     m_confirmClosingTerminalRunningProgram->setChecked(GeneralSettings::confirmClosingTerminalRunningProgram());
 #endif
index 56dd1a78ccc4d813992600aedb377df06c7bc922..d9413d754f3200c209779c50e0ccf193904e743a 100644 (file)
@@ -43,6 +43,8 @@ private:
 
     QCheckBox *m_confirmClosingMultipleTabs;
     QComboBox *m_confirmScriptExecution;
 
     QCheckBox *m_confirmClosingMultipleTabs;
     QComboBox *m_confirmScriptExecution;
+    QCheckBox *m_confirmOpenManyFolders;
+    QCheckBox *m_confirmOpenManyTerminals;
 };
 
 #endif
 };
 
 #endif