From c6b03ae0aabc91130bfb3b45b1ca0890ea2e366f Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 20 Jun 2023 23:21:21 +0200 Subject: [PATCH] =?UTF-8?q?Show=20"Connecting=20=E2=80=A6"=20status=20via?= =?UTF-8?q?=20"Connect/Resume/Pause"=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes it more obvious that Syncthing Tray is currently connecting to Syncthing (instead of just hiding the button completely). --- plasmoid/package/contents/ui/ToolBar.qml | 12 ++++++---- tray/gui/traywidget.cpp | 29 ++++++++++++++---------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/plasmoid/package/contents/ui/ToolBar.qml b/plasmoid/package/contents/ui/ToolBar.qml index 8fefa96..3be8800 100644 --- a/plasmoid/package/contents/ui/ToolBar.qml +++ b/plasmoid/package/contents/ui/ToolBar.qml @@ -24,14 +24,16 @@ RowLayout { target: connectButton text: qsTr("Connect") icon.source: plasmoid.nativeInterface.faUrl + "refresh" - visible: true + enabled: true } }, State { name: "connecting" PropertyChanges { target: connectButton - visible: false + text: qsTr("Connecting …") + icon.source: plasmoid.nativeInterface.faUrl + "refresh" + enabled: false } }, State { @@ -40,7 +42,7 @@ RowLayout { target: connectButton text: qsTr("Resume") icon.source: plasmoid.nativeInterface.faUrl + "play" - visible: true + enabled: true } }, State { @@ -49,14 +51,14 @@ RowLayout { target: connectButton text: qsTr("Pause") icon.source: plasmoid.nativeInterface.faUrl + "pause" - visible: true + enabled: true } } ] state: { switch (plasmoid.nativeInterface.connection.status) { case SyncthingPlasmoid.Data.Disconnected: - return "disconnected" + return plasmoid.nativeInterface.connection.connecting ? "connecting" : "disconnected" case SyncthingPlasmoid.Data.Reconnecting: return "connecting"; case SyncthingPlasmoid.Data.Paused: diff --git a/tray/gui/traywidget.cpp b/tray/gui/traywidget.cpp index 0151d7a..53df842 100644 --- a/tray/gui/traywidget.cpp +++ b/tray/gui/traywidget.cpp @@ -456,17 +456,22 @@ void TrayWidget::handleStatusChanged(SyncthingStatus status) { switch (status) { case SyncthingStatus::Disconnected: - m_ui->statusPushButton->setText(tr("Connect")); - m_ui->statusPushButton->setToolTip(tr("Not connected to Syncthing, click to connect")); - m_ui->statusPushButton->setIcon(QIcon(QStringLiteral("refresh.fa"))); - m_ui->statusPushButton->setHidden(false); - updateTraffic(); // ensure previous traffic statistics are no longer shown - if (m_applyingSettingsForWizard) { - concludeWizard(tr("Unable to establish connection to Syncthing.")); - } - return; case SyncthingStatus::Reconnecting: - m_ui->statusPushButton->setHidden(true); + if (status == SyncthingStatus::Reconnecting || m_connection.isConnecting()) { + m_ui->statusPushButton->setText(tr("Connecting …")); + m_ui->statusPushButton->setToolTip(tr("Establishing connection to Syncthing …")); + m_ui->statusPushButton->setIcon(QIcon(QStringLiteral("refresh.fa"))); + m_ui->statusPushButton->setEnabled(false); + } else { + m_ui->statusPushButton->setText(tr("Connect")); + m_ui->statusPushButton->setToolTip(tr("Not connected to Syncthing, click to connect")); + m_ui->statusPushButton->setIcon(QIcon(QStringLiteral("refresh.fa"))); + m_ui->statusPushButton->setEnabled(true); + updateTraffic(); // ensure previous traffic statistics are no longer shown + if (m_applyingSettingsForWizard) { + concludeWizard(tr("Unable to establish connection to Syncthing.")); + } + } return; case SyncthingStatus::Idle: case SyncthingStatus::Scanning: @@ -475,13 +480,13 @@ void TrayWidget::handleStatusChanged(SyncthingStatus status) m_ui->statusPushButton->setText(tr("Pause")); m_ui->statusPushButton->setToolTip(tr("Syncthing is running, click to pause all devices")); m_ui->statusPushButton->setIcon(QIcon(QStringLiteral("pause.fa"))); - m_ui->statusPushButton->setHidden(false); + m_ui->statusPushButton->setEnabled(true); break; case SyncthingStatus::Paused: m_ui->statusPushButton->setText(tr("Continue")); m_ui->statusPushButton->setToolTip(tr("At least one device is paused, click to resume")); m_ui->statusPushButton->setIcon(QIcon(QStringLiteral("play.fa"))); - m_ui->statusPushButton->setHidden(false); + m_ui->statusPushButton->setEnabled(true); break; default:; }