From 0fc44a9142a13d99389db09e83f0d2d2daf182fe Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 12 Feb 2021 20:31:05 +0100 Subject: [PATCH] Disable pause/resume button within GUI in consistency with official GUI --- model/syncthingdevicemodel.cpp | 1 + plasmoid/package/contents/ui/DevicesPage.qml | 1 + tray/gui/devbuttonsitemdelegate.cpp | 3 +++ tray/gui/devview.cpp | 7 ++++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/model/syncthingdevicemodel.cpp b/model/syncthingdevicemodel.cpp index f8c8733..08f7f96 100644 --- a/model/syncthingdevicemodel.cpp +++ b/model/syncthingdevicemodel.cpp @@ -28,6 +28,7 @@ QHash SyncthingDeviceModel::roleNames() const { DeviceStatus, "status" }, { Qt::DecorationRole, "statusIcon" }, { DevicePaused, "paused" }, + { IsOwnDevice, "isOwnDevice" }, { DeviceStatusString, "statusString" }, { DeviceStatusColor, "statusColor" }, { DeviceId, "devId" }, diff --git a/plasmoid/package/contents/ui/DevicesPage.qml b/plasmoid/package/contents/ui/DevicesPage.qml index bbc2789..4b1ab05 100644 --- a/plasmoid/package/contents/ui/DevicesPage.qml +++ b/plasmoid/package/contents/ui/DevicesPage.qml @@ -62,6 +62,7 @@ Item { id: resumePauseButton icon.name: paused ? "media-playback-start" : "media-playback-pause" tooltip: paused ? qsTr("Resume") : qsTr("Pause") + enabled: !isOwnDevice onClicked: { paused ? plasmoid.nativeInterface.connection.resumeDevice( [devId]) : plasmoid.nativeInterface.connection.pauseDevice( diff --git a/tray/gui/devbuttonsitemdelegate.cpp b/tray/gui/devbuttonsitemdelegate.cpp index 471692c..c67f3e6 100644 --- a/tray/gui/devbuttonsitemdelegate.cpp +++ b/tray/gui/devbuttonsitemdelegate.cpp @@ -55,6 +55,9 @@ void DevButtonsItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem painter->drawText(textRect, displayText(index.data(Qt::DisplayRole), option.locale), textOption); // draw buttons + if (index.data(SyncthingDeviceModel::IsOwnDevice).toBool()) { + return; + } const int buttonY = option.rect.y() + centerObj(option.rect.height(), 16); painter->drawPixmap( option.rect.right() - 16, buttonY, 16, 16, index.data(SyncthingDeviceModel::DevicePaused).toBool() ? m_resumeIcon : m_pauseIcon); diff --git a/tray/gui/devview.cpp b/tray/gui/devview.cpp index d4daaa1..d628d93 100644 --- a/tray/gui/devview.cpp +++ b/tray/gui/devview.cpp @@ -40,8 +40,9 @@ void DevView::mouseReleaseEvent(QMouseEvent *event) } const auto itemRect = visualRect(clickedRow.proxyIndex); - if (pos.x() > itemRect.right() - 17) { - emit pauseResumeDev(*clickedRow.data); + const auto &device = *clickedRow.data; + if (device.status != SyncthingDevStatus::OwnDevice && pos.x() > itemRect.right() - 17) { + emit pauseResumeDev(device); } } @@ -72,7 +73,7 @@ void DevView::showContextMenu(const QPoint &position) QIcon(QStringLiteral(":/icons/hicolor/scalable/actions/media-playback-start.svg"))), tr("Resume")), &QAction::triggered, triggerActionForSelectedRow(this, &DevView::pauseResumeDev)); - } else { + } else if (dev->status != SyncthingDevStatus::OwnDevice) { connect(menu.addAction(QIcon::fromTheme(QStringLiteral("media-playback-pause"), QIcon(QStringLiteral(":/icons/hicolor/scalable/actions/media-playback-pause.svg"))), tr("Pause")),