diff options
author | saturneric <[email protected]> | 2025-04-12 21:00:14 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2025-04-12 21:00:14 +0000 |
commit | abcb26229b53f9a5cacd9197168229005ef80c37 (patch) | |
tree | 8952315401d957bf668541d48e1908d9bd6fd79d /src | |
parent | feat: add assuan direct comm support (diff) | |
download | GpgFrontend-abcb26229b53f9a5cacd9197168229005ef80c37.tar.gz GpgFrontend-abcb26229b53f9a5cacd9197168229005ef80c37.zip |
feat: support tooltips for key table entries
Diffstat (limited to 'src')
-rw-r--r-- | src/core/model/GpgKeyTableModel.cpp | 32 |
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 {}; } |