aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-04-12 21:00:14 +0000
committersaturneric <[email protected]>2025-04-12 21:00:14 +0000
commitabcb26229b53f9a5cacd9197168229005ef80c37 (patch)
tree8952315401d957bf668541d48e1908d9bd6fd79d /src
parentfeat: add assuan direct comm support (diff)
downloadGpgFrontend-abcb26229b53f9a5cacd9197168229005ef80c37.tar.gz
GpgFrontend-abcb26229b53f9a5cacd9197168229005ef80c37.zip
feat: support tooltips for key table entries
Diffstat (limited to 'src')
-rw-r--r--src/core/model/GpgKeyTableModel.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/core/model/GpgKeyTableModel.cpp b/src/core/model/GpgKeyTableModel.cpp
index 2d01aee8..858ebd75 100644
--- a/src/core/model/GpgKeyTableModel.cpp
+++ b/src/core/model/GpgKeyTableModel.cpp
@@ -137,6 +137,38 @@ auto GpgKeyTableModel::data(const QModelIndex &index,
}
}
+ if (role == Qt::ToolTipRole) {
+ const auto key = i->Key();
+
+ QStringList tooltip_lines;
+ tooltip_lines << tr("ID: %1").arg(key.ID());
+ tooltip_lines << tr("Algo: %1").arg(key.Algo());
+ tooltip_lines << tr("Usage: %1").arg(GetUsagesByKey(key));
+ tooltip_lines << tr("Trust: %1").arg(key.OwnerTrust());
+ tooltip_lines << tr("Comment: %1")
+ .arg(key.Comment().isEmpty()
+ ? "<" + tr("No Comment") + ">"
+ : key.Comment());
+
+ const auto s_keys = key.SubKeys();
+ if (!s_keys.empty()) {
+ tooltip_lines << "";
+ tooltip_lines << tr("SubKeys (up to 8):");
+
+ int count = 0;
+ for (const auto &s_key : s_keys) {
+ if (count++ >= 8) break;
+ const auto usages = GetUsagesBySubkey(s_key);
+ tooltip_lines << tr(" - ID: %1 | Algo: %2 | Usage: %3")
+ .arg(s_key.ID())
+ .arg(s_key.Algo())
+ .arg(usages.trimmed());
+ }
+ }
+
+ return tooltip_lines.join("\n");
+ }
+
return {};
}