diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml
index 82789739d..a18834e97 100644
--- a/resources/desktop/com.github.rssguard.appdata.xml
+++ b/resources/desktop/com.github.rssguard.appdata.xml
@@ -26,7 +26,7 @@
https://github.com/sponsors/martinrotter
-
+
none
diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp
index 43824495b..e522a0d6c 100644
--- a/src/librssguard/gui/dialogs/formmain.cpp
+++ b/src/librssguard/gui/dialogs/formmain.cpp
@@ -407,9 +407,7 @@ void FormMain::onFeedUpdatesStarted() {
void FormMain::onFeedUpdatesProgress(const Feed* feed, int current, int total) {
statusBar()->showProgressFeeds(int((current * 100.0) / total),
-
- //: Text display in status bar when particular feed is updated.
- tr("Fetched '%1'").arg(TextFactory::shorten(feed->title())));
+ feed->title());
}
void FormMain::updateMessageButtonsAvailability() {
diff --git a/src/librssguard/gui/messagesview.cpp b/src/librssguard/gui/messagesview.cpp
index d193d3712..36ef6cc7c 100644
--- a/src/librssguard/gui/messagesview.cpp
+++ b/src/librssguard/gui/messagesview.cpp
@@ -27,7 +27,8 @@
#include
MessagesView::MessagesView(QWidget* parent)
- : BaseTreeView(parent), m_contextMenu(nullptr), m_columnsAdjusted(false), m_processingMouse(false) {
+ : BaseTreeView(parent), m_contextMenu(nullptr), m_columnsAdjusted(false), m_processingAnyMouseButton(false),
+ m_processingRightMouseButton(false) {
m_sourceModel = qApp->feedReader()->messagesModel();
m_proxyModel = qApp->feedReader()->messagesProxyModel();
@@ -351,9 +352,13 @@ void MessagesView::initializeContextMenu() {
}
void MessagesView::mousePressEvent(QMouseEvent* event) {
- m_processingMouse = true;
+ m_processingAnyMouseButton = true;
+ m_processingRightMouseButton = event->button() == Qt::MouseButton::RightButton;
+
QTreeView::mousePressEvent(event);
- m_processingMouse = false;
+
+ m_processingAnyMouseButton = false;
+ m_processingRightMouseButton = false;
switch (event->button()) {
case Qt::MouseButton::LeftButton: {
@@ -415,8 +420,10 @@ void MessagesView::selectionChanged(const QItemSelection& selected, const QItemS
// Set this message as read only if current item
// wasn't changed by "mark selected messages unread" action.
- m_sourceModel->setMessageRead(mapped_current_index.row(), RootItem::ReadStatus::Read);
- message.m_isRead = true;
+ if (!m_processingRightMouseButton) {
+ m_sourceModel->setMessageRead(mapped_current_index.row(), RootItem::ReadStatus::Read);
+ message.m_isRead = true;
+ }
emit currentMessageChanged(message, m_sourceModel->loadedItem());
}
@@ -428,7 +435,7 @@ void MessagesView::selectionChanged(const QItemSelection& selected, const QItemS
setCurrentIndex({});
}
- if (!m_processingMouse &&
+ if (!m_processingAnyMouseButton &&
qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()) {
scrollTo(currentIndex(), QAbstractItemView::ScrollHint::PositionAtCenter);
}
@@ -616,7 +623,7 @@ void MessagesView::selectNextItem() {
setCurrentIndex(index_next);
scrollTo(index_next,
- !m_processingMouse && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
+ !m_processingAnyMouseButton && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
? QAbstractItemView::ScrollHint::PositionAtCenter
: QAbstractItemView::ScrollHint::PositionAtTop);
@@ -632,7 +639,7 @@ void MessagesView::selectPreviousItem() {
setCurrentIndex(index_previous);
scrollTo(index_previous,
- !m_processingMouse && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
+ !m_processingAnyMouseButton && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
? QAbstractItemView::ScrollHint::PositionAtCenter
: QAbstractItemView::ScrollHint::PositionAtTop);
@@ -664,7 +671,7 @@ void MessagesView::selectNextUnreadItem() {
qApp->processEvents();
scrollTo(next_unread,
- !m_processingMouse && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
+ !m_processingAnyMouseButton && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
? QAbstractItemView::ScrollHint::PositionAtCenter
: QAbstractItemView::ScrollHint::PositionAtTop);
@@ -692,7 +699,7 @@ void MessagesView::searchMessages(const QString& pattern) {
else {
// Scroll to selected message, it could become scrolled out due to filter change.
scrollTo(selectionModel()->selectedRows().at(0),
- !m_processingMouse && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
+ !m_processingAnyMouseButton && qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()
? QAbstractItemView::ScrollHint::PositionAtCenter
: QAbstractItemView::ScrollHint::EnsureVisible);
}
diff --git a/src/librssguard/gui/messagesview.h b/src/librssguard/gui/messagesview.h
index 332fc6e34..f7f6896e4 100644
--- a/src/librssguard/gui/messagesview.h
+++ b/src/librssguard/gui/messagesview.h
@@ -107,7 +107,8 @@ class MessagesView : public BaseTreeView {
MessagesProxyModel* m_proxyModel;
MessagesModel* m_sourceModel;
bool m_columnsAdjusted;
- bool m_processingMouse;
+ bool m_processingAnyMouseButton;
+ bool m_processingRightMouseButton;
};
inline MessagesProxyModel* MessagesView::model() const {
diff --git a/src/librssguard/gui/reusable/progressbarwithtext.cpp b/src/librssguard/gui/reusable/progressbarwithtext.cpp
index aebebb1bc..f97838c52 100644
--- a/src/librssguard/gui/reusable/progressbarwithtext.cpp
+++ b/src/librssguard/gui/reusable/progressbarwithtext.cpp
@@ -5,26 +5,44 @@
#include "definitions/definitions.h"
#include "miscellaneous/application.h"
-ProgressBarWithText::ProgressBarWithText(QWidget* parent) : QProgressBar(parent) {}
+ProgressBarWithText::ProgressBarWithText(QWidget* parent) : QProgressBar(parent) {
+ //setSizePolicy(QSizePolicy::Policy::Maximum, QSizePolicy::Policy::Preferred);
+}
+
+/*
+ QSize ProgressBarWithText::minimumSizeHint() const {
+ QString txt = text();
+
+ return QSize(fontMetrics().boundingRect(txt).width() + 32,
+ QProgressBar::minimumSizeHint().height());
+ }
+
+ QSize ProgressBarWithText::sizeHint() const {
+ QString txt = text();
+
+ return QSize(fontMetrics().boundingRect(txt).width() + 32,
+ QProgressBar::sizeHint().height());
+ }
+ */
QString ProgressBarWithText::text() const {
- qint64 totalSteps = qint64(maximum()) - minimum();
+ qint64 total_steps = qint64(maximum()) - minimum();
QString result = format();
QLocale locale;
locale.setNumberOptions(locale.numberOptions() | QLocale::OmitGroupSeparator);
- result.replace(QLatin1String("%m"), locale.toString(totalSteps));
+ result.replace(QLatin1String("%m"), locale.toString(total_steps));
result.replace(QLatin1String("%v"), locale.toString(value()));
// If max and min are equal and we get this far, it means that the
// progress bar has one step and that we are on that step. Return
// 100% here in order to avoid division by zero further down.
- if (totalSteps == 0) {
+ if (total_steps == 0) {
result.replace(QLatin1String("%p"), locale.toString(100));
return result;
}
- const auto progress = static_cast((qint64(value()) - minimum()) * 100.0 / totalSteps);
+ const auto progress = static_cast((qint64(value()) - minimum()) * 100.0 / total_steps);
result.replace(QLatin1String("%p"), locale.toString(progress));
return result;
diff --git a/src/librssguard/gui/reusable/progressbarwithtext.h b/src/librssguard/gui/reusable/progressbarwithtext.h
index 123f2f35a..ddcb7d99d 100644
--- a/src/librssguard/gui/reusable/progressbarwithtext.h
+++ b/src/librssguard/gui/reusable/progressbarwithtext.h
@@ -9,6 +9,11 @@ class ProgressBarWithText : public QProgressBar {
public:
explicit ProgressBarWithText(QWidget* parent = nullptr);
+ // NOTE: Can be uncommented (along with constructor code)
+ // to enable automatic fit-to-contents progress bars.
+ //virtual QSize minimumSizeHint() const;
+ //virtual QSize sizeHint() const;
+
virtual QString text() const;
};
diff --git a/src/librssguard/gui/toolbars/statusbar.cpp b/src/librssguard/gui/toolbars/statusbar.cpp
index 8ba7801bc..1dbcd8f81 100644
--- a/src/librssguard/gui/toolbars/statusbar.cpp
+++ b/src/librssguard/gui/toolbars/statusbar.cpp
@@ -18,7 +18,7 @@ StatusBar::StatusBar(QWidget* parent) : QStatusBar(parent) {
m_barProgressFeeds = new ProgressBarWithText(this);
m_barProgressFeeds->setTextVisible(true);
- m_barProgressFeeds->setFixedWidth(230);
+ m_barProgressFeeds->setFixedWidth(250);
m_barProgressFeeds->setVisible(false);
m_barProgressFeeds->setObjectName(QSL("m_barProgressFeeds"));