From 272ff11d652b9352473c99f324d85d9937ba2924 Mon Sep 17 00:00:00 2001 From: Vladimir Golovnev Date: Sun, 4 Jun 2023 08:57:14 +0300 Subject: [PATCH] Allow to disable confirmation of Pause/Resume All PR #19067. Closes #18155. --- src/base/preferences.cpp | 10 ++++++++++ src/base/preferences.h | 2 ++ src/gui/optionsdialog.cpp | 3 +++ src/gui/optionsdialog.ui | 13 +++++++++++++ src/gui/transferlistwidget.cpp | 30 ++++++++++++++++-------------- 5 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 9946c9116..c5f698138 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -1224,6 +1224,16 @@ void Preferences::setConfirmRemoveAllTags(const bool enabled) setValue(u"Preferences/Advanced/confirmRemoveAllTags"_qs, enabled); } +bool Preferences::confirmPauseAndResumeAll() const +{ + return value(u"GUI/ConfirmActions/PauseAndResumeAllTorrents"_qs, true); +} + +void Preferences::setConfirmPauseAndResumeAll(const bool enabled) +{ + setValue(u"GUI/ConfirmActions/PauseAndResumeAllTorrents"_qs, enabled); +} + #ifndef Q_OS_MACOS TrayIcon::Style Preferences::trayIconStyle() const { diff --git a/src/base/preferences.h b/src/base/preferences.h index 0dde9afef..8a1397b21 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -315,6 +315,8 @@ public: void setConfirmTorrentRecheck(bool enabled); bool confirmRemoveAllTags() const; void setConfirmRemoveAllTags(bool enabled); + bool confirmPauseAndResumeAll() const; + void setConfirmPauseAndResumeAll(bool enabled); #ifndef Q_OS_MACOS bool systemTrayEnabled() const; void setSystemTrayEnabled(bool enabled); diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 66ceb7f58..328815a38 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -252,6 +252,7 @@ void OptionsDialog::loadBehaviorTabOptions() m_ui->checkStartMinimized->setChecked(pref->startMinimized()); m_ui->checkProgramExitConfirm->setChecked(pref->confirmOnExit()); m_ui->checkProgramAutoExitConfirm->setChecked(!pref->dontConfirmAutoExit()); + m_ui->checkConfirmPauseAndResumeAll->setChecked(pref->confirmPauseAndResumeAll()); #if !(defined(Q_OS_WIN) || defined(Q_OS_MACOS)) m_ui->groupFileAssociation->setVisible(false); @@ -334,6 +335,7 @@ void OptionsDialog::loadBehaviorTabOptions() connect(m_ui->checkStartMinimized, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkProgramExitConfirm, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkProgramAutoExitConfirm, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); + connect(m_ui->checkConfirmPauseAndResumeAll, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkShowSystray, &QGroupBox::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkMinimizeToSysTray, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkCloseToSystray, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); @@ -410,6 +412,7 @@ void OptionsDialog::saveBehaviorTabOptions() const pref->setStartMinimized(startMinimized()); pref->setConfirmOnExit(m_ui->checkProgramExitConfirm->isChecked()); pref->setDontConfirmAutoExit(!m_ui->checkProgramAutoExitConfirm->isChecked()); + pref->setConfirmPauseAndResumeAll(m_ui->checkConfirmPauseAndResumeAll->isChecked()); #ifdef Q_OS_WIN pref->setWinStartup(WinStartup()); diff --git a/src/gui/optionsdialog.ui b/src/gui/optionsdialog.ui index e407d79e9..b35d48f72 100644 --- a/src/gui/optionsdialog.ui +++ b/src/gui/optionsdialog.ui @@ -232,6 +232,19 @@ + + + + Shows a confirmation dialog upon pausing/resuming all the torrents + + + Confirm "Pause/Resume all" actions + + + true + + + diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index 9bca61d45..c1251181d 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -363,14 +363,15 @@ void TransferListWidget::setSelectedTorrentsLocation() void TransferListWidget::pauseAllTorrents() { - // Show confirmation if user would really like to Pause All - const QMessageBox::StandardButton ret = - QMessageBox::question(this, tr("Confirm pause") - , tr("Would you like to pause all torrents?") - , (QMessageBox::Yes | QMessageBox::No)); + if (Preferences::instance()->confirmPauseAndResumeAll()) + { + // Show confirmation if user would really like to Pause All + const QMessageBox::StandardButton ret = QMessageBox::question(this, tr("Confirm pause") + , tr("Would you like to pause all torrents?"), (QMessageBox::Yes | QMessageBox::No)); - if (ret != QMessageBox::Yes) - return; + if (ret != QMessageBox::Yes) + return; + } for (BitTorrent::Torrent *const torrent : asConst(BitTorrent::Session::instance()->torrents())) torrent->pause(); @@ -378,14 +379,15 @@ void TransferListWidget::pauseAllTorrents() void TransferListWidget::resumeAllTorrents() { - // Show confirmation if user would really like to Resume All - const QMessageBox::StandardButton ret = - QMessageBox::question(this, tr("Confirm resume") - , tr("Would you like to resume all torrents?") - , (QMessageBox::Yes | QMessageBox::No)); + if (Preferences::instance()->confirmPauseAndResumeAll()) + { + // Show confirmation if user would really like to Resume All + const QMessageBox::StandardButton ret = QMessageBox::question(this, tr("Confirm resume") + , tr("Would you like to resume all torrents?"), (QMessageBox::Yes | QMessageBox::No)); - if (ret != QMessageBox::Yes) - return; + if (ret != QMessageBox::Yes) + return; + } for (BitTorrent::Torrent *const torrent : asConst(BitTorrent::Session::instance()->torrents())) torrent->resume();