From 88ab38a193b8c2c87c60aef8df95221b1ada98bc Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 4 Mar 2025 10:09:25 +0100 Subject: [PATCH] settings: add option to hide tray icon --- src/SettingsDialog.cpp | 7 +++++ src/SettingsDialog.h | 1 + src/SettingsDialog.ui | 69 ++++++++++++++++++++++++------------------ src/WindowManager.cpp | 5 ++- src/utils/config.cpp | 1 + src/utils/config.h | 1 + 6 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index 0a2e960c..988217eb 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -286,6 +286,13 @@ 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]{ diff --git a/src/SettingsDialog.h b/src/SettingsDialog.h index fcbd3d7e..b7c68d12 100644 --- a/src/SettingsDialog.h +++ b/src/SettingsDialog.h @@ -36,6 +36,7 @@ signals: void preferredFiatCurrencyChanged(QString currency); void skinChanged(QString skinName); void hideUpdateNotifications(bool hidden); + void hideTrayIcon(bool hidden); void websocketStatusChanged(bool enabled); void proxySettingsChanged(); void updateBalance(); diff --git a/src/SettingsDialog.ui b/src/SettingsDialog.ui index df2c05ac..ec550409 100644 --- a/src/SettingsDialog.ui +++ b/src/SettingsDialog.ui @@ -55,10 +55,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -142,7 +142,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -264,10 +264,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Maximum + QSizePolicy::Policy::Maximum @@ -287,7 +287,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -314,7 +314,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -368,10 +368,10 @@ - QFormLayout::ExpandingFieldsGrow + QFormLayout::FieldGrowthPolicy::ExpandingFieldsGrow - QFormLayout::DontWrapRows + QFormLayout::RowWrapPolicy::DontWrapRows @@ -458,10 +458,10 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame - QFrame::Raised + QFrame::Shadow::Raised @@ -489,7 +489,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -564,7 +564,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -586,7 +586,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -615,7 +615,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -664,14 +664,14 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised - + @@ -723,6 +723,17 @@ + + + + + + Hide tray icon + + + + + @@ -802,7 +813,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -844,10 +855,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -860,7 +871,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -902,10 +913,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -936,7 +947,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -979,7 +990,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -1077,7 +1088,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -1100,10 +1111,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok diff --git a/src/WindowManager.cpp b/src/WindowManager.cpp index f7b2429b..dcf43956 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->show(); + m_tray->setVisible(!conf()->get(Config::hideTrayIcon).toBool()); this->initSkins(); this->patchMacStylesheet(); @@ -194,6 +194,9 @@ 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::pluginConfigured, [this](const QString &id) { emit pluginConfigured(id); }); diff --git a/src/utils/config.cpp b/src/utils/config.cpp index 07d55c34..7d192073 100644 --- a/src/utils/config.cpp +++ b/src/utils/config.cpp @@ -98,6 +98,7 @@ 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 2a4e236c..e874e47f 100644 --- a/src/utils/config.h +++ b/src/utils/config.h @@ -113,6 +113,7 @@ public: hideBalance, hideUpdateNotifications, hideNotifications, + hideTrayIcon, warnOnExternalLink, inactivityLockEnabled, inactivityLockTimeout, -- 2.52.0