From bb6ab9ee2f6530db02ea85e1df600fafed06929e Mon Sep 17 00:00:00 2001 From: martinrotter Date: Wed, 15 Mar 2017 06:45:18 +0100 Subject: [PATCH] Display remaining time and better update status in tooltips. --- src/services/abstract/feed.cpp | 37 ++++++++++++++++++++++++++ src/services/abstract/feed.h | 3 +++ src/services/standard/standardfeed.cpp | 27 ++----------------- 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/src/services/abstract/feed.cpp b/src/services/abstract/feed.cpp index cb2adf472..3af24721f 100755 --- a/src/services/abstract/feed.cpp +++ b/src/services/abstract/feed.cpp @@ -46,6 +46,19 @@ QList Feed::undeletedMessages() const { QVariant Feed::data(int column, int role) const { switch (role) { + case Qt::ToolTipRole: + if (column == FDS_MODEL_TITLE_INDEX) { + //: Tooltip for feed. + return tr("%1" + "%2\n\n" + "Auto-update status: %3").arg(title(), + description().isEmpty() ? QString() : QString('\n') + description(), + getAutoUpdateStatusDescription()); + } + else { + return RootItem::data(column, role); + } + case Qt::ForegroundRole: switch (status()) { case NewMessages: @@ -201,3 +214,27 @@ int Feed::updateMessages(const QList &messages, bool error_during_obtai return updated_messages; } + +QString Feed::getAutoUpdateStatusDescription() const { + QString auto_update_string; + + switch (autoUpdateType()) { + case DontAutoUpdate: + //: Describes feed auto-update status. + auto_update_string = tr("does not use auto-update"); + break; + + case DefaultAutoUpdate: + //: Describes feed auto-update status. + auto_update_string = tr("uses global settings (%n minute(s) to next auto-update)", 0, qApp->feedReader()->autoUpdateRemainingInterval()); + break; + + case SpecificAutoUpdate: + default: + //: Describes feed auto-update status. + auto_update_string = tr("uses specific settings (%n minute(s) to next auto-update)", 0, autoUpdateRemainingInterval()); + break; + } + + return auto_update_string; +} diff --git a/src/services/abstract/feed.h b/src/services/abstract/feed.h index a48c04b9e..c18b21f17 100755 --- a/src/services/abstract/feed.h +++ b/src/services/abstract/feed.h @@ -85,6 +85,9 @@ class Feed : public RootItem, public QRunnable { void updateCounts(bool including_total_count); int updateMessages(const QList &messages, bool error_during_obtaining); + protected: + QString getAutoUpdateStatusDescription() const; + signals: void messagesObtained(QList messages, bool error_during_obtaining); diff --git a/src/services/standard/standardfeed.cpp b/src/services/standard/standardfeed.cpp index fb66458af..eb238ddd1 100755 --- a/src/services/standard/standardfeed.cpp +++ b/src/services/standard/standardfeed.cpp @@ -119,29 +119,6 @@ QVariant StandardFeed::data(int column, int role) const { switch (role) { case Qt::ToolTipRole: if (column == FDS_MODEL_TITLE_INDEX) { - QString auto_update_string; - - switch (autoUpdateType()) { - case DontAutoUpdate: - //: Describes feed auto-update status. - auto_update_string = tr("does not use auto-update"); - break; - - case DefaultAutoUpdate: - //: Describes feed auto-update status. - auto_update_string = tr("uses global settings"); - break; - - case SpecificAutoUpdate: - default: - //: Describes feed auto-update status. - auto_update_string = tr("uses specific settings " - "(%n minute(s) to next auto-update)", - 0, - autoUpdateRemainingInterval()); - break; - } - //: Tooltip for feed. return tr("%1 (%2)" "%3\n\n" @@ -151,11 +128,11 @@ QVariant StandardFeed::data(int column, int role) const { StandardFeed::typeToString(type()), description().isEmpty() ? QString() : QString('\n') + description(), encoding(), - auto_update_string, + getAutoUpdateStatusDescription(), NetworkFactory::networkErrorText(m_networkError)); } else { - return Feed::data(column, role); + return QVariant(); } default: