-
diff --git a/resources/skins/vergilius/html_wrapper.html b/resources/skins/vergilius/html_wrapper.html
index 97be4a35f..8052cb172 100755
--- a/resources/skins/vergilius/html_wrapper.html
+++ b/resources/skins/vergilius/html_wrapper.html
@@ -5891,30 +5891,8 @@
-
+
%1
-
-
-
diff --git a/resources/skins/vergilius/metadata.xml b/resources/skins/vergilius/metadata.xml
index d6d5acffe..d520af087 100755
--- a/resources/skins/vergilius/metadata.xml
+++ b/resources/skins/vergilius/metadata.xml
@@ -1,5 +1,5 @@
-
+
Martin Rotter
rotter.martinos@gmail.com
diff --git a/src/librssguard/gui/feedmessageviewer.cpp b/src/librssguard/gui/feedmessageviewer.cpp
index 1f24665d3..d7709f477 100644
--- a/src/librssguard/gui/feedmessageviewer.cpp
+++ b/src/librssguard/gui/feedmessageviewer.cpp
@@ -5,9 +5,13 @@
#include "core/feeddownloader.h"
#include "core/feedsproxymodel.h"
#include "core/messagesproxymodel.h"
+#include "exceptions/applicationexception.h"
+#include "gui/dialogs/formdatabasecleanup.h"
+#include "gui/dialogs/formmain.h"
#include "gui/feedstoolbar.h"
#include "gui/feedsview.h"
#include "gui/messagebox.h"
+#include "gui/messagepreviewer.h"
#include "gui/messagestoolbar.h"
#include "gui/messagesview.h"
#include "gui/statusbar.h"
@@ -23,14 +27,8 @@
#include "services/standard/standardfeedsimportexportmodel.h"
#include "services/standard/standardserviceroot.h"
-#include "exceptions/applicationexception.h"
-#include "gui/dialogs/formdatabasecleanup.h"
-#include "gui/dialogs/formmain.h"
-
#if defined(USE_WEBENGINE)
#include "gui/webbrowser.h"
-#else
-#include "gui/messagepreviewer.h"
#endif
#include
@@ -49,13 +47,7 @@
FeedMessageViewer::FeedMessageViewer(QWidget* parent) : TabContent(parent), m_toolBarsEnabled(true), m_listHeadersEnabled(true),
m_toolBarFeeds(new FeedsToolBar(tr("Toolbar for feeds"), this)), m_toolBarMessages(new MessagesToolBar(tr("Toolbar for messages"), this)),
m_messagesView(new MessagesView(this)), m_feedsView(new FeedsView(this)),
-
-#if defined(USE_WEBENGINE)
- m_messagesBrowser(new WebBrowser(this)) {
-#else
m_messagesBrowser(new MessagePreviewer(this)) {
-#endif
-
initialize();
initializeViews();
@@ -70,7 +62,7 @@ FeedMessageViewer::~FeedMessageViewer() {
#if defined(USE_WEBENGINE)
WebBrowser* FeedMessageViewer::webBrowser() const {
- return m_messagesBrowser;
+ return m_messagesBrowser->webBrowser();
}
#endif
@@ -210,16 +202,10 @@ void FeedMessageViewer::createConnections() {
connect(m_toolBarMessages, &MessagesToolBar::messageSearchPatternChanged, m_messagesView, &MessagesView::searchMessages);
connect(m_toolBarMessages, &MessagesToolBar::messageFilterChanged, m_messagesView, &MessagesView::filterMessages);
-#if defined(USE_WEBENGINE)
- connect(m_messagesView, &MessagesView::currentMessageRemoved, m_messagesBrowser, &WebBrowser::clear);
- connect(m_messagesBrowser, &WebBrowser::markMessageRead, m_messagesView->sourceModel(), &MessagesModel::setMessageReadById);
- connect(m_messagesBrowser, &WebBrowser::markMessageImportant, m_messagesView->sourceModel(), &MessagesModel::setMessageImportantById);
-#else
connect(m_messagesView, &MessagesView::currentMessageRemoved, m_messagesBrowser, &MessagePreviewer::clear);
connect(m_messagesBrowser, &MessagePreviewer::markMessageRead, m_messagesView->sourceModel(), &MessagesModel::setMessageReadById);
connect(m_messagesBrowser, &MessagePreviewer::markMessageImportant,
m_messagesView->sourceModel(), &MessagesModel::setMessageImportantById);
-#endif
connect(m_messagesView, &MessagesView::currentMessageChanged, this, &FeedMessageViewer::displayMessage);
diff --git a/src/librssguard/gui/feedmessageviewer.h b/src/librssguard/gui/feedmessageviewer.h
index 6305bdae8..4a23154b2 100644
--- a/src/librssguard/gui/feedmessageviewer.h
+++ b/src/librssguard/gui/feedmessageviewer.h
@@ -11,10 +11,9 @@
#if defined(USE_WEBENGINE)
class WebBrowser;
-#else
-class MessagePreviewer;
#endif
+class MessagePreviewer;
class MessagesView;
class MessagesToolBar;
class FeedsToolBar;
@@ -91,12 +90,7 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent {
FeedsView* m_feedsView;
QWidget* m_feedsWidget;
QWidget* m_messagesWidget;
-
-#if defined(USE_WEBENGINE)
- WebBrowser* m_messagesBrowser;
-#else
MessagePreviewer* m_messagesBrowser;
-#endif
};
#endif // FEEDMESSAGEVIEWER_H
diff --git a/src/librssguard/gui/messagepreviewer.cpp b/src/librssguard/gui/messagepreviewer.cpp
index 122ade174..fad888b15 100755
--- a/src/librssguard/gui/messagepreviewer.cpp
+++ b/src/librssguard/gui/messagepreviewer.cpp
@@ -10,7 +10,11 @@
#include "network-web/webfactory.h"
#include "services/abstract/serviceroot.h"
+#if defined (USE_WEBENGINE)
+#include "gui/webbrowser.h"
+#else
#include "gui/messagetextbrowser.h"
+#endif
#include
#include
@@ -22,6 +26,8 @@
void MessagePreviewer::createConnections() {
installEventFilter(this);
+#if defined (USE_WEBENGINE)
+#else
connect(m_searchWidget, &SearchTextWidget::cancelSearch, this, [this]() {
m_txtMessage->textCursor().clearSelection();
m_txtMessage->moveCursor(QTextCursor::MoveOperation::Left);
@@ -87,6 +93,14 @@ void MessagePreviewer::createConnections() {
tr("Selected hyperlink is invalid."));
}
});
+ connect(m_txtMessage,
+ QOverload::of(&QTextBrowser::highlighted),
+ [=](const QUrl& url) {
+ Q_UNUSED(url)
+ QToolTip::showText(QCursor::pos(), tr("Click this link to download it or open it with external browser."), this);
+ });
+#endif
+
connect(m_actionMarkRead = m_toolBar->addAction(qApp->icons()->fromTheme("mail-mark-read"), tr("Mark message as read")),
&QAction::triggered,
this,
@@ -99,52 +113,52 @@ void MessagePreviewer::createConnections() {
&QAction::triggered,
this,
&MessagePreviewer::switchMessageImportance);
- connect(m_txtMessage,
- QOverload::of(&QTextBrowser::highlighted),
- [=](const QUrl& url) {
- Q_UNUSED(url)
- QToolTip::showText(QCursor::pos(), tr("Click this link to download it or open it with external browser."), this);
- });
}
MessagePreviewer::MessagePreviewer(QWidget* parent)
- : QWidget(parent), m_layout(new QGridLayout(this)), m_toolBar(new QToolBar(this)),
- m_txtMessage(new MessageTextBrowser(this)), m_searchWidget(new SearchTextWidget(this)) {
-
- m_txtMessage->setAutoFillBackground(true);
- m_txtMessage->setFrameShape(QFrame::StyledPanel);
- m_txtMessage->setFrameShadow(QFrame::Plain);
- m_txtMessage->setTabChangesFocus(true);
- m_txtMessage->setOpenLinks(false);
- m_txtMessage->viewport()->setAutoFillBackground(true);
+ : QWidget(parent), m_layout(new QGridLayout(this)), m_toolBar(new QToolBar(this)) {
+#if defined (USE_WEBENGINE)
+ m_txtMessage = new WebBrowser(this);
+#else
+ m_txtMessage = new MessageTextBrowser(this);
+ m_searchWidget = new SearchTextWidget(this);
+#endif
m_toolBar->setOrientation(Qt::Vertical);
-
m_layout->setContentsMargins(3, 3, 3, 3);
m_layout->addWidget(m_txtMessage, 0, 1, 1, 1);
+
+#if !defined (USE_WEBENGINE)
m_layout->addWidget(m_searchWidget, 1, 1, 1, 1);
+#endif
+
m_layout->addWidget(m_toolBar, 0, 0, -1, 1);
createConnections();
-
m_actionSwitchImportance->setCheckable(true);
- m_searchWidget->hide();
+#if defined (USE_WEBENGINE)
+#else
+ m_searchWidget->hide();
+#endif
reloadFontSettings();
clear();
}
void MessagePreviewer::reloadFontSettings() {
- const Settings* settings = qApp->settings();
- QFont fon;
-
- fon.fromString(settings->value(GROUP(Messages), SETTING(Messages::PreviewerFontStandard)).toString());
- m_txtMessage->setFont(fon);
+ m_txtMessage->reloadFontSettings();
}
+#if defined (USE_WEBENGINE)
+
+WebBrowser* MessagePreviewer::webBrowser() const {
+ return m_txtMessage;
+}
+
+#endif
+
void MessagePreviewer::clear() {
m_txtMessage->clear();
- m_pictures.clear();
hide();
}
@@ -157,12 +171,15 @@ void MessagePreviewer::loadMessage(const Message& message, RootItem* root) {
m_root = root;
if (!m_root.isNull()) {
- m_searchWidget->hide();
- m_actionSwitchImportance->setChecked(m_message.m_isImportant);
- m_txtMessage->setHtml(prepareHtmlForMessage(m_message));
updateButtons();
show();
+ m_actionSwitchImportance->setChecked(m_message.m_isImportant);
+ m_txtMessage->loadMessage(message, root);
+
+#if !defined (USE_WEBENGINE)
+ m_searchWidget->hide();
m_txtMessage->verticalScrollBar()->triggerAction(QScrollBar::SliderToMinimum);
+#endif
}
}
@@ -222,16 +239,19 @@ void MessagePreviewer::switchMessageImportance(bool checked) {
bool MessagePreviewer::eventFilter(QObject* watched, QEvent* event) {
Q_UNUSED(watched)
+#if !defined (USE_WEBENGINE)
if (event->type() == QEvent::Type::KeyPress) {
auto* key_event = static_cast(event);
if (key_event->matches(QKeySequence::StandardKey::Find)) {
+
m_searchWidget->clear();
m_searchWidget->show();
m_searchWidget->setFocus();
return true;
}
}
+#endif
return false;
}
@@ -240,54 +260,3 @@ void MessagePreviewer::updateButtons() {
m_actionMarkRead->setEnabled(!m_message.m_isRead);
m_actionMarkUnread->setEnabled(m_message.m_isRead);
}
-
-QString MessagePreviewer::prepareHtmlForMessage(const Message& message) {
- QString html = QString("%1
").arg(message.m_title);
-
- if (!message.m_url.isEmpty()) {
- html += QString("[url] %1
").arg(message.m_url);
- }
-
- for (const Enclosure& enc : message.m_enclosures) {
- QString enc_url;
-
- if (!enc.m_url.contains(QRegularExpression(QSL("^(http|ftp|\\/)")))) {
- enc_url = QString(INTERNAL_URL_PASSATTACHMENT) + QL1S("/?") + enc.m_url;
- }
- else {
- enc_url = enc.m_url;
- }
-
- html += QString("[%2] %1
").arg(enc_url, enc.m_mimeType);
- }
-
- QRegularExpression imgTagRegex("\\
]*src\\s*=\\s*[\"\']([^\"\']*)[\"\'][^\\>]*\\>",
- QRegularExpression::PatternOption::CaseInsensitiveOption |
- QRegularExpression::PatternOption::InvertedGreedinessOption);
- QRegularExpressionMatchIterator i = imgTagRegex.globalMatch(message.m_contents);
- QString pictures_html;
-
- while (i.hasNext()) {
- QRegularExpressionMatch match = i.next();
-
- m_pictures.append(match.captured(1));
- pictures_html += QString("
[%1] %2").arg(tr("image"), match.captured(1));
- }
-
- if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayImagePlaceholders)).toBool()) {
- html += message.m_contents;
- }
- else {
- QString cnts = message.m_contents;
-
- html += cnts.replace(imgTagRegex, QString());
- }
-
- html += pictures_html;
- html = html
- .replace(QSL("\r\n"), QSL("\n"))
- .replace(QL1C('\r'), QL1C('\n'))
- .replace(QL1C('\n'), QSL("
"));
-
- return html;
-}
diff --git a/src/librssguard/gui/messagepreviewer.h b/src/librssguard/gui/messagepreviewer.h
index cd3a3a989..b6e887c0b 100644
--- a/src/librssguard/gui/messagepreviewer.h
+++ b/src/librssguard/gui/messagepreviewer.h
@@ -13,8 +13,12 @@
class QGridLayout;
class QToolBar;
+#if defined (USE_WEBENGINE)
+class WebBrowser;
+#else
class MessageTextBrowser;
class SearchTextWidget;
+#endif
class MessagePreviewer : public QWidget {
Q_OBJECT
@@ -24,6 +28,10 @@ class MessagePreviewer : public QWidget {
void reloadFontSettings();
+#if defined (USE_WEBENGINE)
+ WebBrowser* webBrowser() const;
+#endif
+
public slots:
void clear();
void hideToolbar();
@@ -45,14 +53,18 @@ class MessagePreviewer : public QWidget {
private:
void createConnections();
void updateButtons();
- QString prepareHtmlForMessage(const Message& message);
QGridLayout* m_layout;
QToolBar* m_toolBar;
+
+#if defined (USE_WEBENGINE)
+ WebBrowser* m_txtMessage;
+#else
MessageTextBrowser* m_txtMessage;
SearchTextWidget* m_searchWidget;
+#endif
+
Message m_message;
- QStringList m_pictures;
QPointer m_root;
QAction* m_actionMarkRead;
QAction* m_actionMarkUnread;
diff --git a/src/librssguard/gui/messagetextbrowser.cpp b/src/librssguard/gui/messagetextbrowser.cpp
index 238ceec13..6c3ef4602 100644
--- a/src/librssguard/gui/messagetextbrowser.cpp
+++ b/src/librssguard/gui/messagetextbrowser.cpp
@@ -5,8 +5,67 @@
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "network-web/networkfactory.h"
+#include "services/abstract/rootitem.h"
-MessageTextBrowser::MessageTextBrowser(QWidget* parent) : QTextBrowser(parent) {}
+MessageTextBrowser::MessageTextBrowser(QWidget* parent) : QTextBrowser(parent) {
+ setAutoFillBackground(true);
+ setFrameShape(QFrame::StyledPanel);
+ setFrameShadow(QFrame::Plain);
+ setTabChangesFocus(true);
+ setOpenLinks(false);
+ viewport()->setAutoFillBackground(true);
+}
+
+QString MessageTextBrowser::prepareHtmlForMessage(const Message& message) {
+ QString html = QString("%1
").arg(message.m_title);
+
+ if (!message.m_url.isEmpty()) {
+ html += QString("[url] %1
").arg(message.m_url);
+ }
+
+ for (const Enclosure& enc : message.m_enclosures) {
+ QString enc_url;
+
+ if (!enc.m_url.contains(QRegularExpression(QSL("^(http|ftp|\\/)")))) {
+ enc_url = QString(INTERNAL_URL_PASSATTACHMENT) + QL1S("/?") + enc.m_url;
+ }
+ else {
+ enc_url = enc.m_url;
+ }
+
+ html += QString("[%2] %1
").arg(enc_url, enc.m_mimeType);
+ }
+
+ QRegularExpression imgTagRegex("\\
]*src\\s*=\\s*[\"\']([^\"\']*)[\"\'][^\\>]*\\>",
+ QRegularExpression::PatternOption::CaseInsensitiveOption |
+ QRegularExpression::PatternOption::InvertedGreedinessOption);
+ QRegularExpressionMatchIterator i = imgTagRegex.globalMatch(message.m_contents);
+ QString pictures_html;
+
+ while (i.hasNext()) {
+ QRegularExpressionMatch match = i.next();
+
+ m_pictures.append(match.captured(1));
+ pictures_html += QString("
[%1] %2").arg(tr("image"), match.captured(1));
+ }
+
+ if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayImagePlaceholders)).toBool()) {
+ html += message.m_contents;
+ }
+ else {
+ QString cnts = message.m_contents;
+
+ html += cnts.replace(imgTagRegex, QString());
+ }
+
+ html += pictures_html;
+ html = html
+ .replace(QSL("\r\n"), QSL("\n"))
+ .replace(QL1C('\r'), QL1C('\n'))
+ .replace(QL1C('\n'), QSL("
"));
+
+ return html;
+}
QVariant MessageTextBrowser::loadResource(int type, const QUrl& name) {
Q_UNUSED(name)
@@ -30,6 +89,25 @@ QVariant MessageTextBrowser::loadResource(int type, const QUrl& name) {
}
}
+void MessageTextBrowser::clear() {
+ QTextBrowser::clear();
+ m_pictures.clear();
+}
+
+void MessageTextBrowser::reloadFontSettings() {
+ const Settings* settings = qApp->settings();
+ QFont fon;
+
+ fon.fromString(settings->value(GROUP(Messages), SETTING(Messages::PreviewerFontStandard)).toString());
+ setFont(fon);
+}
+
+void MessageTextBrowser::loadMessage(const Message& message, RootItem* root) {
+ Q_UNUSED(root)
+
+ setHtml(prepareHtmlForMessage(message));
+}
+
void MessageTextBrowser::wheelEvent(QWheelEvent* e) {
QTextBrowser::wheelEvent(e);
qApp->settings()->setValue(GROUP(Messages), Messages::PreviewerFontStandard, font().toString());
diff --git a/src/librssguard/gui/messagetextbrowser.h b/src/librssguard/gui/messagetextbrowser.h
index 234208705..a0487d09c 100644
--- a/src/librssguard/gui/messagetextbrowser.h
+++ b/src/librssguard/gui/messagetextbrowser.h
@@ -5,6 +5,10 @@
#include
+#include "core/message.h"
+
+class RootItem;
+
class MessageTextBrowser : public QTextBrowser {
Q_OBJECT
@@ -14,11 +18,20 @@ class MessageTextBrowser : public QTextBrowser {
QVariant loadResource(int type, const QUrl& name);
+ public slots:
+ void clear();
+ void reloadFontSettings();
+ void loadMessage(const Message& message, RootItem* root);
+
protected:
void wheelEvent(QWheelEvent* e);
+ private:
+ QString prepareHtmlForMessage(const Message& message);
+
private:
QPixmap m_imagePlaceholder;
+ QStringList m_pictures;
};
#endif // MESSAGETEXTBROWSER_H
diff --git a/src/librssguard/gui/newspaperpreviewer.cpp b/src/librssguard/gui/newspaperpreviewer.cpp
index a7966e36e..2258fd1fd 100644
--- a/src/librssguard/gui/newspaperpreviewer.cpp
+++ b/src/librssguard/gui/newspaperpreviewer.cpp
@@ -15,11 +15,19 @@ NewspaperPreviewer::NewspaperPreviewer(RootItem* root, QList messages,
showMoreMessages();
}
+#if defined(USE_WEBENGINE)
+
+WebBrowser* NewspaperPreviewer::webBrowser() const {
+ return nullptr;
+}
+
+#endif
+
void NewspaperPreviewer::showMoreMessages() {
if (!m_root.isNull()) {
int current_scroll = m_ui->scrollArea->verticalScrollBar()->value();
- for (int i = 0; i < 10 && !m_messages.isEmpty(); i++) {
+ for (int i = 0; i < 5 && !m_messages.isEmpty(); i++) {
Message msg = m_messages.takeFirst();
auto* prev = new MessagePreviewer(this);
QMargins margins = prev->layout()->contentsMargins();
@@ -28,7 +36,8 @@ void NewspaperPreviewer::showMoreMessages() {
connect(prev, &MessagePreviewer::markMessageImportant, this, &NewspaperPreviewer::markMessageImportant);
prev->layout()->setContentsMargins(margins);
- prev->setFixedHeight(300);
+
+ prev->setFixedHeight(200);
prev->loadMessage(msg, m_root);
m_ui->m_layout->insertWidget(m_ui->m_layout->count() - 2, prev);
}
diff --git a/src/librssguard/gui/newspaperpreviewer.h b/src/librssguard/gui/newspaperpreviewer.h
index 6e438dafd..8a1d7117e 100644
--- a/src/librssguard/gui/newspaperpreviewer.h
+++ b/src/librssguard/gui/newspaperpreviewer.h
@@ -20,12 +20,20 @@ namespace Ui {
class RootItem;
+#if defined(USE_WEBENGINE)
+class WebBrowser;
+#endif
+
class NewspaperPreviewer : public TabContent {
Q_OBJECT
public:
explicit NewspaperPreviewer(RootItem* root, QList messages, QWidget* parent = nullptr);
+#if defined(USE_WEBENGINE)
+ WebBrowser* webBrowser() const;
+#endif
+
private slots:
void showMoreMessages();
diff --git a/src/librssguard/gui/searchtextwidget.cpp b/src/librssguard/gui/searchtextwidget.cpp
index cc8acf259..db8143609 100644
--- a/src/librssguard/gui/searchtextwidget.cpp
+++ b/src/librssguard/gui/searchtextwidget.cpp
@@ -10,6 +10,7 @@
SearchTextWidget::SearchTextWidget(QWidget* parent) : QWidget(parent) {
m_ui.setupUi(this);
setFocusProxy(m_ui.m_txtSearch);
+ setFixedHeight(28);
m_ui.m_btnClear->setIcon(qApp->icons()->fromTheme(QSL("edit-clear")));
m_ui.m_btnSearchBackward->setIcon(qApp->icons()->fromTheme(QSL("back")));
diff --git a/src/librssguard/gui/tabwidget.cpp b/src/librssguard/gui/tabwidget.cpp
index 1ba44858b..0debb1c22 100644
--- a/src/librssguard/gui/tabwidget.cpp
+++ b/src/librssguard/gui/tabwidget.cpp
@@ -3,23 +3,21 @@
#include "gui/tabwidget.h"
#include "definitions/definitions.h"
+#include "gui/dialogs/formmain.h"
#include "gui/feedmessageviewer.h"
#include "gui/feedsview.h"
#include "gui/messagesview.h"
+#include "gui/newspaperpreviewer.h"
+#include "gui/plaintoolbutton.h"
#include "gui/tabbar.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/settings.h"
#include "miscellaneous/textfactory.h"
-
-#include "gui/dialogs/formmain.h"
-#include "gui/plaintoolbutton.h"
+#include "network-web/webfactory.h"
#if defined(USE_WEBENGINE)
#include "gui/webbrowser.h"
-#else
-#include "gui/newspaperpreviewer.h"
-#include "network-web/webfactory.h"
#endif
#include
@@ -185,21 +183,12 @@ void TabWidget::closeAllTabs() {
}
int TabWidget::addNewspaperView(RootItem* root, const QList& messages) {
-#if defined(USE_WEBENGINE)
- WebBrowser* prev = new WebBrowser(this);
-
- connect(prev, &WebBrowser::markMessageRead,
- m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageReadById);
- connect(prev, &WebBrowser::markMessageImportant,
- m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageImportantById);
-#else
NewspaperPreviewer* prev = new NewspaperPreviewer(root, messages, this);
connect(prev, &NewspaperPreviewer::markMessageRead,
m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageReadById);
connect(prev, &NewspaperPreviewer::markMessageImportant,
m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageImportantById);
-#endif
int index = addTab(prev,
qApp->icons()->fromTheme(QSL("format-justify-fill")),
@@ -209,10 +198,6 @@ int TabWidget::addNewspaperView(RootItem* root, const QList& messages)
// NOTE: Do not bring "newspaper" tabs to front anymore.
//setCurrentIndex(index);
-#if defined(USE_WEBENGINE)
- prev->loadMessages(messages, root);
-#endif
-
return index;
}
diff --git a/src/librssguard/gui/webbrowser.cpp b/src/librssguard/gui/webbrowser.cpp
index 3e0f34c7b..baa668370 100644
--- a/src/librssguard/gui/webbrowser.cpp
+++ b/src/librssguard/gui/webbrowser.cpp
@@ -57,7 +57,6 @@ void WebBrowser::createConnections() {
m_searchWidget->setFocus();
});
- connect(m_webView, &WebViewer::messageStatusChangeRequested, this, &WebBrowser::receiveMessageStatusChangeRequest);
connect(m_txtLocation, &LocationLineEdit::submitted,
this, static_cast(&WebBrowser::loadUrl));
connect(m_webView, &WebViewer::urlChanged, this, &WebBrowser::updateUrl);
@@ -76,8 +75,6 @@ void WebBrowser::createConnections() {
void WebBrowser::updateUrl(const QUrl& url) {
m_txtLocation->setText(url.toString());
-
- //setNavigationBarVisible(url_string != INTERNAL_URL_EMPTY && url_string != INTERNAL_URL_NEWSPAPER);
}
void WebBrowser::loadUrl(const QUrl& url) {
@@ -154,29 +151,6 @@ bool WebBrowser::eventFilter(QObject* watched, QEvent* event) {
return false;
}
-void WebBrowser::receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change) {
- switch (change) {
- case WebPage::MessageStatusChange::MarkRead:
- markMessageAsRead(message_id, true);
- break;
-
- case WebPage::MessageStatusChange::MarkUnread:
- markMessageAsRead(message_id, false);
- break;
-
- case WebPage::MessageStatusChange::MarkStarred:
- switchMessageImportance(message_id, true);
- break;
-
- case WebPage::MessageStatusChange::MarkUnstarred:
- switchMessageImportance(message_id, false);
- break;
-
- default:
- break;
- }
-}
-
void WebBrowser::onTitleChanged(const QString& new_title) {
if (new_title.isEmpty()) {
//: Webbrowser tab title when no title is available.
@@ -259,56 +233,6 @@ void WebBrowser::onLoadingFinished(bool success) {
m_loadingProgress->setValue(0);
}
-void WebBrowser::markMessageAsRead(int id, bool read) {
- if (!m_root.isNull()) {
- Message* msg = findMessage(id);
-
- if (msg != nullptr && m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
- QList() << *msg,
- read
- ? RootItem::ReadStatus::Read
- : RootItem::ReadStatus::Unread)) {
- DatabaseQueries::markMessagesReadUnread(qApp->database()->connection(objectName()),
- QStringList() << QString::number(msg->m_id),
- read ? RootItem::ReadStatus::Read : RootItem::ReadStatus::Unread);
- m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(),
- QList() << *msg,
- read ? RootItem::ReadStatus::Read : RootItem::ReadStatus::Unread);
- emit markMessageRead(msg->m_id, read ? RootItem::ReadStatus::Read : RootItem::ReadStatus::Unread);
-
- msg->m_isRead = read;
- }
- }
-}
-
-void WebBrowser::switchMessageImportance(int id, bool checked) {
- if (!m_root.isNull()) {
- Message* msg = findMessage(id);
-
- if (msg != nullptr &&
- m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
- QList()
- << ImportanceChange(*msg,
- msg->m_isImportant
- ? RootItem::Importance::NotImportant
- : RootItem::Importance::Important))) {
- DatabaseQueries::switchMessagesImportance(qApp->database()->connection(objectName()),
- QStringList() << QString::number(msg->m_id));
- m_root->getParentServiceRoot()->onAfterSwitchMessageImportance(m_root.data(),
- QList()
- << ImportanceChange(*msg,
- msg->m_isImportant ?
- RootItem::Importance::NotImportant :
- RootItem::Importance::Important));
- emit markMessageImportant(msg->m_id, msg->m_isImportant
- ? RootItem::Importance::NotImportant
- : RootItem::Importance::Important);
-
- msg->m_isImportant = checked;
- }
- }
-}
-
Message* WebBrowser::findMessage(int id) {
for (int i = 0; i < m_messages.size(); i++) {
if (m_messages.at(i).m_id == id) {
diff --git a/src/librssguard/gui/webbrowser.h b/src/librssguard/gui/webbrowser.h
index 5c87478d9..7f8d9d52a 100644
--- a/src/librssguard/gui/webbrowser.h
+++ b/src/librssguard/gui/webbrowser.h
@@ -31,13 +31,8 @@ class WebBrowser : public TabContent {
explicit WebBrowser(QWidget* parent = nullptr);
virtual ~WebBrowser();
- WebBrowser* webBrowser() const {
- return const_cast(this);
- }
-
- WebViewer* viewer() const {
- return m_webView;
- }
+ WebBrowser* webBrowser() const;
+ WebViewer* viewer() const;
void reloadFontSettings();
@@ -51,11 +46,7 @@ class WebBrowser : public TabContent {
void loadUrl(const QUrl& url);
void loadMessages(const QList& messages, RootItem* root);
void loadMessage(const Message& message, RootItem* root);
-
- // Switches visibility of navigation bar.
- inline void setNavigationBarVisible(bool visible) {
- m_toolBar->setVisible(visible);
- }
+ void setNavigationBarVisible(bool visible);
protected:
bool eventFilter(QObject* watched, QEvent* event);
@@ -66,9 +57,6 @@ class WebBrowser : public TabContent {
void onLoadingStarted();
void onLoadingProgress(int progress);
void onLoadingFinished(bool success);
-
- void receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change);
-
void onTitleChanged(const QString& new_title);
void onIconChanged(const QIcon& icon);
@@ -77,15 +65,10 @@ class WebBrowser : public TabContent {
void iconChanged(int index, const QIcon& icon);
void titleChanged(int index, const QString& title);
- void markMessageRead(int id, RootItem::ReadStatus read);
- void markMessageImportant(int id, RootItem::Importance important);
-
private:
void initializeLayout();
Message* findMessage(int id);
- void markMessageAsRead(int id, bool read);
- void switchMessageImportance(int id, bool checked);
void createConnections();
QVBoxLayout* m_layout;
@@ -103,4 +86,16 @@ class WebBrowser : public TabContent {
QPointer m_root;
};
+inline WebBrowser* WebBrowser::webBrowser() const {
+ return const_cast(this);
+}
+
+inline WebViewer* WebBrowser::viewer() const {
+ return m_webView;
+}
+
+inline void WebBrowser::setNavigationBarVisible(bool visible) {
+ m_toolBar->setVisible(visible);
+}
+
#endif // WEBBROWSER_H
diff --git a/src/librssguard/gui/webviewer.cpp b/src/librssguard/gui/webviewer.cpp
index 5779c7ba9..f3eca184a 100644
--- a/src/librssguard/gui/webviewer.cpp
+++ b/src/librssguard/gui/webviewer.cpp
@@ -131,10 +131,7 @@ void WebViewer::loadMessages(const QList& messages, RootItem* root) {
message.m_contents,
QLocale().toString(message.m_created, QLocale::FormatType::ShortFormat),
enclosures,
- message.m_isRead ? "mark-unread" : "mark-read",
- message.m_isImportant ? "mark-unstarred" : "mark-starred",
- QString::number(message.m_id))
- .arg(enclosure_images));
+ enclosure_images));
}
m_root = root;
diff --git a/src/librssguard/librssguard.pro b/src/librssguard/librssguard.pro
index c8b28c22d..9a6c80d04 100644
--- a/src/librssguard/librssguard.pro
+++ b/src/librssguard/librssguard.pro
@@ -174,7 +174,9 @@ HEADERS += core/feeddownloader.h \
services/gmail/gui/formdownloadattachment.h \
services/gmail/gui/formaddeditemail.h \
gui/searchtextwidget.h \
- network-web/oauthhttphandler.h
+ network-web/oauthhttphandler.h \
+ gui/messagepreviewer.h \
+ gui/newspaperpreviewer.h
SOURCES += core/feeddownloader.cpp \
core/feedsmodel.cpp \
@@ -313,7 +315,9 @@ SOURCES += core/feeddownloader.cpp \
services/gmail/gui/formdownloadattachment.cpp \
services/gmail/gui/formaddeditemail.cpp \
gui/searchtextwidget.cpp \
- network-web/oauthhttphandler.cpp
+ network-web/oauthhttphandler.cpp \
+ gui/messagepreviewer.cpp \
+ gui/newspaperpreviewer.cpp
mac {
OBJECTIVE_SOURCES += miscellaneous/disablewindowtabbing.mm
@@ -348,7 +352,8 @@ FORMS += gui/dialogs/formabout.ui \
services/tt-rss/gui/formeditttrssaccount.ui \
services/gmail/gui/formdownloadattachment.ui \
services/gmail/gui/formaddeditemail.ui \
- gui/searchtextwidget.ui
+ gui/searchtextwidget.ui \
+ gui/newspaperpreviewer.ui
equals(USE_WEBENGINE, true) {
HEADERS += gui/locationlineedit.h \
@@ -399,16 +404,8 @@ equals(USE_WEBENGINE, true) {
network-web/adblock/adblockdialog.ui
}
else {
- HEADERS += gui/messagepreviewer.h \
- gui/messagetextbrowser.h \
- gui/newspaperpreviewer.h
-
- SOURCES += gui/messagepreviewer.cpp \
- gui/messagetextbrowser.cpp \
- gui/newspaperpreviewer.cpp
-
- FORMS += \
- gui/newspaperpreviewer.ui
+ HEADERS += gui/messagetextbrowser.h
+ SOURCES += gui/messagetextbrowser.cpp
}
# Add mimesis.