From ace27f9e9c77f08158e5f4df597b871c8ae93059 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 7 Oct 2022 23:15:25 +0200 Subject: [PATCH] Fix saving pinned state persistently --- tray/gui/traymenu.cpp | 1 + tray/gui/traywidget.cpp | 10 +++++++++- tray/gui/traywidget.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tray/gui/traymenu.cpp b/tray/gui/traymenu.cpp index abf92cc..dd69cf0 100644 --- a/tray/gui/traymenu.cpp +++ b/tray/gui/traymenu.cpp @@ -16,6 +16,7 @@ namespace QtGui { TrayMenu::TrayMenu(TrayIcon *trayIcon, QWidget *parent) : QMenu(parent) , m_trayIcon(trayIcon) + , m_pinned(false) { setObjectName(QStringLiteral("QtGui::TrayMenu")); auto *const menuLayout = new QHBoxLayout; diff --git a/tray/gui/traywidget.cpp b/tray/gui/traywidget.cpp index 7abd3bb..1faac08 100644 --- a/tray/gui/traywidget.cpp +++ b/tray/gui/traywidget.cpp @@ -221,7 +221,7 @@ TrayWidget::TrayWidget(TrayMenu *parent) connect(launcher, &SyncthingLauncher::runningChanged, this, &TrayWidget::handleLauncherStatusChanged); } if (m_menu && Settings::values().enableWipFeatures) { - connect(m_ui->pinPushButton, &QPushButton::toggled, m_menu, &TrayMenu::setPinned); + connect(m_ui->pinPushButton, &QPushButton::toggled, this, &TrayWidget::handlePinnedChanged); } else { m_ui->pinPushButton->hide(); } @@ -331,6 +331,14 @@ void TrayWidget::applySettingsChangesFromWizard() } } +void TrayWidget::handlePinnedChanged(bool pinned) +{ + Settings::values().appearance.pinned = pinned; + if (m_menu) { + m_menu->setPinned(pinned); + } +} + void TrayWidget::showAboutDialog() { if (!s_dialogParent) { diff --git a/tray/gui/traywidget.h b/tray/gui/traywidget.h index bca41a9..0e39af9 100644 --- a/tray/gui/traywidget.h +++ b/tray/gui/traywidget.h @@ -84,6 +84,7 @@ protected: private Q_SLOTS: void handleStatusChanged(Data::SyncthingStatus status); + void handlePinnedChanged(bool pinned); static void applySettingsOnAllInstances(); void openDir(const Data::SyncthingDir &dir); void openItemDir(const Data::SyncthingItemDownloadProgress &item);