From 778585c334d5608f0fcc44dd9f3ca272ebf3f512 Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 17 Dec 2024 21:42:10 +0100 Subject: [PATCH] Explose number of needed items in models --- syncthingmodel/syncthingdevicemodel.cpp | 5 ++++- syncthingmodel/syncthingdevicemodel.h | 1 + syncthingmodel/syncthingdirectorymodel.cpp | 5 ++++- syncthingmodel/syncthingdirectorymodel.h | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/syncthingmodel/syncthingdevicemodel.cpp b/syncthingmodel/syncthingdevicemodel.cpp index 8d59c799..c267d446 100644 --- a/syncthingmodel/syncthingdevicemodel.cpp +++ b/syncthingmodel/syncthingdevicemodel.cpp @@ -42,6 +42,7 @@ QHash SyncthingDeviceModel::roleNames() const { DeviceId, "devId" }, { DeviceDetail, "detail" }, { DeviceDetailIcon, "detailIcon" }, + { DeviceNeededItemsCount, "neededItems" }, }; return roles; } @@ -319,6 +320,8 @@ QVariant SyncthingDeviceModel::data(const QModelIndex &index, int role) const return devStatusColor(dev); case DeviceId: return dev.id; + case DeviceNeededItemsCount: + return dev.overallCompletion.needed.items; default:; } return QVariant(); @@ -352,7 +355,7 @@ void SyncthingDeviceModel::devStatusChanged(const SyncthingDev &dev, int index) // update top-level indices const QModelIndex modelIndex1(this->index(index, 0, QModelIndex())); static const QVector modelRoles1({ Qt::DisplayRole, Qt::EditRole, Qt::DecorationRole, Qt::ForegroundRole, DevicePaused, DeviceStatus, - DeviceStatusString, DeviceStatusColor, DeviceId, IsThisDevice, IsPinned }); + DeviceStatusString, DeviceStatusColor, DeviceId, IsThisDevice, IsPinned, DeviceNeededItemsCount }); emit dataChanged(modelIndex1, modelIndex1, modelRoles1); const QModelIndex modelIndex2(this->index(index, 1, QModelIndex())); static const QVector modelRoles2({ Qt::DisplayRole, Qt::EditRole, Qt::ForegroundRole }); diff --git a/syncthingmodel/syncthingdevicemodel.h b/syncthingmodel/syncthingdevicemodel.h index 35a59730..ded4deca 100644 --- a/syncthingmodel/syncthingdevicemodel.h +++ b/syncthingmodel/syncthingdevicemodel.h @@ -23,6 +23,7 @@ class LIB_SYNCTHING_MODEL_EXPORT SyncthingDeviceModel : public SyncthingModel { DeviceId, DeviceDetail, DeviceDetailIcon, + DeviceNeededItemsCount, }; explicit SyncthingDeviceModel(SyncthingConnection &connection, QObject *parent = nullptr); diff --git a/syncthingmodel/syncthingdirectorymodel.cpp b/syncthingmodel/syncthingdirectorymodel.cpp index 71e01657..0f0f0aa1 100644 --- a/syncthingmodel/syncthingdirectorymodel.cpp +++ b/syncthingmodel/syncthingdirectorymodel.cpp @@ -41,6 +41,7 @@ QHash SyncthingDirectoryModel::roleNames() const { DirectoryPullErrorCount, "pullErrorCount" }, { DirectoryDetail, "detail" }, { DirectoryDetailIcon, "detailIcon" }, + { DirectoryNeededItemsCount, "neededItemsCount" }, }; return roles; } @@ -358,6 +359,8 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const return dir.path; case DirectoryPullErrorCount: return dir.pullErrorCount; + case DirectoryNeededItemsCount: + return dir.neededStats.total; default:; } @@ -392,7 +395,7 @@ void SyncthingDirectoryModel::dirStatusChanged(const SyncthingDir &dir, int inde // update top-level indices const QModelIndex modelIndex1(this->index(index, 0, QModelIndex())); static const QVector modelRoles1({ Qt::DisplayRole, Qt::EditRole, Qt::DecorationRole, DirectoryPaused, DirectoryStatus, - DirectoryStatusString, DirectoryStatusColor, DirectoryId, DirectoryPath, DirectoryPullErrorCount }); + DirectoryStatusString, DirectoryStatusColor, DirectoryId, DirectoryPath, DirectoryPullErrorCount, DirectoryNeededItemsCount }); emit dataChanged(modelIndex1, modelIndex1, modelRoles1); const QModelIndex modelIndex2(this->index(index, 1, QModelIndex())); static const QVector modelRoles2({ Qt::DisplayRole, Qt::EditRole, Qt::ForegroundRole }); diff --git a/syncthingmodel/syncthingdirectorymodel.h b/syncthingmodel/syncthingdirectorymodel.h index bb058de6..b9028e7d 100644 --- a/syncthingmodel/syncthingdirectorymodel.h +++ b/syncthingmodel/syncthingdirectorymodel.h @@ -24,6 +24,7 @@ class LIB_SYNCTHING_MODEL_EXPORT SyncthingDirectoryModel : public SyncthingModel DirectoryPullErrorCount, DirectoryDetail, DirectoryDetailIcon, + DirectoryNeededItemsCount, }; explicit SyncthingDirectoryModel(SyncthingConnection &connection, QObject *parent = nullptr);