From 7029db61393dfd7cb1e7735e0d61ff7fa4805785 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 15 Apr 2016 10:25:48 +0200 Subject: [PATCH] Display image urls in message view. --- resources/text/CHANGELOG | 6 +++++- src/gui/messagepreviewer.cpp | 23 ++++++++++++----------- src/gui/messagepreviewer.h | 4 +--- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 5ae574161..5a30f811d 100755 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -1,9 +1,13 @@ 3.2.1 (not yet released) ————— +Added: + +▪ Internal message previewer now introduces list of images contained in message contents of displayed message. + Fixed: -▪ Changes in count of all/unread messages are now faster. +▪ Changes in count of all/unread messages are now faster. This results in (much) faster program startup when using BIG database file. Changed: diff --git a/src/gui/messagepreviewer.cpp b/src/gui/messagepreviewer.cpp index a5695cff2..0351d231a 100644 --- a/src/gui/messagepreviewer.cpp +++ b/src/gui/messagepreviewer.cpp @@ -80,11 +80,10 @@ void MessagePreviewer::createConnections() { QToolTip::showText(QCursor::pos(), tr("Click this link to download it or open it with external browser."), this); }); - connect(m_ui->m_txtMessage, &MessageTextBrowser::imageRequested, this, &MessagePreviewer::addMessageImage); } MessagePreviewer::MessagePreviewer(QWidget *parent) : QWidget(parent), - m_ui(new Ui::MessagePreviewer), m_messageImages(QStringList()) { + m_ui(new Ui::MessagePreviewer) { m_ui->setupUi(this); m_ui->m_txtMessage->viewport()->setAutoFillBackground(true); m_toolBar = new QToolBar(this); @@ -114,15 +113,12 @@ void MessagePreviewer::reloadFontSettings() { void MessagePreviewer::clear() { m_ui->m_txtMessage->clear(); - m_messageImages.clear(); - hide(); } void MessagePreviewer::loadMessage(const Message &message, RootItem *root) { m_message = message; m_root = root; - m_messageImages.clear(); if (!m_root.isNull()) { m_actionSwitchImportance->setChecked(m_message.m_isImportant); @@ -135,10 +131,6 @@ void MessagePreviewer::loadMessage(const Message &message, RootItem *root) { } } -void MessagePreviewer::addMessageImage(const QString &image_url) { - m_messageImages.append(image_url); -} - void MessagePreviewer::markMessageAsRead() { if (!m_root.isNull()) { if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(), @@ -207,10 +199,19 @@ void MessagePreviewer::updateButtons() { QString MessagePreviewer::prepareHtmlForMessage(const Message &message) { QString html = QString("

%1

").arg(message.m_title); - html += QString("

[url] %1

").arg(message.m_url); + html += QString("[url] %1
").arg(message.m_url); foreach (const Enclosure &enc, message.m_enclosures) { - html += QString("

[%2] %1

").arg(enc.m_url, enc.m_mimeType); + html += QString("[%2] %1
").arg(enc.m_url, enc.m_mimeType); + } + + int offset = 0; + QRegExp imgTagRegex("\\]*src\\s*=\\s*\"([^\"]*)\"[^\\>]*\\>", Qt::CaseInsensitive); + + imgTagRegex.setMinimal(true); + while( (offset = imgTagRegex.indexIn(message.m_contents, offset)) != -1){ + offset += imgTagRegex.matchedLength(); + html += QString("[%2] %1
").arg(imgTagRegex.cap(1), tr("image")); } html += "
"; diff --git a/src/gui/messagepreviewer.h b/src/gui/messagepreviewer.h index 7277870d6..328ff864c 100644 --- a/src/gui/messagepreviewer.h +++ b/src/gui/messagepreviewer.h @@ -48,7 +48,6 @@ class MessagePreviewer : public QWidget { void loadMessage(const Message &message, RootItem *root); private slots: - void addMessageImage(const QString &image_url); void markMessageAsRead(); void markMessageAsUnread(); void switchMessageImportance(bool checked); @@ -57,7 +56,7 @@ class MessagePreviewer : public QWidget { void requestMessageListReload(bool mark_current_as_read); private: - void createConnections(); + void createConnections(); void updateButtons(); QString prepareHtmlForMessage(const Message &message); @@ -65,7 +64,6 @@ class MessagePreviewer : public QWidget { QScopedPointer m_ui; Message m_message; QPointer m_root; - QStringList m_messageImages; QAction *m_actionMarkRead; QAction *m_actionMarkUnread;