From: tobtoht Date: Tue, 4 Mar 2025 14:31:34 +0000 (+0100) Subject: settings: add option to minimize to tray X-Git-Url: https://git.nutra.tk/v2?a=commitdiff_plain;h=bb1015731f41764e4b9a5a2d07f86814618ebef4;p=gamesguru%2Ffeather.git settings: add option to minimize to tray --- diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 7c3c98af..aea3a43a 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1255,6 +1255,9 @@ void MainWindow::changeEvent(QEvent* event) if (conf()->get(Config::lockOnMinimize).toBool()) { this->lockWallet(); } + if (conf()->get(Config::showTrayIcon).toBool() && conf()->get(Config::minimizeToTray).toBool()) { + this->hide(); + } } else { QMainWindow::changeEvent(event); } diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index 988217eb..982fef24 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -286,13 +286,6 @@ void Settings::setupDisplayTab() { conf()->set(Config::hideNotifications, toggled); }); - // [Hide tray icon] - ui->checkBox_hideTrayIcon->setChecked(conf()->get(Config::hideTrayIcon).toBool()); - connect(ui->checkBox_hideTrayIcon, &QCheckBox::toggled, [this](bool toggled) { - conf()->set(Config::hideTrayIcon, toggled); - emit hideTrayIcon(toggled); - }); - // [Warn before opening external link] ui->checkBox_warnOnExternalLink->setChecked(conf()->get(Config::warnOnExternalLink).toBool()); connect(ui->checkBox_warnOnExternalLink, &QCheckBox::clicked, this, [this]{ @@ -315,6 +308,21 @@ void Settings::setupDisplayTab() { connect(ui->checkBox_lockOnMinimize, &QCheckBox::toggled, [](bool toggled){ conf()->set(Config::lockOnMinimize, toggled); }); + + // [Show tray icon] + ui->checkBox_showTrayIcon->setChecked(conf()->get(Config::showTrayIcon).toBool()); + connect(ui->checkBox_showTrayIcon, &QCheckBox::toggled, [this](bool toggled) { + conf()->set(Config::showTrayIcon, toggled); + ui->checkBox_minimizeToTray->setEnabled(toggled); + emit showTrayIcon(toggled); + }); + + // [Hide window to system tray when minimized] + ui->checkBox_minimizeToTray->setEnabled(ui->checkBox_showTrayIcon->isChecked()); + ui->checkBox_minimizeToTray->setChecked(conf()->get(Config::minimizeToTray).toBool()); + connect(ui->checkBox_minimizeToTray, &QCheckBox::toggled, [this](bool toggled) { + conf()->set(Config::minimizeToTray, toggled); + }); } void Settings::setupMemoryTab() { diff --git a/src/SettingsDialog.h b/src/SettingsDialog.h index b7c68d12..891fc5d4 100644 --- a/src/SettingsDialog.h +++ b/src/SettingsDialog.h @@ -36,7 +36,7 @@ signals: void preferredFiatCurrencyChanged(QString currency); void skinChanged(QString skinName); void hideUpdateNotifications(bool hidden); - void hideTrayIcon(bool hidden); + void showTrayIcon(bool visible); void websocketStatusChanged(bool enabled); void proxySettingsChanged(); void updateBalance(); diff --git a/src/SettingsDialog.ui b/src/SettingsDialog.ui index ec550409..ccaad425 100644 --- a/src/SettingsDialog.ui +++ b/src/SettingsDialog.ui @@ -671,7 +671,7 @@ - + @@ -723,17 +723,6 @@ - - - - - - Hide tray icon - - - - - @@ -808,6 +797,47 @@ + + + + + + Show tray icon + + + + + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 30 + 20 + + + + + + + + false + + + Hide window to system tray when minimized + + + + + diff --git a/src/WindowManager.cpp b/src/WindowManager.cpp index dcf43956..4c0ff302 100644 --- a/src/WindowManager.cpp +++ b/src/WindowManager.cpp @@ -45,7 +45,7 @@ WindowManager::WindowManager(QObject *parent) m_tray = new QSystemTrayIcon(icons()->icon("appicons/64x64.png")); m_tray->setToolTip("Feather Wallet"); this->buildTrayMenu(); - m_tray->setVisible(!conf()->get(Config::hideTrayIcon).toBool()); + m_tray->setVisible(conf()->get(Config::showTrayIcon).toBool()); this->initSkins(); this->patchMacStylesheet(); @@ -194,8 +194,8 @@ void WindowManager::showSettings(Nodes *nodes, QWidget *parent, bool showProxyTa window->onHideUpdateNotifications(hidden); } }); - connect(&settings, &Settings::hideTrayIcon, [this](bool hidden) { - m_tray->setVisible(!hidden); + connect(&settings, &Settings::showTrayIcon, [this](bool visible) { + m_tray->setVisible(visible); }); connect(&settings, &Settings::pluginConfigured, [this](const QString &id) { emit pluginConfigured(id); diff --git a/src/utils/config.cpp b/src/utils/config.cpp index 7d192073..adaec28a 100644 --- a/src/utils/config.cpp +++ b/src/utils/config.cpp @@ -84,6 +84,8 @@ static const QHash configStrings = { {Config::inactivityLockEnabled, {QS("inactivityLockEnabled"), false}}, {Config::inactivityLockTimeout, {QS("inactivityLockTimeout"), 10}}, {Config::lockOnMinimize, {QS("lockOnMinimize"), false}}, + {Config::showTrayIcon, {QS("showTrayIcon"), true}}, + {Config::minimizeToTray, {QS("minimizeToTray"), false}}, {Config::disableWebsocket, {QS("disableWebsocket"), false}}, {Config::offlineMode, {QS("offlineMode"), false}}, @@ -98,7 +100,6 @@ static const QHash configStrings = { {Config::hideBalance, {QS("hideBalance"), false}}, {Config::hideNotifications, {QS("hideNotifications"), false}}, {Config::hideUpdateNotifications, {QS("hideUpdateNotifications"), false}}, - {Config::hideTrayIcon, {QS("hideTrayIcon"), false}}, {Config::disableLogging, {QS("disableLogging"), true}}, {Config::writeStackTraceToDisk, {QS("writeStackTraceToDisk"), true}}, {Config::writeRecentlyOpenedWallets, {QS("writeRecentlyOpenedWallets"), true}}, diff --git a/src/utils/config.h b/src/utils/config.h index e874e47f..a4fc86c7 100644 --- a/src/utils/config.h +++ b/src/utils/config.h @@ -113,11 +113,12 @@ public: hideBalance, hideUpdateNotifications, hideNotifications, - hideTrayIcon, warnOnExternalLink, inactivityLockEnabled, inactivityLockTimeout, lockOnMinimize, + showTrayIcon, + minimizeToTray, // Transactions multiBroadcast,