Display image urls in message view.
This commit is contained in:
parent
5a59f6f804
commit
7029db6139
@ -1,9 +1,13 @@
|
|||||||
3.2.1 (not yet released)
|
3.2.1 (not yet released)
|
||||||
—————
|
—————
|
||||||
|
|
||||||
|
Added:
|
||||||
|
|
||||||
|
▪ Internal message previewer now introduces list of images contained in message contents of displayed message.
|
||||||
|
|
||||||
Fixed:
|
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:
|
Changed:
|
||||||
|
|
||||||
|
@ -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);
|
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),
|
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->setupUi(this);
|
||||||
m_ui->m_txtMessage->viewport()->setAutoFillBackground(true);
|
m_ui->m_txtMessage->viewport()->setAutoFillBackground(true);
|
||||||
m_toolBar = new QToolBar(this);
|
m_toolBar = new QToolBar(this);
|
||||||
@ -114,15 +113,12 @@ void MessagePreviewer::reloadFontSettings() {
|
|||||||
|
|
||||||
void MessagePreviewer::clear() {
|
void MessagePreviewer::clear() {
|
||||||
m_ui->m_txtMessage->clear();
|
m_ui->m_txtMessage->clear();
|
||||||
m_messageImages.clear();
|
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagePreviewer::loadMessage(const Message &message, RootItem *root) {
|
void MessagePreviewer::loadMessage(const Message &message, RootItem *root) {
|
||||||
m_message = message;
|
m_message = message;
|
||||||
m_root = root;
|
m_root = root;
|
||||||
m_messageImages.clear();
|
|
||||||
|
|
||||||
if (!m_root.isNull()) {
|
if (!m_root.isNull()) {
|
||||||
m_actionSwitchImportance->setChecked(m_message.m_isImportant);
|
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() {
|
void MessagePreviewer::markMessageAsRead() {
|
||||||
if (!m_root.isNull()) {
|
if (!m_root.isNull()) {
|
||||||
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
|
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
|
||||||
@ -207,10 +199,19 @@ void MessagePreviewer::updateButtons() {
|
|||||||
QString MessagePreviewer::prepareHtmlForMessage(const Message &message) {
|
QString MessagePreviewer::prepareHtmlForMessage(const Message &message) {
|
||||||
QString html = QString("<h2 align=\"center\">%1</h2>").arg(message.m_title);
|
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) {
|
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/>";
|
html += "<hr/>";
|
||||||
|
@ -48,7 +48,6 @@ class MessagePreviewer : public QWidget {
|
|||||||
void loadMessage(const Message &message, RootItem *root);
|
void loadMessage(const Message &message, RootItem *root);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void addMessageImage(const QString &image_url);
|
|
||||||
void markMessageAsRead();
|
void markMessageAsRead();
|
||||||
void markMessageAsUnread();
|
void markMessageAsUnread();
|
||||||
void switchMessageImportance(bool checked);
|
void switchMessageImportance(bool checked);
|
||||||
@ -57,7 +56,7 @@ class MessagePreviewer : public QWidget {
|
|||||||
void requestMessageListReload(bool mark_current_as_read);
|
void requestMessageListReload(bool mark_current_as_read);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createConnections();
|
void createConnections();
|
||||||
void updateButtons();
|
void updateButtons();
|
||||||
QString prepareHtmlForMessage(const Message &message);
|
QString prepareHtmlForMessage(const Message &message);
|
||||||
|
|
||||||
@ -65,7 +64,6 @@ class MessagePreviewer : public QWidget {
|
|||||||
QScopedPointer<Ui::MessagePreviewer> m_ui;
|
QScopedPointer<Ui::MessagePreviewer> m_ui;
|
||||||
Message m_message;
|
Message m_message;
|
||||||
QPointer<RootItem> m_root;
|
QPointer<RootItem> m_root;
|
||||||
QStringList m_messageImages;
|
|
||||||
|
|
||||||
QAction *m_actionMarkRead;
|
QAction *m_actionMarkRead;
|
||||||
QAction *m_actionMarkUnread;
|
QAction *m_actionMarkUnread;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user