X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa36c3fd1f53a223f43bb57d7c28e431a889a7c2..20d57ab48875a4a8cff440254dc379e4bc1393bc:/src/settings/general/confirmationssettingspage.cpp diff --git a/src/settings/general/confirmationssettingspage.cpp b/src/settings/general/confirmationssettingspage.cpp index c74efedc2..90dd0ad37 100644 --- a/src/settings/general/confirmationssettingspage.cpp +++ b/src/settings/general/confirmationssettingspage.cpp @@ -21,8 +21,7 @@ #include -#include -#include +#include #include #include @@ -31,13 +30,14 @@ namespace { const bool ConfirmTrash = false; const bool ConfirmDelete = true; + const bool ConfirmScriptExecution = true; } ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : SettingsPageBase(parent), - m_confirmMoveToTrash(0), - m_confirmDelete(0), - m_confirmClosingMultipleTabs(0) + m_confirmMoveToTrash(nullptr), + m_confirmDelete(nullptr), + m_confirmClosingMultipleTabs(nullptr) { QVBoxLayout* topLayout = new QVBoxLayout(this); @@ -48,6 +48,8 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : "Moving files or folders to trash"), this); m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Deleting files or folders"), this); + m_confirmScriptExecution = new QCheckBox(i18nc("@option:check Ask for confirmation when", + "Executing scripts or desktop files"), this); QLabel* confirmLabelDolphin = new QLabel(i18nc("@title:group", "Ask for confirmation when:"), this); confirmLabelDolphin->setWordWrap(true); @@ -55,14 +57,11 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Closing Dolphin windows with multiple tabs"), this); - topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(confirmLabelKde); - topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(m_confirmMoveToTrash); topLayout->addWidget(m_confirmDelete); - topLayout->addSpacing(KDialog::spacingHint()); + topLayout->addWidget(m_confirmScriptExecution); topLayout->addWidget(confirmLabelDolphin); - topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(m_confirmClosingMultipleTabs); topLayout->addStretch(); @@ -70,6 +69,7 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : connect(m_confirmMoveToTrash, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmDelete, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + connect(m_confirmScriptExecution, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); } @@ -79,15 +79,21 @@ ConfirmationsSettingsPage::~ConfirmationsSettingsPage() void ConfirmationsSettingsPage::applySettings() { - KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::NoGlobals); + KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig(QStringLiteral("kiorc"), KConfig::NoGlobals); KConfigGroup confirmationGroup(kioConfig, "Confirmations"); confirmationGroup.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked()); confirmationGroup.writeEntry("ConfirmDelete", m_confirmDelete->isChecked()); confirmationGroup.sync(); + if (m_confirmScriptExecution->isChecked()) { + KConfigGroup scriptExecutionGroup(kioConfig, "Executable scripts"); + scriptExecutionGroup.writeEntry("behaviourOnLaunch", "alwaysAsk"); + scriptExecutionGroup.sync(); + } + GeneralSettings* settings = GeneralSettings::self(); settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked()); - settings->writeConfig(); + settings->save(); } void ConfirmationsSettingsPage::restoreDefaults() @@ -99,16 +105,20 @@ void ConfirmationsSettingsPage::restoreDefaults() m_confirmMoveToTrash->setChecked(ConfirmTrash); m_confirmDelete->setChecked(ConfirmDelete); + m_confirmScriptExecution->setChecked(ConfirmScriptExecution); } void ConfirmationsSettingsPage::loadSettings() { - KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::IncludeGlobals); + KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig(QStringLiteral("kiorc"), KConfig::IncludeGlobals); const KConfigGroup confirmationGroup(kioConfig, "Confirmations"); m_confirmMoveToTrash->setChecked(confirmationGroup.readEntry("ConfirmTrash", ConfirmTrash)); m_confirmDelete->setChecked(confirmationGroup.readEntry("ConfirmDelete", ConfirmDelete)); + const KConfigGroup scriptExecutionGroup(KSharedConfig::openConfig(QStringLiteral("kiorc")), "Executable scripts"); + const QString value = scriptExecutionGroup.readEntry("behaviourOnLaunch", "alwaysAsk"); + m_confirmScriptExecution->setChecked(value == QLatin1String("alwaysAsk")); + m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); } -#include "confirmationssettingspage.moc"