From 2100a7a5c85931d46b72d391faa3d136d4401010 Mon Sep 17 00:00:00 2001 From: Nate Graham Date: Sat, 19 Jan 2019 08:11:26 -0700 Subject: Ask for confirmation when Closing Dolphin windows with a terminal panel running a program Summary: Ask for confirmation when Closing Dolphin windows with a terminal panel running a program. FEATURE: 304816 FIXED-IN: 19.04.0 Test Plan: # Open terminal panel # Run `watch ls` # Close Dolphin # Observe confirmation # Disable confirmation # Repeat, observe no confirmation # Enable confirmation in the settings # Repeat, observe a confirmation Reviewers: #dolphin, markg, elvisangelaccio, rominf Reviewed By: #dolphin, elvisangelaccio Subscribers: kfm-devel, elvisangelaccio, markg, ngraham, rkflx, broulik, #dolphin Tags: #dolphin Differential Revision: https://phabricator.kde.org/D10960 --- src/settings/general/confirmationssettingspage.cpp | 28 ++++++++++++++++++++++ src/settings/general/confirmationssettingspage.h | 5 ++++ 2 files changed, 33 insertions(+) (limited to 'src/settings/general') diff --git a/src/settings/general/confirmationssettingspage.cpp b/src/settings/general/confirmationssettingspage.cpp index b881b7a52..27e4ab662 100644 --- a/src/settings/general/confirmationssettingspage.cpp +++ b/src/settings/general/confirmationssettingspage.cpp @@ -40,6 +40,11 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : m_confirmMoveToTrash(nullptr), m_confirmEmptyTrash(nullptr), m_confirmDelete(nullptr), + + #ifndef Q_OS_WIN + m_confirmClosingTerminalRunningProgram(nullptr), + #endif + m_confirmClosingMultipleTabs(nullptr) { QVBoxLayout* topLayout = new QVBoxLayout(this); @@ -62,6 +67,11 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when", "Closing windows with multiple tabs"), this); + #ifndef Q_OS_WIN + m_confirmClosingTerminalRunningProgram = new QCheckBox(i18nc("@option:check Ask for confirmation when", + "Closing windows with a program running in the Terminal panel"), this); + #endif + topLayout->addWidget(confirmLabelKde); topLayout->addWidget(m_confirmMoveToTrash); topLayout->addWidget(m_confirmEmptyTrash); @@ -70,6 +80,11 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : topLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT); topLayout->addWidget(confirmLabelDolphin); topLayout->addWidget(m_confirmClosingMultipleTabs); + + #ifndef Q_OS_WIN + topLayout->addWidget(m_confirmClosingTerminalRunningProgram); + #endif + topLayout->addStretch(); loadSettings(); @@ -79,6 +94,10 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : connect(m_confirmDelete, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmScriptExecution, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + + #ifndef Q_OS_WIN + connect(m_confirmClosingTerminalRunningProgram, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + #endif } ConfirmationsSettingsPage::~ConfirmationsSettingsPage() @@ -103,6 +122,11 @@ void ConfirmationsSettingsPage::applySettings() GeneralSettings* settings = GeneralSettings::self(); settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked()); + + #ifndef Q_OS_WIN + settings->setConfirmClosingTerminalRunningProgram(m_confirmClosingTerminalRunningProgram->isChecked()); + #endif + settings->save(); } @@ -132,5 +156,9 @@ void ConfirmationsSettingsPage::loadSettings() m_confirmScriptExecution->setChecked(value == QLatin1String("alwaysAsk")); m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); + + #ifndef Q_OS_WIN + m_confirmClosingTerminalRunningProgram->setChecked(GeneralSettings::confirmClosingTerminalRunningProgram()); + #endif } diff --git a/src/settings/general/confirmationssettingspage.h b/src/settings/general/confirmationssettingspage.h index 4cdb32b20..a96af554d 100644 --- a/src/settings/general/confirmationssettingspage.h +++ b/src/settings/general/confirmationssettingspage.h @@ -47,6 +47,11 @@ private: QCheckBox* m_confirmMoveToTrash; QCheckBox* m_confirmEmptyTrash; QCheckBox* m_confirmDelete; + + #ifndef Q_OS_WIN + QCheckBox* m_confirmClosingTerminalRunningProgram; + #endif + QCheckBox* m_confirmClosingMultipleTabs; QCheckBox* m_confirmScriptExecution; }; -- cgit v1.3