Skip to content

Commit

Permalink
fixed #187
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Rotter committed Jun 4, 2019
1 parent 8f7a8f3 commit 565b07a
Show file tree
Hide file tree
Showing 16 changed files with 203 additions and 100 deletions.
2 changes: 1 addition & 1 deletion resources/desktop/com.github.rssguard.appdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<url type="donation">https://martinrotter.github.io/donate/</url>
<content_rating type="oars-1.1" />
<releases>
<release version="3.5.8" date="2019-06-03"/>
<release version="3.5.9" date="2019-06-04"/>
</releases>
<content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute>
Expand Down
9 changes: 9 additions & 0 deletions resources/text/CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
3.5.9
—————

Added:
▪ Font in message and feed lists is now changeable, including its size. (#187)

Fixed:
▪ Broken backward compatibility to Qt 5.7.

3.5.8
—————

Expand Down
9 changes: 5 additions & 4 deletions src/core/feedsmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ FeedsModel::FeedsModel(QObject* parent) : QAbstractItemModel(parent), m_itemHeig
<< /*: Feed list header "counts" column tooltip.*/ tr("Counts of unread/all mesages.");

setupFonts();
updateItemHeight();
}

FeedsModel::~FeedsModel() {
Expand Down Expand Up @@ -466,12 +465,14 @@ void FeedsModel::onItemDataChanged(const QList<RootItem*>& items) {
}

void FeedsModel::setupFonts() {
m_normalFont = Application::font("FeedsView");
QFont fon;

fon.fromString(qApp->settings()->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString()).toString());

m_normalFont = fon;
m_boldFont = m_normalFont;
m_boldFont.setBold(true);
}

void FeedsModel::updateItemHeight() {
m_itemHeight = qApp->settings()->value(GROUP(GUI), SETTING(GUI::HeightRowFeeds)).toInt();

if (m_itemHeight > 0) {
Expand Down
8 changes: 3 additions & 5 deletions src/core/feedsmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class FeedsModel : public QAbstractItemModel {
Q_OBJECT

public:
explicit FeedsModel(QObject* parent = 0);
explicit FeedsModel(QObject* parent = nullptr);
virtual ~FeedsModel();

// Model implementation.
Expand Down Expand Up @@ -86,6 +86,8 @@ class FeedsModel : public QAbstractItemModel {
// Access to root item.
RootItem* rootItem() const;

void setupFonts();

public slots:
void loadActivatedServiceAccounts();

Expand Down Expand Up @@ -151,10 +153,6 @@ class FeedsModel : public QAbstractItemModel {
// NOTE: View will probably expand dropped index.
void requireItemValidationAfterDragDrop(const QModelIndex& source_index);

private:
void updateItemHeight();
void setupFonts();

private:
RootItem* m_rootItem;
int m_itemHeight;
Expand Down
27 changes: 14 additions & 13 deletions src/core/messagesmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ MessagesModel::MessagesModel(QObject* parent)
setupIcons();
setupHeaderData();
updateDateFormat();
updateItemHeight();
loadMessages(nullptr);
}

Expand All @@ -37,17 +36,6 @@ void MessagesModel::setupIcons() {
m_enclosuresIcon = qApp->icons()->fromTheme(QSL("mail-attachment"));
}

void MessagesModel::updateItemHeight() {
m_itemHeight = qApp->settings()->value(GROUP(GUI), SETTING(GUI::HeightRowMessages)).toInt();

if (m_itemHeight > 0) {
m_boldFont.setPixelSize(int(m_itemHeight * 0.6));
m_normalFont.setPixelSize(int(m_itemHeight * 0.6));
m_boldStrikedFont.setPixelSize(int(m_itemHeight * 0.6));
m_normalStrikedFont.setPixelSize(int(m_itemHeight * 0.6));
}
}

void MessagesModel::repopulate() {
m_cache->clear();
setQuery(selectStatement(), m_db);
Expand All @@ -68,13 +56,26 @@ bool MessagesModel::setData(const QModelIndex& index, const QVariant& value, int
}

void MessagesModel::setupFonts() {
m_normalFont = Application::font("MessagesView");
QFont fon;

fon.fromString(qApp->settings()->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString()).toString());

m_normalFont = fon;
m_boldFont = m_normalFont;
m_boldFont.setBold(true);
m_normalStrikedFont = m_normalFont;
m_boldStrikedFont = m_boldFont;
m_normalStrikedFont.setStrikeOut(true);
m_boldStrikedFont.setStrikeOut(true);

m_itemHeight = qApp->settings()->value(GROUP(GUI), SETTING(GUI::HeightRowMessages)).toInt();

if (m_itemHeight > 0) {
m_boldFont.setPixelSize(int(m_itemHeight * 0.6));
m_normalFont.setPixelSize(int(m_itemHeight * 0.6));
m_boldStrikedFont.setPixelSize(int(m_itemHeight * 0.6));
m_normalStrikedFont.setPixelSize(int(m_itemHeight * 0.6));
}
}

void MessagesModel::loadMessages(RootItem* item) {
Expand Down
5 changes: 2 additions & 3 deletions src/core/messagesmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class MessagesModel : public QSqlQueryModel, public MessagesModelSqlLayer {
};

// Constructors and destructors.
explicit MessagesModel(QObject* parent = 0);
explicit MessagesModel(QObject* parent = nullptr);
virtual ~MessagesModel();

// Fetches ALL available data to the model.
Expand All @@ -50,6 +50,7 @@ class MessagesModel : public QSqlQueryModel, public MessagesModelSqlLayer {

RootItem* loadedItem() const;

void setupFonts();
void updateDateFormat();
void reloadWholeLayout();

Expand Down Expand Up @@ -77,9 +78,7 @@ class MessagesModel : public QSqlQueryModel, public MessagesModelSqlLayer {
bool setMessageReadById(int id, RootItem::ReadStatus read);

private:
void updateItemHeight();
void setupHeaderData();
void setupFonts();
void setupIcons();

MessagesModelCache* m_cache;
Expand Down
5 changes: 4 additions & 1 deletion src/gui/feedmessageviewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ FeedMessageViewer::FeedMessageViewer(QWidget* parent) : TabContent(parent), m_to

initialize();
initializeViews();
loadMessageViewerFonts();

//loadMessageViewerFonts();
createConnections();
}

Expand Down Expand Up @@ -122,6 +123,8 @@ void FeedMessageViewer::loadSize() {

void FeedMessageViewer::loadMessageViewerFonts() {
m_messagesBrowser->reloadFontSettings();
m_messagesView->reloadFontSettings();
m_feedsView->reloadFontSettings();
}

bool FeedMessageViewer::areToolBarsEnabled() const {
Expand Down
4 changes: 4 additions & 0 deletions src/gui/feedsview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ FeedsView::~FeedsView() {
qDebug("Destroying FeedsView instance.");
}

void FeedsView::reloadFontSettings() {
m_sourceModel->setupFonts();
}

void FeedsView::setSortingEnabled(bool enable) {
disconnect(header(), &QHeaderView::sortIndicatorChanged, this, &FeedsView::saveSortState);
QTreeView::setSortingEnabled(enable);
Expand Down
4 changes: 3 additions & 1 deletion src/gui/feedsview.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class FeedsView : public QTreeView {
public:

// Constructors and destructors.
explicit FeedsView(QWidget* parent = 0);
explicit FeedsView(QWidget* parent = nullptr);
virtual ~FeedsView();

// Fundamental accessors.
Expand All @@ -31,6 +31,8 @@ class FeedsView : public QTreeView {
return m_sourceModel;
}

void reloadFontSettings();

void setSortingEnabled(bool enable);

// Returns list of selected/all feeds.
Expand Down
6 changes: 6 additions & 0 deletions src/gui/messagesview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,18 @@ MessagesView::MessagesView(QWidget* parent) : QTreeView(parent), m_contextMenu(n
TreeViewColumnsMenu mm(header());
mm.exec(header()->mapToGlobal(point));
});

reloadFontSettings();
}

MessagesView::~MessagesView() {
qDebug("Destroying MessagesView instance.");
}

void MessagesView::reloadFontSettings() {
m_sourceModel->setupFonts();
}

void MessagesView::sort(int column, Qt::SortOrder order, bool repopulate_data, bool change_header, bool emit_changed_from_header) {
if (change_header && !emit_changed_from_header) {
header()->blockSignals(true);
Expand Down
4 changes: 3 additions & 1 deletion src/gui/messagesview.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class MessagesView : public QTreeView {
Q_OBJECT

public:
explicit MessagesView(QWidget* parent = 0);
explicit MessagesView(QWidget* parent = nullptr);
virtual ~MessagesView();

// Model accessors.
Expand All @@ -28,6 +28,8 @@ class MessagesView : public QTreeView {
return m_sourceModel;
}

void reloadFontSettings();

public slots:
void keyboardSearch(const QString& search);

Expand Down
45 changes: 38 additions & 7 deletions src/gui/settings/settingsfeedsmessages.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,18 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent
connect(m_ui->m_cmbCountsFeedList, &QComboBox::currentTextChanged, this, &SettingsFeedsMessages::dirtifySettings);
connect(m_ui->m_cmbCountsFeedList, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
&SettingsFeedsMessages::dirtifySettings);
connect(m_ui->m_btnChangeMessagesFont, &QPushButton::clicked, this, &SettingsFeedsMessages::changeMessagesFont);

connect(m_ui->m_btnChangeMessagesFont, &QPushButton::clicked, this, [&]() {
changeFont(*m_ui->m_lblMessagesFont);
});

connect(m_ui->m_btnChangeFeedListFont, &QPushButton::clicked, this, [&]() {
changeFont(*m_ui->m_lblFeedListFont);
});

connect(m_ui->m_btnChangeMessageListFont, &QPushButton::clicked, this, [&]() {
changeFont(*m_ui->m_lblMessageListFont);
});

if (!m_ui->m_spinFeedUpdateTimeout->suffix().startsWith(' ')) {
m_ui->m_spinFeedUpdateTimeout->setSuffix(QSL(" ") + m_ui->m_spinFeedUpdateTimeout->suffix());
Expand Down Expand Up @@ -88,14 +99,14 @@ void SettingsFeedsMessages::initializeMessageDateFormats() {
}
}

void SettingsFeedsMessages::changeMessagesFont() {
void SettingsFeedsMessages::changeFont(QLabel& lbl) {
bool ok;
QFont new_font = QFontDialog::getFont(&ok, m_ui->m_lblMessagesFont->font(),
this, tr("Select new font for message viewer"),
QFont new_font = QFontDialog::getFont(&ok, lbl.font(),
this, tr("Select new font"),
QFontDialog::DontUseNativeDialog);

if (ok) {
m_ui->m_lblMessagesFont->setFont(new_font);
lbl.setFont(new_font);
dirtifySettings();
}
}
Expand Down Expand Up @@ -129,12 +140,28 @@ void SettingsFeedsMessages::loadSettings() {
m_ui->m_cmbMessagesDateTimeFormat->setCurrentIndex(index_format);
}

m_ui->m_lblMessagesFont->setText(tr("Font preview"));
QFont fon;

fon.fromString(settings()->value(GROUP(Messages),
SETTING(Messages::PreviewerFontStandard)).toString());
m_ui->m_lblMessagesFont->setFont(fon);

QFont fon2;

// Keep in sync with void MessagesModel::setupFonts().
fon2.fromString(settings()->value(GROUP(Messages),
Messages::ListFont,
Application::font("MessagesView").toString()).toString());
m_ui->m_lblMessageListFont->setFont(fon2);

QFont fon3;

// Keep in sync with void FeedsModel::setupFonts().
fon3.fromString(settings()->value(GROUP(Feeds),
Feeds::ListFont,
Application::font("FeedsView").toString()).toString());
m_ui->m_lblFeedListFont->setFont(fon3);

onEndLoadSettings();
}

Expand Down Expand Up @@ -164,12 +191,16 @@ void SettingsFeedsMessages::saveSettings() {

// Save fonts.
settings()->setValue(GROUP(Messages), Messages::PreviewerFontStandard, m_ui->m_lblMessagesFont->font().toString());
settings()->setValue(GROUP(Messages), Messages::ListFont, m_ui->m_lblMessageListFont->font().toString());
settings()->setValue(GROUP(Feeds), Feeds::ListFont, m_ui->m_lblFeedListFont->font().toString());

qApp->mainForm()->tabWidget()->feedMessageViewer()->loadMessageViewerFonts();
qApp->feedReader()->updateAutoUpdateStatus();

qApp->feedReader()->updateAutoUpdateStatus();
qApp->feedReader()->feedsModel()->reloadWholeLayout();

qApp->feedReader()->messagesModel()->updateDateFormat();
qApp->feedReader()->messagesModel()->reloadWholeLayout();

onEndSaveSettings();
}
4 changes: 2 additions & 2 deletions src/gui/settings/settingsfeedsmessages.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class SettingsFeedsMessages : public SettingsPanel {

void saveSettings();

private slots:
void changeMessagesFont();
private:
void changeFont(QLabel& lbl);

private:
void initializeMessageDateFormats();
Expand Down
Loading

0 comments on commit 565b07a

Please sign in to comment.