From 24cbeb949117709b2d0a5223deddac630d35a03e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 2 Nov 2023 07:34:39 +0100 Subject: [PATCH] normalize heights of feeds/articles toolbar when main windows is shown --- src/librssguard/gui/dialogs/formmain.cpp | 6 ++++++ src/librssguard/gui/dialogs/formmain.h | 9 +++++---- src/librssguard/gui/feedmessageviewer.cpp | 7 +++++++ src/librssguard/gui/feedmessageviewer.h | 2 ++ src/librssguard/gui/settings/settingsgui.cpp | 2 ++ src/librssguard/gui/toolbars/feedstoolbar.cpp | 2 ++ src/librssguard/gui/toolbars/messagestoolbar.cpp | 2 ++ src/librssguard/gui/toolbars/statusbar.cpp | 2 ++ 8 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index 74fc9a85b..c0519038f 100644 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -1090,6 +1090,12 @@ void FormMain::closeEvent(QCloseEvent* event) { qDebugNN << LOGSEC_GUI << "Main window's close event"; } +void FormMain::showEvent(QShowEvent* event) { + QMainWindow::showEvent(event); + + tabWidget()->feedMessageViewer()->normalizeToolbarHeights(); +} + void FormMain::hideEvent(QHideEvent* event) { QMainWindow::hideEvent(event); diff --git a/src/librssguard/gui/dialogs/formmain.h b/src/librssguard/gui/dialogs/formmain.h index 0f82bb8e7..0dda5663e 100644 --- a/src/librssguard/gui/dialogs/formmain.h +++ b/src/librssguard/gui/dialogs/formmain.h @@ -11,11 +11,11 @@ class StatusBar; class QWidgetAction; class RSSGUARD_DLLSPEC FormMain : public QMainWindow { - Q_OBJECT + Q_OBJECT - friend class TabWidget; - friend class MessagesView; - friend class FeedsView; + friend class TabWidget; + friend class MessagesView; + friend class FeedsView; public: explicit FormMain(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowType::Widget); @@ -70,6 +70,7 @@ class RSSGUARD_DLLSPEC FormMain : public QMainWindow { virtual void resizeEvent(QResizeEvent* event); virtual void changeEvent(QEvent* event); virtual void closeEvent(QCloseEvent* event); + virtual void showEvent(QShowEvent* event); virtual void hideEvent(QHideEvent* event); signals: diff --git a/src/librssguard/gui/feedmessageviewer.cpp b/src/librssguard/gui/feedmessageviewer.cpp index f8b812633..dfdb49fe1 100644 --- a/src/librssguard/gui/feedmessageviewer.cpp +++ b/src/librssguard/gui/feedmessageviewer.cpp @@ -109,6 +109,13 @@ bool FeedMessageViewer::areListHeadersEnabled() const { return m_listHeadersEnabled; } +void FeedMessageViewer::normalizeToolbarHeights() { + auto max_height = std::max(m_toolBarFeeds->height(), m_toolBarMessages->height()); + + m_toolBarFeeds->setMinimumHeight(max_height); + m_toolBarMessages->setMinimumHeight(max_height); +} + void FeedMessageViewer::onFeedSplitterResized() { qDebugNN << LOGSEC_GUI << "Feed splitter moved."; diff --git a/src/librssguard/gui/feedmessageviewer.h b/src/librssguard/gui/feedmessageviewer.h index 0cc53bcd9..4a386820a 100644 --- a/src/librssguard/gui/feedmessageviewer.h +++ b/src/librssguard/gui/feedmessageviewer.h @@ -38,6 +38,8 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent { bool areToolBarsEnabled() const; bool areListHeadersEnabled() const; + void normalizeToolbarHeights(); + public slots: void saveSize(); void loadSize(); diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 5e545f618..3a6e9a40b 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -440,6 +440,8 @@ void SettingsGui::saveSettings() { m_ui->m_editorMessagesToolbar->saveToolBar(); m_ui->m_editorStatusbar->saveToolBar(); + qApp->mainForm()->tabWidget()->feedMessageViewer()->normalizeToolbarHeights(); + qApp->mainForm()->tabWidget()->checkTabBarVisibility(); qApp->mainForm()->tabWidget()->feedMessageViewer()->refreshVisualProperties(); diff --git a/src/librssguard/gui/toolbars/feedstoolbar.cpp b/src/librssguard/gui/toolbars/feedstoolbar.cpp index 4593d4aaf..a005291cd 100644 --- a/src/librssguard/gui/toolbars/feedstoolbar.cpp +++ b/src/librssguard/gui/toolbars/feedstoolbar.cpp @@ -44,6 +44,8 @@ QList FeedsToolBar::convertActions(const QStringList& actions) { QList available_actions = availableActions(); QList spec_actions; + spec_actions.reserve(actions.size()); + // Iterate action names and add respectable actions into the toolbar. for (const QString& action_name : actions) { QAction* matching_action = findMatchingAction(action_name, available_actions); diff --git a/src/librssguard/gui/toolbars/messagestoolbar.cpp b/src/librssguard/gui/toolbars/messagestoolbar.cpp index 0847228b7..3d986b86b 100644 --- a/src/librssguard/gui/toolbars/messagestoolbar.cpp +++ b/src/librssguard/gui/toolbars/messagestoolbar.cpp @@ -50,6 +50,8 @@ QList MessagesToolBar::convertActions(const QStringList& actions) { QList available_actions = availableActions(); QList spec_actions; + spec_actions.reserve(actions.size()); + // Iterate action names and add respectable actions into the toolbar. for (const QString& action_name : actions) { auto* matching_action = findMatchingAction(action_name, available_actions); diff --git a/src/librssguard/gui/toolbars/statusbar.cpp b/src/librssguard/gui/toolbars/statusbar.cpp index 6832b1433..b5e161b53 100644 --- a/src/librssguard/gui/toolbars/statusbar.cpp +++ b/src/librssguard/gui/toolbars/statusbar.cpp @@ -90,6 +90,8 @@ QList StatusBar::convertActions(const QStringList& actions) { QList available_actions = availableActions(); QList spec_actions; + spec_actions.reserve(actions.size()); + // Iterate action names and add respectable // actions into the toolbar. for (const QString& action_name : actions) {