From fd1355e3c093d1cc68ae834ddc735c3041e5784e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 7 Jan 2022 10:13:56 +0100 Subject: [PATCH] changeable toolbar icon size --- src/librssguard/gui/feedmessageviewer.cpp | 14 +++++++- src/librssguard/gui/settings/settingsgui.cpp | 13 ++++++++ src/librssguard/gui/settings/settingsgui.ui | 35 +++++++++++++++++--- src/librssguard/miscellaneous/settings.cpp | 3 ++ src/librssguard/miscellaneous/settings.h | 3 ++ 5 files changed, 62 insertions(+), 6 deletions(-) diff --git a/src/librssguard/gui/feedmessageviewer.cpp b/src/librssguard/gui/feedmessageviewer.cpp index 4f4ea9f32..43add0ad0 100644 --- a/src/librssguard/gui/feedmessageviewer.cpp +++ b/src/librssguard/gui/feedmessageviewer.cpp @@ -347,8 +347,20 @@ void FeedMessageViewer::initializeViews() { void FeedMessageViewer::refreshVisualProperties() { const Qt::ToolButtonStyle button_style = - static_cast(qApp->settings()->value(GROUP(GUI), SETTING(GUI::ToolbarStyle)).toInt()); + static_cast(qApp->settings()->value(GROUP(GUI), + SETTING(GUI::ToolbarStyle)).toInt()); m_toolBarFeeds->setToolButtonStyle(button_style); m_toolBarMessages->setToolButtonStyle(button_style); + + const int icon_size = qApp->settings()->value(GROUP(GUI), SETTING(GUI::ToolbarIconSize)).toInt(); + + if (icon_size > 0) { + m_toolBarFeeds->setIconSize({ icon_size, icon_size }); + m_toolBarMessages->setIconSize({ icon_size, icon_size }); + } + else { + m_toolBarFeeds->setIconSize({ qApp->style()->pixelMetric(QStyle::PM_ToolBarIconSize), + qApp->style()->pixelMetric(QStyle::PM_ToolBarIconSize) }); + } } diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 3fa6fe63f..049d43a2f 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -72,6 +72,16 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se connect(m_ui->m_cmbSelectToolBar, static_cast(&QComboBox::currentIndexChanged), m_ui->m_stackedToolbars, &QStackedWidget::setCurrentIndex); connect(m_ui->m_gbCustomSkinColors, &QGroupBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_spinToolbarIconSize, QOverload::of(&QSpinBox::valueChanged), this, &SettingsGui::dirtifySettings); + + connect(m_ui->m_spinToolbarIconSize, QOverload::of(&QSpinBox::valueChanged), this, [=](int value) { + if (value <= 0) { + m_ui->m_spinToolbarIconSize->setSuffix(QSL(" px ") + tr("= default icon size")); + } + else { + m_ui->m_spinToolbarIconSize->setSuffix(QSL(" px")); + } + }); } SettingsGui::~SettingsGui() { @@ -193,6 +203,7 @@ void SettingsGui::loadSettings() { m_ui->m_checkHideTabBarIfOneTabVisible->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::HideTabBarIfOnlyOneTab)).toBool()); // Load toolbar button style. + m_ui->m_spinToolbarIconSize->setValue(settings()->value(GROUP(GUI), SETTING(GUI::ToolbarIconSize)).toInt()); m_ui->m_cmbToolbarButtonStyle->addItem(tr("Icon only"), Qt::ToolButtonStyle::ToolButtonIconOnly); m_ui->m_cmbToolbarButtonStyle->addItem(tr("Text only"), Qt::ToolButtonStyle::ToolButtonTextOnly); m_ui->m_cmbToolbarButtonStyle->addItem(tr("Text beside icon"), Qt::ToolButtonStyle::ToolButtonTextBesideIcon); @@ -279,6 +290,8 @@ void SettingsGui::saveSettings() { } // Save toolbar. + settings()->setValue(GROUP(GUI), GUI::ToolbarIconSize, m_ui->m_spinToolbarIconSize->value()); + settings()->setValue(GROUP(GUI), GUI::ToolbarStyle, m_ui->m_cmbToolbarButtonStyle->itemData(m_ui->m_cmbToolbarButtonStyle->currentIndex())); diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index 33c3f6c4c..d18e6672a 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -270,7 +270,7 @@ - + 0 @@ -292,7 +292,7 @@ - + @@ -365,23 +365,46 @@ - Toolbar button style + Button style m_cmbToolbarButtonStyle - + - Select toolbar to edit + Toolbar editor m_cmbSelectToolBar + + + + 999 + + + 8 + + + 999 + + + + + + + Icon size + + + m_spinToolbarIconSize + + + @@ -414,11 +437,13 @@ m_checkNewTabDoubleClick m_checkHideTabBarIfOneTabVisible m_cmbToolbarButtonStyle + m_spinToolbarIconSize m_cmbSelectToolBar m_cmbIconTheme m_cmbStyles m_checkForceDarkFusion m_treeSkins + m_gbCustomSkinColors diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index d1b4dd89d..cdef78ea7 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -158,6 +158,9 @@ DVALUE(QList) GUI::SplitterMessagesVerticalDef = {}; DKEY GUI::SplitterMessagesHorizontal = "splitter_messages_horizontal"; DVALUE(QList) GUI::SplitterMessagesHorizontalDef = {}; +DKEY GUI::ToolbarIconSize = "toolbar_icon_size"; +DVALUE(int) GUI::ToolbarIconSizeDef = 0; + DKEY GUI::ToolbarStyle = "toolbar_style"; DVALUE(Qt::ToolButtonStyle) GUI::ToolbarStyleDef = Qt::ToolButtonIconOnly; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index 502ca5dc4..9bf62ae7a 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -184,6 +184,9 @@ namespace GUI { KEY SplitterMessagesHorizontal; VALUE(QList) SplitterMessagesHorizontalDef; + KEY ToolbarIconSize; + VALUE(int) ToolbarIconSizeDef; + KEY ToolbarStyle; VALUE(Qt::ToolButtonStyle) ToolbarStyleDef;