mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-12 08:16:16 -07:00
Enable access to shutdown functions when configured with --disable-gui
option
This commit is contained in:
parent
a1e0fa5509
commit
fbc002f212
4 changed files with 8 additions and 9 deletions
|
@ -96,9 +96,7 @@ namespace
|
||||||
Application::Application(const QString &id, int &argc, char **argv)
|
Application::Application(const QString &id, int &argc, char **argv)
|
||||||
: BaseApplication(id, argc, argv)
|
: BaseApplication(id, argc, argv)
|
||||||
, m_running(false)
|
, m_running(false)
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
, m_shutdownAct(ShutdownDialogAction::Exit)
|
, m_shutdownAct(ShutdownDialogAction::Exit)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
Logger::initInstance();
|
Logger::initInstance();
|
||||||
SettingsStorage::initInstance();
|
SettingsStorage::initInstance();
|
||||||
|
@ -283,7 +281,6 @@ void Application::torrentFinished(BitTorrent::TorrentHandle *const torrent)
|
||||||
|
|
||||||
void Application::allTorrentsFinished()
|
void Application::allTorrentsFinished()
|
||||||
{
|
{
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
Preferences *const pref = Preferences::instance();
|
Preferences *const pref = Preferences::instance();
|
||||||
bool isExit = pref->shutdownqBTWhenDownloadsComplete();
|
bool isExit = pref->shutdownqBTWhenDownloadsComplete();
|
||||||
bool isShutdown = pref->shutdownWhenDownloadsComplete();
|
bool isShutdown = pref->shutdownWhenDownloadsComplete();
|
||||||
|
@ -301,6 +298,7 @@ void Application::allTorrentsFinished()
|
||||||
else if (isShutdown)
|
else if (isShutdown)
|
||||||
action = ShutdownDialogAction::Shutdown;
|
action = ShutdownDialogAction::Shutdown;
|
||||||
|
|
||||||
|
#ifndef DISABLE_GUI
|
||||||
// ask confirm
|
// ask confirm
|
||||||
if ((action == ShutdownDialogAction::Exit) && (pref->dontConfirmAutoExit())) {
|
if ((action == ShutdownDialogAction::Exit) && (pref->dontConfirmAutoExit())) {
|
||||||
// do nothing & skip confirm
|
// do nothing & skip confirm
|
||||||
|
@ -308,6 +306,7 @@ void Application::allTorrentsFinished()
|
||||||
else {
|
else {
|
||||||
if (!ShutdownConfirmDlg::askForConfirmation(action)) return;
|
if (!ShutdownConfirmDlg::askForConfirmation(action)) return;
|
||||||
}
|
}
|
||||||
|
#endif // DISABLE_GUI
|
||||||
|
|
||||||
// Actually shut down
|
// Actually shut down
|
||||||
if (action != ShutdownDialogAction::Exit) {
|
if (action != ShutdownDialogAction::Exit) {
|
||||||
|
@ -322,7 +321,6 @@ void Application::allTorrentsFinished()
|
||||||
|
|
||||||
qDebug("Exiting the application");
|
qDebug("Exiting the application");
|
||||||
exit();
|
exit();
|
||||||
#endif // DISABLE_GUI
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Application::sendParams(const QStringList ¶ms)
|
bool Application::sendParams(const QStringList ¶ms)
|
||||||
|
@ -589,6 +587,7 @@ void Application::cleanup()
|
||||||
delete m_fileLogger;
|
delete m_fileLogger;
|
||||||
Logger::freeInstance();
|
Logger::freeInstance();
|
||||||
IconProvider::freeInstance();
|
IconProvider::freeInstance();
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
typedef BOOL (WINAPI *PSHUTDOWNBRDESTROY)(HWND);
|
typedef BOOL (WINAPI *PSHUTDOWNBRDESTROY)(HWND);
|
||||||
|
@ -598,9 +597,10 @@ void Application::cleanup()
|
||||||
shutdownBRDestroy((HWND)m_window->effectiveWinId());
|
shutdownBRDestroy((HWND)m_window->effectiveWinId());
|
||||||
#endif // Q_OS_WIN
|
#endif // Q_OS_WIN
|
||||||
delete m_window;
|
delete m_window;
|
||||||
|
#endif // DISABLE_GUI
|
||||||
|
|
||||||
if (m_shutdownAct != ShutdownDialogAction::Exit) {
|
if (m_shutdownAct != ShutdownDialogAction::Exit) {
|
||||||
qDebug() << "Sending computer shutdown/suspend/hibernate signal...";
|
qDebug() << "Sending computer shutdown/suspend/hibernate signal...";
|
||||||
Utils::Misc::shutdownComputer(m_shutdownAct);
|
Utils::Misc::shutdownComputer(m_shutdownAct);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,10 +111,10 @@ private slots:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_running;
|
bool m_running;
|
||||||
|
ShutdownDialogAction m_shutdownAct;
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
QPointer<MainWindow> m_window;
|
QPointer<MainWindow> m_window;
|
||||||
ShutdownDialogAction m_shutdownAct;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DISABLE_WEBUI
|
#ifndef DISABLE_WEBUI
|
||||||
|
|
|
@ -91,7 +91,6 @@ static struct { const char *source; const char *comment; } units[] = {
|
||||||
QT_TRANSLATE_NOOP3("misc", "EiB", "exbibytes (1024 pebibytes)")
|
QT_TRANSLATE_NOOP3("misc", "EiB", "exbibytes (1024 pebibytes)")
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
void Utils::Misc::shutdownComputer(const ShutdownDialogAction &action)
|
void Utils::Misc::shutdownComputer(const ShutdownDialogAction &action)
|
||||||
{
|
{
|
||||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
||||||
|
@ -216,7 +215,6 @@ void Utils::Misc::shutdownComputer(const ShutdownDialogAction &action)
|
||||||
(PTOKEN_PRIVILEGES) NULL, 0);
|
(PTOKEN_PRIVILEGES) NULL, 0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif // DISABLE_GUI
|
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
// Get screen center
|
// Get screen center
|
||||||
|
|
|
@ -67,8 +67,9 @@ namespace Utils
|
||||||
QString parseHtmlLinks(const QString &raw_text);
|
QString parseHtmlLinks(const QString &raw_text);
|
||||||
bool isUrl(const QString &s);
|
bool isUrl(const QString &s);
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
void shutdownComputer(const ShutdownDialogAction &action);
|
void shutdownComputer(const ShutdownDialogAction &action);
|
||||||
|
|
||||||
|
#ifndef DISABLE_GUI
|
||||||
// Get screen center
|
// Get screen center
|
||||||
QPoint screenCenter(QWidget *win);
|
QPoint screenCenter(QWidget *win);
|
||||||
QSize smallIconSize();
|
QSize smallIconSize();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue