Display image urls in message view.

This commit is contained in:
Martin Rotter 2016-04-15 10:25:48 +02:00
parent 5a59f6f804
commit 7029db6139
3 changed files with 18 additions and 15 deletions

View File

@ -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:

View File

@ -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("<h2 align=\"center\">%1</h2>").arg(message.m_title);
html += QString("<p>[url] <a href=\"%1\">%1</a></p>").arg(message.m_url);
html += QString("[url] <a href=\"%1\">%1</a><br/>").arg(message.m_url);
foreach (const Enclosure &enc, message.m_enclosures) {
html += QString("<p>[%2] <a href=\"%1\">%1</a></p>").arg(enc.m_url, enc.m_mimeType);
html += QString("[%2] <a href=\"%1\">%1</a><br/>").arg(enc.m_url, enc.m_mimeType);
}
int offset = 0;
QRegExp imgTagRegex("\\<img[^\\>]*src\\s*=\\s*\"([^\"]*)\"[^\\>]*\\>", Qt::CaseInsensitive);
imgTagRegex.setMinimal(true);
while( (offset = imgTagRegex.indexIn(message.m_contents, offset)) != -1){
offset += imgTagRegex.matchedLength();
html += QString("[%2] <a href=\"%1\">%1</a><br/>").arg(imgTagRegex.cap(1), tr("image"));
}
html += "<hr/>";

View File

@ -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<Ui::MessagePreviewer> m_ui;
Message m_message;
QPointer<RootItem> m_root;
QStringList m_messageImages;
QAction *m_actionMarkRead;
QAction *m_actionMarkUnread;