]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
settings: add option to hide tray icon
authortobtoht <tob@featherwallet.org>
Tue, 4 Mar 2025 09:09:25 +0000 (10:09 +0100)
committertobtoht <tob@featherwallet.org>
Tue, 4 Mar 2025 09:09:25 +0000 (10:09 +0100)
src/SettingsDialog.cpp
src/SettingsDialog.h
src/SettingsDialog.ui
src/WindowManager.cpp
src/utils/config.cpp
src/utils/config.h

index 0a2e960cf21c623c9ba4104def8d4deecbe905ae..988217ebfa7cb0a26328b29d0bf196065acb6628 100644 (file)
@@ -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]{
index fcbd3d7eef9c80b5e1eb46e2ce71b4c806d41efc..b7c68d12da9b6875b83f32a1fa0e00ab556c182c 100644 (file)
@@ -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();
index df2c05acd63524b6810cf6c5fb88c633b898b9a0..ec55040959e23044819589933e6410077ad21575 100644 (file)
          <item>
           <widget class="QFrame" name="frame_2">
            <property name="frameShape">
-            <enum>QFrame::StyledPanel</enum>
+            <enum>QFrame::Shape::StyledPanel</enum>
            </property>
            <property name="frameShadow">
-            <enum>QFrame::Raised</enum>
+            <enum>QFrame::Shadow::Raised</enum>
            </property>
            <layout class="QHBoxLayout" name="horizontalLayout_7">
             <item>
               <item row="7" column="0">
                <spacer name="verticalSpacer_3">
                 <property name="orientation">
-                 <enum>Qt::Vertical</enum>
+                 <enum>Qt::Orientation::Vertical</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
              <item>
               <spacer name="verticalSpacer_11">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeType">
-                <enum>QSizePolicy::Maximum</enum>
+                <enum>QSizePolicy::Policy::Maximum</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
              <item>
               <spacer name="verticalSpacer_10">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
              <item>
               <spacer name="verticalSpacer_9">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
              <item>
               <layout class="QFormLayout" name="formLayout_2">
                <property name="fieldGrowthPolicy">
-                <enum>QFormLayout::ExpandingFieldsGrow</enum>
+                <enum>QFormLayout::FieldGrowthPolicy::ExpandingFieldsGrow</enum>
                </property>
                <property name="rowWrapPolicy">
-                <enum>QFormLayout::DontWrapRows</enum>
+                <enum>QFormLayout::RowWrapPolicy::DontWrapRows</enum>
                </property>
                <item row="0" column="0">
                 <widget class="QLabel" name="label_22">
              <item>
               <widget class="QFrame" name="frame_portableMode">
                <property name="frameShape">
-                <enum>QFrame::NoFrame</enum>
+                <enum>QFrame::Shape::NoFrame</enum>
                </property>
                <property name="frameShadow">
-                <enum>QFrame::Raised</enum>
+                <enum>QFrame::Shadow::Raised</enum>
                </property>
                <layout class="QHBoxLayout" name="horizontalLayout_6">
                 <property name="leftMargin">
              <item>
               <spacer name="verticalSpacer_4">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
              <item>
               <spacer name="verticalSpacer">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
                <item>
                 <spacer name="horizontalSpacer">
                  <property name="orientation">
-                  <enum>Qt::Horizontal</enum>
+                  <enum>Qt::Orientation::Horizontal</enum>
                  </property>
                  <property name="sizeHint" stdset="0">
                   <size>
              <item>
               <spacer name="verticalSpacer_5">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
             </sizepolicy>
            </property>
            <property name="frameShape">
-            <enum>QFrame::StyledPanel</enum>
+            <enum>QFrame::Shape::StyledPanel</enum>
            </property>
            <property name="frameShadow">
-            <enum>QFrame::Raised</enum>
+            <enum>QFrame::Shadow::Raised</enum>
            </property>
            <layout class="QVBoxLayout" name="verticalLayout_11">
             <item>
-             <layout class="QVBoxLayout" name="verticalLayout_19" stretch="1,1,1,1,1,1">
+             <layout class="QVBoxLayout" name="verticalLayout_19" stretch="1,1,1,0,1,1,1">
               <item>
                <layout class="QHBoxLayout" name="horizontalLayout_8">
                 <item>
                 </item>
                </layout>
               </item>
+              <item>
+               <layout class="QHBoxLayout" name="horizontalLayout_13">
+                <item>
+                 <widget class="QCheckBox" name="checkBox_hideTrayIcon">
+                  <property name="text">
+                   <string>Hide tray icon</string>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
+              </item>
               <item>
                <layout class="QHBoxLayout" name="horizontalLayout_12">
                 <item>
             <item>
              <spacer name="verticalSpacer_6">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
          <item>
           <widget class="QFrame" name="frame_4">
            <property name="frameShape">
-            <enum>QFrame::StyledPanel</enum>
+            <enum>QFrame::Shape::StyledPanel</enum>
            </property>
            <property name="frameShadow">
-            <enum>QFrame::Raised</enum>
+            <enum>QFrame::Shadow::Raised</enum>
            </property>
            <layout class="QVBoxLayout" name="verticalLayout_17">
             <item>
             <item>
              <spacer name="verticalSpacer_8">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
          <item>
           <widget class="QFrame" name="frame">
            <property name="frameShape">
-            <enum>QFrame::StyledPanel</enum>
+            <enum>QFrame::Shape::StyledPanel</enum>
            </property>
            <property name="frameShadow">
-            <enum>QFrame::Raised</enum>
+            <enum>QFrame::Shadow::Raised</enum>
            </property>
            <layout class="QVBoxLayout" name="verticalLayout_5">
             <item>
               <item>
                <spacer name="horizontalSpacer_4">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
             <item>
              <spacer name="verticalSpacer_2">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
              <item>
               <spacer name="verticalSpacer_7">
                <property name="orientation">
-                <enum>Qt::Vertical</enum>
+                <enum>Qt::Orientation::Vertical</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
    <item>
     <widget class="QDialogButtonBox" name="closeButton">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Orientation::Horizontal</enum>
      </property>
      <property name="standardButtons">
-      <set>QDialogButtonBox::Ok</set>
+      <set>QDialogButtonBox::StandardButton::Ok</set>
      </property>
     </widget>
    </item>
index f7b2429bfc8dba9a25533460e9e17128db1e5f37..dcf43956928926d4bda1463845adf77573568412 100644 (file)
@@ -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);
     });
index 07d55c346c0619a381eada1dbde20a7dede9f381..7d19207334dc0ba6e7736e329d88a8626ec83904 100644 (file)
@@ -98,6 +98,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> 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}},
index 2a4e236cc0f53df27c575a44bda01cd5872f0225..e874e47f45d998372f9e3431993acba35196119c 100644 (file)
@@ -113,6 +113,7 @@ public:
         hideBalance,
         hideUpdateNotifications,
         hideNotifications,
+        hideTrayIcon,
         warnOnExternalLink,
         inactivityLockEnabled,
         inactivityLockTimeout,