From 700b0d24e021cf5a1dc3c653f61304342ff74da6 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 16 Feb 2019 00:55:27 +0100 Subject: [PATCH] Don't show stats for pause dirs in GUI --- model/syncthingdirectorymodel.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/model/syncthingdirectorymodel.cpp b/model/syncthingdirectorymodel.cpp index 2df068b..aa3c729 100644 --- a/model/syncthingdirectorymodel.cpp +++ b/model/syncthingdirectorymodel.cpp @@ -102,12 +102,14 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const if (index.parent().isValid()) { // dir attributes if (static_cast(index.parent().row()) < m_dirs.size()) { + const SyncthingDir &dir = m_dirs[static_cast(index.parent().row())]; + const auto row = dir.paused && index.row() > 1 ? index.row() + 2 : index.row(); switch (role) { case Qt::DisplayRole: case Qt::EditRole: if (index.column() == 0) { // attribute names - switch (index.row()) { + switch (row) { case 0: return tr("ID"); case 1: @@ -135,8 +137,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const case DirectoryDetail: if (index.column() == 1 || role == DirectoryDetail) { // attribute values - const SyncthingDir &dir = m_dirs[static_cast(index.parent().row())]; - switch (index.row()) { + switch (row) { case 0: return dir.id; case 1: @@ -183,7 +184,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const switch (index.column()) { case 1: const SyncthingDir &dir = m_dirs[static_cast(index.parent().row())]; - switch (index.row()) { + switch (row) { case 4: if (dir.deviceIds.isEmpty()) { return Colors::gray(m_brightColors); @@ -206,7 +207,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const switch (index.column()) { case 1: const SyncthingDir &dir = m_dirs[static_cast(index.parent().row())]; - switch (index.row()) { + switch (row) { case 3: if (dir.deviceNames.isEmpty()) { return dir.deviceIds.join(QChar('\n')); @@ -329,8 +330,9 @@ int SyncthingDirectoryModel::rowCount(const QModelIndex &parent) const { if (!parent.isValid()) { return static_cast(m_dirs.size()); - } else if (!parent.parent().isValid()) { - return 10; + } else if (!parent.parent().isValid() && static_cast(parent.row()) < m_dirs.size()) { + const SyncthingDir &dir = m_dirs[static_cast(parent.row())]; + return dir.paused ? 8 : 10; } else { return 0; }