Changing of size via wheel is now persistent for message viewer.
This commit is contained in:
parent
9cb7ab3908
commit
5a59f6f804
4 changed files with 31 additions and 11 deletions
|
@ -29,11 +29,7 @@
|
||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
|
|
||||||
|
|
||||||
MessagePreviewer::MessagePreviewer(QWidget *parent) : QWidget(parent),
|
void MessagePreviewer::createConnections() {
|
||||||
m_ui(new Ui::MessagePreviewer) {
|
|
||||||
m_ui->setupUi(this);
|
|
||||||
m_ui->m_txtMessage->viewport()->setAutoFillBackground(true);
|
|
||||||
|
|
||||||
connect(m_ui->m_txtMessage, &QTextBrowser::anchorClicked, [=](const QUrl &url) {
|
connect(m_ui->m_txtMessage, &QTextBrowser::anchorClicked, [=](const QUrl &url) {
|
||||||
if (!url.isEmpty()) {
|
if (!url.isEmpty()) {
|
||||||
// User clicked some URL. Open it in external browser or download?
|
// User clicked some URL. Open it in external browser or download?
|
||||||
|
@ -65,11 +61,6 @@ MessagePreviewer::MessagePreviewer(QWidget *parent) : QWidget(parent),
|
||||||
tr("Selected hyperlink is invalid."));
|
tr("Selected hyperlink is invalid."));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
m_toolBar = new QToolBar(this);
|
|
||||||
m_toolBar->setOrientation(Qt::Vertical);
|
|
||||||
m_ui->m_layout->addWidget(m_toolBar, 0, 0, -1, 1);
|
|
||||||
|
|
||||||
connect(m_actionMarkRead = m_toolBar->addAction(qApp->icons()->fromTheme("mail-mark-read"), tr("Mark message as read")),
|
connect(m_actionMarkRead = m_toolBar->addAction(qApp->icons()->fromTheme("mail-mark-read"), tr("Mark message as read")),
|
||||||
&QAction::triggered,
|
&QAction::triggered,
|
||||||
this,
|
this,
|
||||||
|
@ -89,6 +80,18 @@ MessagePreviewer::MessagePreviewer(QWidget *parent) : QWidget(parent),
|
||||||
|
|
||||||
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),
|
||||||
|
m_ui(new Ui::MessagePreviewer), m_messageImages(QStringList()) {
|
||||||
|
m_ui->setupUi(this);
|
||||||
|
m_ui->m_txtMessage->viewport()->setAutoFillBackground(true);
|
||||||
|
m_toolBar = new QToolBar(this);
|
||||||
|
m_toolBar->setOrientation(Qt::Vertical);
|
||||||
|
m_ui->m_layout->addWidget(m_toolBar, 0, 0, -1, 1);
|
||||||
|
|
||||||
|
createConnections();
|
||||||
|
|
||||||
m_actionSwitchImportance->setCheckable(true);
|
m_actionSwitchImportance->setCheckable(true);
|
||||||
|
|
||||||
|
@ -111,6 +114,7 @@ void MessagePreviewer::reloadFontSettings() {
|
||||||
|
|
||||||
void MessagePreviewer::clear() {
|
void MessagePreviewer::clear() {
|
||||||
m_ui->m_txtMessage->clear();
|
m_ui->m_txtMessage->clear();
|
||||||
|
m_messageImages.clear();
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
@ -118,18 +122,23 @@ void MessagePreviewer::clear() {
|
||||||
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()) {
|
||||||
updateButtons();
|
|
||||||
m_actionSwitchImportance->setChecked(m_message.m_isImportant);
|
m_actionSwitchImportance->setChecked(m_message.m_isImportant);
|
||||||
m_ui->m_txtMessage->setHtml(prepareHtmlForMessage(m_message));
|
m_ui->m_txtMessage->setHtml(prepareHtmlForMessage(m_message));
|
||||||
|
|
||||||
|
updateButtons();
|
||||||
show();
|
show();
|
||||||
|
|
||||||
m_ui->m_txtMessage->verticalScrollBar()->triggerAction(QScrollBar::SliderToMinimum);
|
m_ui->m_txtMessage->verticalScrollBar()->triggerAction(QScrollBar::SliderToMinimum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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(),
|
||||||
|
|
|
@ -48,6 +48,7 @@ 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);
|
||||||
|
@ -56,6 +57,7 @@ class MessagePreviewer : public QWidget {
|
||||||
void requestMessageListReload(bool mark_current_as_read);
|
void requestMessageListReload(bool mark_current_as_read);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void createConnections();
|
||||||
void updateButtons();
|
void updateButtons();
|
||||||
QString prepareHtmlForMessage(const Message &message);
|
QString prepareHtmlForMessage(const Message &message);
|
||||||
|
|
||||||
|
@ -63,6 +65,7 @@ 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;
|
||||||
|
|
|
@ -28,3 +28,8 @@ QVariant MessageTextBrowser::loadResource(int type, const QUrl &name) {
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessageTextBrowser::wheelEvent(QWheelEvent *e) {
|
||||||
|
QTextBrowser::wheelEvent(e);
|
||||||
|
qApp->settings()->setValue(GROUP(Messages), Messages::PreviewerFontStandard, font().toString());
|
||||||
|
}
|
||||||
|
|
|
@ -17,6 +17,9 @@ class MessageTextBrowser : public QTextBrowser {
|
||||||
signals:
|
signals:
|
||||||
void imageRequested(const QString &image_url);
|
void imageRequested(const QString &image_url);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void wheelEvent(QWheelEvent *e);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPixmap m_imagePlaceholder;
|
QPixmap m_imagePlaceholder;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue