Disable pause/resume button within GUI in consistency with official GUI

This commit is contained in:
Martchus 2021-02-12 20:31:05 +01:00
parent a9f570fbc9
commit 0fc44a9142
4 changed files with 9 additions and 3 deletions

View File

@ -28,6 +28,7 @@ QHash<int, QByteArray> SyncthingDeviceModel::roleNames() const
{ DeviceStatus, "status" },
{ Qt::DecorationRole, "statusIcon" },
{ DevicePaused, "paused" },
{ IsOwnDevice, "isOwnDevice" },
{ DeviceStatusString, "statusString" },
{ DeviceStatusColor, "statusColor" },
{ DeviceId, "devId" },

View File

@ -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(

View File

@ -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);

View File

@ -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")),