From 9e7f6ed5dc545d495feb05161093b9b1e9d5fc2c Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sun, 3 Apr 2016 08:49:14 +0200 Subject: [PATCH] Fixed #177. --- resources/text/CHANGELOG | 1 + src/gui/dialogs/formsettings.cpp | 23 +++++++++++++-- src/gui/dialogs/formsettings.h | 1 + src/gui/dialogs/formsettings.ui | 50 +++++++++++++++++--------------- src/gui/feedmessageviewer.cpp | 8 ++--- src/gui/messagepreviewer.cpp | 11 +++++++ src/gui/messagepreviewer.h | 2 ++ src/miscellaneous/settings.cpp | 2 +- 8 files changed, 67 insertions(+), 31 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 49f0b2b30..46b12bea8 100755 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -8,6 +8,7 @@ Main: Added: +▪ Message preview's font is now fully adjustable in settings. (issue #177) ▪ RSS Guard now automatically switches to SQLite backend if MySQL is not available on program startup. ▪ Newspaper view now allows marking individual messages read/unread/starred/unstarred. ▪ Added experimental support for tweakable statusbar. (issue #158) diff --git a/src/gui/dialogs/formsettings.cpp b/src/gui/dialogs/formsettings.cpp index df40fbcf1..a84469654 100755 --- a/src/gui/dialogs/formsettings.cpp +++ b/src/gui/dialogs/formsettings.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #include @@ -118,6 +119,7 @@ FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_ui(new Ui::Form connect(m_ui->m_cmbDatabaseDriver, SIGNAL(currentIndexChanged(int)), this, SLOT(selectSqlBackend(int))); connect(m_ui->m_btnDownloadsTargetDirectory, SIGNAL(clicked()), this, SLOT(selectDownloadsDirectory())); connect(m_ui->m_checkMysqlShowPassword, SIGNAL(toggled(bool)), this, SLOT(switchMysqlPasswordVisiblity(bool))); + connect(m_ui->m_btnChangeMessagesFont, SIGNAL(clicked()), this, SLOT(changeMessagesFont())); connect(m_ui->m_checkEnableNotifications, &QCheckBox::toggled, [=](bool checked) { if (!checked) { @@ -242,8 +244,12 @@ void FormSettings::loadFeedsMessages() { m_ui->m_cmbMessagesDateTimeFormat->setCurrentIndex(index_format); } - m_ui->m_cmbMessageFontStandard->setCurrentIndex(m_ui->m_cmbMessageFontStandard->findText(m_settings->value(GROUP(Messages), - SETTING(Messages::PreviewerFontStandard)).toString())); + m_ui->m_lblMessagesFont->setText(tr("Font preview")); + QFont fon; + fon.fromString(m_settings->value(GROUP(Messages), + SETTING(Messages::PreviewerFontStandard)).toString()); + m_ui->m_lblMessagesFont->setFont(fon); + } void FormSettings::initializeMessageDateFormats() { @@ -258,6 +264,17 @@ void FormSettings::initializeMessageDateFormats() { } } +void FormSettings::changeMessagesFont() { + bool ok; + QFont new_font = QFontDialog::getFont(&ok, m_ui->m_lblMessagesFont->font(), + this, tr("Select new font for message viewer"), + QFontDialog::DontUseNativeDialog); + + if (ok) { + m_ui->m_lblMessagesFont->setFont(new_font); + } +} + void FormSettings::saveFeedsMessages() { m_settings->setValue(GROUP(Messages), Messages::KeepCursorInCenter, m_ui->m_checkKeppMessagesInTheMiddle->isChecked()); m_settings->setValue(GROUP(Messages), Messages::ClearReadOnExit, m_ui->m_checkRemoveReadMessagesOnExit->isChecked()); @@ -271,7 +288,7 @@ void FormSettings::saveFeedsMessages() { m_ui->m_cmbMessagesDateTimeFormat->itemData(m_ui->m_cmbMessagesDateTimeFormat->currentIndex()).toString()); // Save fonts. - m_settings->setValue(GROUP(Messages), Messages::PreviewerFontStandard, m_ui->m_cmbMessageFontStandard->currentFont().family()); + m_settings->setValue(GROUP(Messages), Messages::PreviewerFontStandard, m_ui->m_lblMessagesFont->font().toString()); qApp->mainForm()->tabWidget()->feedMessageViewer()->loadMessageViewerFonts(); qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->updateAutoUpdateStatus(); diff --git a/src/gui/dialogs/formsettings.h b/src/gui/dialogs/formsettings.h index 9eb10f7f6..c3933b270 100755 --- a/src/gui/dialogs/formsettings.h +++ b/src/gui/dialogs/formsettings.h @@ -102,6 +102,7 @@ class FormSettings : public QDialog { void loadFeedsMessages(); void initializeMessageDateFormats(); + void changeMessagesFont(); void saveFeedsMessages(); private: diff --git a/src/gui/dialogs/formsettings.ui b/src/gui/dialogs/formsettings.ui index 07eb791f9..3dbcae00b 100755 --- a/src/gui/dialogs/formsettings.ui +++ b/src/gui/dialogs/formsettings.ui @@ -88,7 +88,7 @@ - 5 + 6 @@ -424,8 +424,8 @@ Authors of this application are NOT responsible for lost data. 0 0 - 782 - 451 + 100 + 30 @@ -502,8 +502,8 @@ Authors of this application are NOT responsible for lost data. 0 0 - 776 - 425 + 167 + 219 @@ -1251,7 +1251,7 @@ Authors of this application are NOT responsible for lost data. - 0 + 1 @@ -1400,30 +1400,34 @@ Authors of this application are NOT responsible for lost data. Internal message browser fonts - - - + + + - Standard font + - - - - - 0 - 0 - - - - false - - - QComboBox::AdjustToContents + + + + &Change font + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index f16dc9ea9..85d13ab3e 100755 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -116,12 +116,12 @@ void FeedMessageViewer::loadSize() { default_msg_section_size).toInt()); } -void FeedMessageViewer::loadMessageViewerFonts() { - const Settings *settings = qApp->settings(); +void FeedMessageViewer::loadMessageViewerFonts() { + m_messagesBrowser->reloadFontSettings(); // TODO: TODO //QWebEngineSettings *view_settings = m_messagesBrowser->view()->settings(); - + //view_settings->setFontFamily(QWebEngineSettings::StandardFont, settings->value(GROUP(Messages), // SETTING(Messages::PreviewerFontStandard)).toString()); } @@ -350,7 +350,7 @@ void FeedMessageViewer::initialize() { m_toolBarMessages->setMovable(false); m_toolBarMessages->setAllowedAreas(Qt::TopToolBarArea); m_toolBarMessages->loadChangeableActions(); - + // Now refresh visual setup. refreshVisualProperties(); } diff --git a/src/gui/messagepreviewer.cpp b/src/gui/messagepreviewer.cpp index b740809ba..df647a43a 100644 --- a/src/gui/messagepreviewer.cpp +++ b/src/gui/messagepreviewer.cpp @@ -71,12 +71,23 @@ MessagePreviewer::MessagePreviewer(QWidget *parent) : QWidget(parent), m_actionSwitchImportance->setCheckable(true); + reloadFontSettings(); clear(); } MessagePreviewer::~MessagePreviewer() { } +void MessagePreviewer::reloadFontSettings() { + const Settings *settings = qApp->settings(); + QFont fon; + + fon.fromString(settings->value(GROUP(Messages), + SETTING(Messages::PreviewerFontStandard)).toString()); + + m_ui->m_txtMessage->setFont(fon); +} + void MessagePreviewer::clear() { m_ui->m_lblTitle->clear(); m_ui->m_txtMessage->clear(); diff --git a/src/gui/messagepreviewer.h b/src/gui/messagepreviewer.h index 24e10885d..f23cc5ff4 100644 --- a/src/gui/messagepreviewer.h +++ b/src/gui/messagepreviewer.h @@ -41,6 +41,8 @@ class MessagePreviewer : public QWidget { explicit MessagePreviewer(QWidget *parent = 0); virtual ~MessagePreviewer(); + void reloadFontSettings(); + public slots: void clear(); void loadMessage(const Message &message, RootItem *root); diff --git a/src/miscellaneous/settings.cpp b/src/miscellaneous/settings.cpp index b8c8a16cd..3343b19b5 100755 --- a/src/miscellaneous/settings.cpp +++ b/src/miscellaneous/settings.cpp @@ -62,7 +62,7 @@ DKEY Messages::KeepCursorInCenter = "keep_cursor_center"; DVALUE(bool) Messages::KeepCursorInCenterDef = false; DKEY Messages::PreviewerFontStandard = "previewer_font_standard"; -NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QString(); +NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QFont().toString(); // GUI. DKEY GUI::ID = "gui";