From 65fa66b104b1d863769c35f0eb8f07967801f214 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 13 Feb 2024 10:42:17 +0100 Subject: [PATCH] fix problems when source field is huge in feed --- src/librssguard/core/feedsmodel.cpp | 6 +-- .../services/standard/standardfeed.cpp | 41 ++++++++++++++++--- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/librssguard/core/feedsmodel.cpp b/src/librssguard/core/feedsmodel.cpp index d161d2361..49fde2715 100644 --- a/src/librssguard/core/feedsmodel.cpp +++ b/src/librssguard/core/feedsmodel.cpp @@ -93,7 +93,7 @@ QVariant FeedsModel::headerData(int section, Qt::Orientation orientation, int ro } switch (role) { - case Qt::DisplayRole: + case Qt::ItemDataRole::DisplayRole: if (section == FDS_MODEL_TITLE_INDEX) { return m_headerData.at(FDS_MODEL_TITLE_INDEX); } @@ -101,10 +101,10 @@ QVariant FeedsModel::headerData(int section, Qt::Orientation orientation, int ro return QVariant(); } - case Qt::ToolTipRole: + case Qt::ItemDataRole::ToolTipRole: return m_tooltipData.at(section); - case Qt::DecorationRole: + case Qt::ItemDataRole::DecorationRole: if (section == FDS_MODEL_COUNTS_INDEX) { return m_countsIcon; } diff --git a/src/librssguard/services/standard/standardfeed.cpp b/src/librssguard/services/standard/standardfeed.cpp index a96c61f96..6ac3fc3e6 100644 --- a/src/librssguard/services/standard/standardfeed.cpp +++ b/src/librssguard/services/standard/standardfeed.cpp @@ -62,12 +62,41 @@ QList StandardFeed::contextMenuFeedsList() { } QString StandardFeed::additionalTooltip() const { - return Feed::additionalTooltip() + tr("\nEncoding: %1\n" - "Type: %2\n" - "Post-processing script: %3") - .arg(encoding(), - StandardFeed::typeToString(type()), - m_postProcessScript.isEmpty() ? QSL("-") : m_postProcessScript); + QString stat = getStatusDescription(); + QString stat_string = statusString(); + + if (!stat_string.simplified().isEmpty()) { + stat += QSL(" (%1)").arg(stat_string); + } + + auto filters = messageFilters(); + auto std_fltrs = boolinq::from(filters) + .select([](const QPointer& pn) { + return pn->name(); + }) + .toStdList(); + QStringList fltrs = FROM_STD_LIST(QStringList, std_fltrs); + + QString base_tooltip = + tr("Auto-update status: %1\n" + "Active message filters: %2\n" + "Status: %3\n" + "Source: %4\n" + "Item ID: %5\n") + .arg(getAutoUpdateStatusDescription(), + filters.size() > 0 ? QSL("%1 (%2)").arg(QString::number(filters.size()), fltrs.join(QSL(", "))) + : QString::number(filters.size()), + stat, + m_sourceType == SourceType::Url ? QString("%1").arg(source().left(100)) + : source().left(100), + customId()); + + return base_tooltip + tr("Encoding: %1\n" + "Type: %2\n" + "Post-processing script: %3") + .arg(encoding(), + StandardFeed::typeToString(type()), + m_postProcessScript.isEmpty() ? QSL("-") : m_postProcessScript); } bool StandardFeed::canBeDeleted() const {