From 1099a5006f5d0719dcf0145eab6669f7f74e4669 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 11 Apr 2016 16:00:09 +0800 Subject: [PATCH 1/5] Cleanup header include Code formatting --- src/gui/shutdownconfirm.cpp | 13 +++++-------- src/gui/shutdownconfirm.h | 7 ++----- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirm.cpp index d5025e1f4..99a90af59 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirm.cpp @@ -30,20 +30,17 @@ * Contact : hammered999@gmail.com */ -#include -#include +#include "shutdownconfirm.h" +#include "ui_confirmshutdowndlg.h" + #include #include -#include #include -#include #include #include "base/preferences.h" -#include "base/types.h" +#include "base/utils/misc.h" -#include "shutdownconfirm.h" -#include "ui_confirmshutdowndlg.h" ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) : ui(new Ui::confirmShutdownDlg) @@ -67,7 +64,7 @@ ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) cancelButton->setFocus(); cancelButton->setDefault(true); // Always on top - setWindowFlags(windowFlags()|Qt::WindowStaysOnTopHint); + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); m_timer.setInterval(1000); // 1sec connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateSeconds())); // Move to center diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirm.h index 6b2f0ae04..31ff3096b 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirm.h @@ -33,17 +33,14 @@ #include #include -#include "base/utils/misc.h" - -class QLabel; -class QCheckBox; +#include "base/types.h" namespace Ui { class confirmShutdownDlg; } -class ShutdownConfirmDlg : public QDialog +class ShutdownConfirmDlg: public QDialog { Q_OBJECT From d3fb46663cea63d209d56a6677d41ef9a6db39a3 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 13 Apr 2016 02:16:23 +0800 Subject: [PATCH 2/5] Refactor Add helper function to initialize shutdown message. Group similar functions together. Merge shutdown() function into its only caller. Add override keyword --- src/gui/shutdownconfirm.cpp | 37 ++++++++++++++++++------------------- src/gui/shutdownconfirm.h | 5 +++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirm.cpp index 99a90af59..9db99a718 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirm.cpp @@ -49,11 +49,10 @@ ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) { ui->setupUi(this); + initText(); QIcon warningIcon(style()->standardIcon(QStyle::SP_MessageBoxWarning)); ui->warningLabel->setPixmap(warningIcon.pixmap(32)); - updateText(); - if (m_action == ShutdownAction::None) ui->neverShowAgainCheckbox->setVisible(true); else @@ -63,12 +62,13 @@ ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) QPushButton *cancelButton = ui->buttonBox->button(QDialogButtonBox::Cancel); cancelButton->setFocus(); cancelButton->setDefault(true); + // Always on top setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + move(Utils::Misc::screenCenter(this)); + m_timer.setInterval(1000); // 1sec connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateSeconds())); - // Move to center - move(Utils::Misc::screenCenter(this)); } ShutdownConfirmDlg::~ShutdownConfirmDlg() @@ -85,8 +85,7 @@ void ShutdownConfirmDlg::showEvent(QShowEvent *event) bool ShutdownConfirmDlg::askForConfirmation(const ShutdownAction &action) { ShutdownConfirmDlg dlg(action); - dlg.exec(); - return dlg.shutdown(); + return (dlg.exec() == QDialog::Accepted); } void ShutdownConfirmDlg::updateSeconds() @@ -105,43 +104,43 @@ void ShutdownConfirmDlg::accept() QDialog::accept(); } -bool ShutdownConfirmDlg::shutdown() const +void ShutdownConfirmDlg::initText() { - return (result() == QDialog::Accepted); -} - -void ShutdownConfirmDlg::updateText() -{ - QString text; QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok); switch (m_action) { case ShutdownAction::None: - text = tr("qBittorrent will now exit."); + m_msg = tr("qBittorrent will now exit."); okButton->setText(tr("E&xit Now")); setWindowTitle(tr("Exit confirmation")); break; case ShutdownAction::Shutdown: - text = tr("The computer is going to shutdown."); + m_msg = tr("The computer is going to shutdown."); okButton->setText(tr("&Shutdown Now")); setWindowTitle(tr("Shutdown confirmation")); break; case ShutdownAction::Suspend: - text = tr("The computer is going to enter suspend mode."); + m_msg = tr("The computer is going to enter suspend mode."); okButton->setText(tr("&Suspend Now")); setWindowTitle(tr("Suspend confirmation")); break; case ShutdownAction::Hibernate: - text = tr("The computer is going to enter hibernation mode."); + m_msg = tr("The computer is going to enter hibernation mode."); okButton->setText(tr("&Hibernate Now")); setWindowTitle(tr("Hibernate confirmation")); break; } - text += "\n" + tr("You can cancel the action within %1 seconds.").arg(QString::number(m_timeout)) + "\n"; - ui->shutdownText->setText(text); + m_msg += "\n"; + updateText(); +} + +void ShutdownConfirmDlg::updateText() +{ + QString t = tr("You can cancel the action within %1 seconds.").arg(QString::number(m_timeout)) + "\n"; + ui->shutdownText->setText(m_msg + t); } diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirm.h index 31ff3096b..059c1e3ca 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirm.h @@ -47,12 +47,11 @@ class ShutdownConfirmDlg: public QDialog public: ShutdownConfirmDlg(const ShutdownAction &action); ~ShutdownConfirmDlg(); - bool shutdown() const; static bool askForConfirmation(const ShutdownAction &action); protected: - void showEvent(QShowEvent *event); + void showEvent(QShowEvent *event) override; private slots: void updateSeconds(); @@ -60,6 +59,7 @@ private slots: private: // Methods + void initText(); void updateText(); // Vars @@ -67,6 +67,7 @@ private: QTimer m_timer; int m_timeout; ShutdownAction m_action; + QString m_msg; }; #endif // SHUTDOWNCONFIRM_H From 6a11056b6017fc4679cf8bb0acba1d0bdea3ba78 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 13 Apr 2016 02:33:17 +0800 Subject: [PATCH 3/5] Rename enum Change identifier from ShutdownAction to ShutdownDialogAction Change enum value from None to Exit --- src/app/application.cpp | 14 +++++++------- src/app/application.h | 2 +- src/base/types.h | 4 ++-- src/base/utils/misc.cpp | 16 ++++++++-------- src/base/utils/misc.h | 2 +- src/gui/shutdownconfirm.cpp | 14 +++++++------- src/gui/shutdownconfirm.h | 6 +++--- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index 9c0d10bc5..6b55b2fad 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -97,7 +97,7 @@ Application::Application(const QString &id, int &argc, char **argv) : BaseApplication(id, argc, argv) , m_running(false) #ifndef DISABLE_GUI - , m_shutdownAct(ShutdownAction::None) + , m_shutdownAct(ShutdownDialogAction::Exit) #endif { Logger::initInstance(); @@ -298,15 +298,15 @@ void Application::allTorrentsFinished() bool shutdown = pref->shutdownWhenDownloadsComplete(); // Confirm shutdown - ShutdownAction action = ShutdownAction::None; + ShutdownDialogAction action = ShutdownDialogAction::Exit; if (suspend) - action = ShutdownAction::Suspend; + action = ShutdownDialogAction::Suspend; else if (hibernate) - action = ShutdownAction::Hibernate; + action = ShutdownDialogAction::Hibernate; else if (shutdown) - action = ShutdownAction::Shutdown; + action = ShutdownDialogAction::Shutdown; - if ((action == ShutdownAction::None) && (!pref->dontConfirmAutoExit())) { + if ((action == ShutdownDialogAction::Exit) && (!pref->dontConfirmAutoExit())) { if (!ShutdownConfirmDlg::askForConfirmation(action)) return; } @@ -604,7 +604,7 @@ void Application::cleanup() shutdownBRDestroy((HWND)m_window->effectiveWinId()); #endif // Q_OS_WIN delete m_window; - if (m_shutdownAct != ShutdownAction::None) { + if (m_shutdownAct != ShutdownDialogAction::Exit) { qDebug() << "Sending computer shutdown/suspend/hibernate signal..."; Utils::Misc::shutdownComputer(m_shutdownAct); } diff --git a/src/app/application.h b/src/app/application.h index f8f1de796..c399c2645 100644 --- a/src/app/application.h +++ b/src/app/application.h @@ -114,7 +114,7 @@ private: #ifndef DISABLE_GUI QPointer m_window; - ShutdownAction m_shutdownAct; + ShutdownDialogAction m_shutdownAct; #endif #ifndef DISABLE_WEBUI diff --git a/src/base/types.h b/src/base/types.h index 795b0ace6..bd18b1a40 100644 --- a/src/base/types.h +++ b/src/base/types.h @@ -33,9 +33,9 @@ const qlonglong MAX_ETA = 8640000; -enum class ShutdownAction +enum class ShutdownDialogAction { - None, + Exit, Shutdown, Suspend, Hibernate diff --git a/src/base/utils/misc.cpp b/src/base/utils/misc.cpp index e822656bc..37ac7c0b8 100644 --- a/src/base/utils/misc.cpp +++ b/src/base/utils/misc.cpp @@ -92,16 +92,16 @@ static struct { const char *source; const char *comment; } units[] = { }; #ifndef DISABLE_GUI -void Utils::Misc::shutdownComputer(ShutdownAction action) +void Utils::Misc::shutdownComputer(const ShutdownDialogAction &action) { #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB) // Use dbus to power off / suspend the system - if (action != ShutdownAction::Shutdown) { + if (action != ShutdownDialogAction::Shutdown) { // Some recent systems use systemd's logind QDBusInterface login1Iface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()); if (login1Iface.isValid()) { - if (action == ShutdownAction::Suspend) + if (action == ShutdownDialogAction::Suspend) login1Iface.call("Suspend", false); else login1Iface.call("Hibernate", false); @@ -111,7 +111,7 @@ void Utils::Misc::shutdownComputer(ShutdownAction action) QDBusInterface upowerIface("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", QDBusConnection::systemBus()); if (upowerIface.isValid()) { - if (action == ShutdownAction::Suspend) + if (action == ShutdownDialogAction::Suspend) upowerIface.call("Suspend"); else upowerIface.call("Hibernate"); @@ -121,7 +121,7 @@ void Utils::Misc::shutdownComputer(ShutdownAction action) QDBusInterface halIface("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device.SystemPowerManagement", QDBusConnection::systemBus()); - if (action == ShutdownAction::Suspend) + if (action == ShutdownDialogAction::Suspend) halIface.call("Suspend", 5); else halIface.call("Hibernate"); @@ -150,7 +150,7 @@ void Utils::Misc::shutdownComputer(ShutdownAction action) #endif #ifdef Q_OS_MAC AEEventID EventToSend; - if (action != ShutdownAction::Shutdown) + if (action != ShutdownDialogAction::Shutdown) EventToSend = kAESleep; else EventToSend = kAEShutDown; @@ -203,9 +203,9 @@ void Utils::Misc::shutdownComputer(ShutdownAction action) if (GetLastError() != ERROR_SUCCESS) return; - if (action == ShutdownAction::Suspend) + if (action == ShutdownDialogAction::Suspend) SetSuspendState(false, false, false); - else if (action == ShutdownAction::Hibernate) + else if (action == ShutdownDialogAction::Hibernate) SetSuspendState(true, false, false); else InitiateSystemShutdownA(0, QCoreApplication::translate("misc", "qBittorrent will shutdown the computer now because all downloads are complete.").toLocal8Bit().data(), 10, true, false); diff --git a/src/base/utils/misc.h b/src/base/utils/misc.h index f942fa860..f6e566ae0 100644 --- a/src/base/utils/misc.h +++ b/src/base/utils/misc.h @@ -68,7 +68,7 @@ namespace Utils bool isUrl(const QString &s); #ifndef DISABLE_GUI - void shutdownComputer(ShutdownAction action); + void shutdownComputer(const ShutdownDialogAction &action); // Get screen center QPoint screenCenter(QWidget *win); QSize smallIconSize(); diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirm.cpp index 9db99a718..2d97ea4d2 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirm.cpp @@ -42,7 +42,7 @@ #include "base/utils/misc.h" -ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) +ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownDialogAction &action) : ui(new Ui::confirmShutdownDlg) , m_timeout(15) , m_action(action) @@ -53,7 +53,7 @@ ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) QIcon warningIcon(style()->standardIcon(QStyle::SP_MessageBoxWarning)); ui->warningLabel->setPixmap(warningIcon.pixmap(32)); - if (m_action == ShutdownAction::None) + if (m_action == ShutdownDialogAction::Exit) ui->neverShowAgainCheckbox->setVisible(true); else ui->neverShowAgainCheckbox->setVisible(false); @@ -82,7 +82,7 @@ void ShutdownConfirmDlg::showEvent(QShowEvent *event) m_timer.start(); } -bool ShutdownConfirmDlg::askForConfirmation(const ShutdownAction &action) +bool ShutdownConfirmDlg::askForConfirmation(const ShutdownDialogAction &action) { ShutdownConfirmDlg dlg(action); return (dlg.exec() == QDialog::Accepted); @@ -109,25 +109,25 @@ void ShutdownConfirmDlg::initText() QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok); switch (m_action) { - case ShutdownAction::None: + case ShutdownDialogAction::Exit: m_msg = tr("qBittorrent will now exit."); okButton->setText(tr("E&xit Now")); setWindowTitle(tr("Exit confirmation")); break; - case ShutdownAction::Shutdown: + case ShutdownDialogAction::Shutdown: m_msg = tr("The computer is going to shutdown."); okButton->setText(tr("&Shutdown Now")); setWindowTitle(tr("Shutdown confirmation")); break; - case ShutdownAction::Suspend: + case ShutdownDialogAction::Suspend: m_msg = tr("The computer is going to enter suspend mode."); okButton->setText(tr("&Suspend Now")); setWindowTitle(tr("Suspend confirmation")); break; - case ShutdownAction::Hibernate: + case ShutdownDialogAction::Hibernate: m_msg = tr("The computer is going to enter hibernation mode."); okButton->setText(tr("&Hibernate Now")); diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirm.h index 059c1e3ca..3cb07c7ea 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirm.h @@ -45,10 +45,10 @@ class ShutdownConfirmDlg: public QDialog Q_OBJECT public: - ShutdownConfirmDlg(const ShutdownAction &action); + ShutdownConfirmDlg(const ShutdownDialogAction &action); ~ShutdownConfirmDlg(); - static bool askForConfirmation(const ShutdownAction &action); + static bool askForConfirmation(const ShutdownDialogAction &action); protected: void showEvent(QShowEvent *event) override; @@ -66,7 +66,7 @@ private: Ui::confirmShutdownDlg *ui; QTimer m_timer; int m_timeout; - ShutdownAction m_action; + ShutdownDialogAction m_action; QString m_msg; }; From 65d9739c6c7d7e6358f6dd3f19eb628359c45d09 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 13 Apr 2016 14:13:47 +0800 Subject: [PATCH 4/5] Enlarge dialog size. Closes #5091. This avoids text clipping when using Qt4 lib. --- src/gui/confirmshutdowndlg.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/confirmshutdowndlg.ui b/src/gui/confirmshutdowndlg.ui index e2a62b620..5c46f40a4 100644 --- a/src/gui/confirmshutdowndlg.ui +++ b/src/gui/confirmshutdowndlg.ui @@ -6,8 +6,8 @@ 0 0 - 407 - 103 + 410 + 140 From f12e21560acaca752628e1b405ddcffdf25f7e42 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 13 Apr 2016 14:21:46 +0800 Subject: [PATCH 5/5] Rename files: confirmshutdowndlg.ui => shutdownconfirmdlg.ui shutdownconfirm.cpp => shutdownconfirmdlg.cpp --- src/app/application.cpp | 2 +- src/gui/CMakeLists.txt | 5 +++-- src/gui/gui.pri | 6 +++--- src/gui/{shutdownconfirm.cpp => shutdownconfirmdlg.cpp} | 4 ++-- src/gui/{shutdownconfirm.h => shutdownconfirmdlg.h} | 4 ++-- src/gui/{confirmshutdowndlg.ui => shutdownconfirmdlg.ui} | 0 6 files changed, 11 insertions(+), 10 deletions(-) rename src/gui/{shutdownconfirm.cpp => shutdownconfirmdlg.cpp} (98%) rename src/gui/{shutdownconfirm.h => shutdownconfirmdlg.h} (97%) rename src/gui/{confirmshutdowndlg.ui => shutdownconfirmdlg.ui} (100%) diff --git a/src/app/application.cpp b/src/app/application.cpp index 6b55b2fad..49b4dfbf0 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -48,7 +48,7 @@ #endif // Q_OS_MAC #include "mainwindow.h" #include "addnewtorrentdialog.h" -#include "shutdownconfirm.h" +#include "shutdownconfirmdlg.h" #else // DISABLE_GUI #include #endif // DISABLE_GUI diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index fe00101d1..0eadb0e2a 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -44,7 +44,7 @@ options_imp.h previewlistdelegate.h previewselect.h scanfoldersdelegate.h -shutdownconfirm.h +shutdownconfirmdlg.h speedlimitdlg.h statsdialog.h statusbar.h @@ -78,7 +78,7 @@ messageboxraised.cpp options_imp.cpp previewselect.cpp scanfoldersdelegate.cpp -shutdownconfirm.cpp +shutdownconfirmdlg.cpp speedlimitdlg.cpp statsdialog.cpp statusbar.cpp @@ -120,6 +120,7 @@ autoexpandabledialog.ui statsdialog.ui options.ui torrentcreatordlg.ui +shutdownconfirmdlg.ui ) set(QBT_GUI_RESOURCES about.qrc) diff --git a/src/gui/gui.pri b/src/gui/gui.pri index 2f8e602fb..a66ca8eb0 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -39,7 +39,7 @@ HEADERS += \ $$PWD/messageboxraised.h \ $$PWD/options_imp.h \ $$PWD/advancedsettings.h \ - $$PWD/shutdownconfirm.h \ + $$PWD/shutdownconfirmdlg.h \ $$PWD/torrentmodel.h \ $$PWD/torrentcreatordlg.h \ $$PWD/scanfoldersdelegate.h \ @@ -78,7 +78,7 @@ SOURCES += \ $$PWD/advancedsettings.cpp \ $$PWD/trackerlogin.cpp \ $$PWD/options_imp.cpp \ - $$PWD/shutdownconfirm.cpp \ + $$PWD/shutdownconfirmdlg.cpp \ $$PWD/torrentmodel.cpp \ $$PWD/torrentcreatordlg.cpp \ $$PWD/scanfoldersdelegate.cpp \ @@ -103,7 +103,7 @@ FORMS += \ $$PWD/bandwidth_limit.ui \ $$PWD/updownratiodlg.ui \ $$PWD/confirmdeletiondlg.ui \ - $$PWD/confirmshutdowndlg.ui \ + $$PWD/shutdownconfirmdlg.ui \ $$PWD/torrentimportdlg.ui \ $$PWD/executionlog.ui \ $$PWD/addnewtorrentdialog.ui \ diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirmdlg.cpp similarity index 98% rename from src/gui/shutdownconfirm.cpp rename to src/gui/shutdownconfirmdlg.cpp index 2d97ea4d2..3fbbe0c97 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirmdlg.cpp @@ -30,8 +30,8 @@ * Contact : hammered999@gmail.com */ -#include "shutdownconfirm.h" -#include "ui_confirmshutdowndlg.h" +#include "shutdownconfirmdlg.h" +#include "ui_shutdownconfirmdlg.h" #include #include diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirmdlg.h similarity index 97% rename from src/gui/shutdownconfirm.h rename to src/gui/shutdownconfirmdlg.h index 3cb07c7ea..88b7c48de 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirmdlg.h @@ -28,8 +28,8 @@ * Contact : chris@qbittorrent.org */ -#ifndef SHUTDOWNCONFIRM_H -#define SHUTDOWNCONFIRM_H +#ifndef SHUTDOWNCONFIRMDLG_H +#define SHUTDOWNCONFIRMDLG_H #include #include diff --git a/src/gui/confirmshutdowndlg.ui b/src/gui/shutdownconfirmdlg.ui similarity index 100% rename from src/gui/confirmshutdowndlg.ui rename to src/gui/shutdownconfirmdlg.ui