From 1030f5234fff7b729f1171f41fe48f8a987243bf Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 19 Nov 2020 19:27:41 +0100 Subject: [PATCH] enhance statusbar behavior when changing actions. --- src/librssguard/gui/settings/settingsgui.cpp | 1 + src/librssguard/gui/statusbar.cpp | 13 ++++++++----- src/librssguard/gui/toolbareditor.h | 4 +--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 5083bc23c..14d4a4365 100755 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -54,6 +54,7 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se connect(m_ui->m_editorFeedsToolbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); connect(m_ui->m_editorMessagesToolbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); connect(m_ui->m_editorStatusbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_editorStatusbar, &ToolBarEditor::setupChanged, this, &SettingsGui::requireRestart); connect(m_ui->m_listStyles, &QListWidget::currentItemChanged, this, &SettingsGui::dirtifySettings); connect(m_ui->m_cmbSelectToolBar, static_cast(&QComboBox::currentIndexChanged), m_ui->m_stackedToolbars, &QStackedWidget::setCurrentIndex); diff --git a/src/librssguard/gui/statusbar.cpp b/src/librssguard/gui/statusbar.cpp index 87df82917..14602faac 100644 --- a/src/librssguard/gui/statusbar.cpp +++ b/src/librssguard/gui/statusbar.cpp @@ -99,7 +99,8 @@ QStringList StatusBar::savedActions() const { } QList StatusBar::convertActions(const QStringList& actions) { - bool progress_visible = this->actions().contains(m_barProgressFeedsAction) && m_lblProgressFeeds->isVisible() && + bool progress_visible = this->actions().contains(m_barProgressFeedsAction) && + m_lblProgressFeeds->isVisible() && m_barProgressFeeds->isVisible(); QList available_actions = availableActions(); QList spec_actions; @@ -165,7 +166,7 @@ QList StatusBar::convertActions(const QStringList& actions) { } if (action_to_add != nullptr && widget_to_add != nullptr) { - action_to_add->setProperty("widget", QVariant::fromValue((void*) widget_to_add)); + action_to_add->setProperty("widget", QVariant::fromValue(widget_to_add)); spec_actions.append(action_to_add); } } @@ -174,11 +175,11 @@ QList StatusBar::convertActions(const QStringList& actions) { } void StatusBar::loadSpecificActions(const QList& actions, bool initial_load) { - clear(); - if (initial_load) { + clear(); + for (QAction* act : actions) { - QWidget* widget = act->property("widget").isValid() ? static_cast(act->property("widget").value()) : nullptr; + QWidget* widget = act->property("widget").isValid() ? qvariant_cast(act->property("widget")) : nullptr; addAction(act); @@ -207,6 +208,8 @@ void StatusBar::clear() { if (widget != nullptr) { removeWidget(widget); + + widget->setParent(qApp->mainFormWidget()); widget->setVisible(false); } diff --git a/src/librssguard/gui/toolbareditor.h b/src/librssguard/gui/toolbareditor.h index a5a7941f6..7c7eac0d7 100644 --- a/src/librssguard/gui/toolbareditor.h +++ b/src/librssguard/gui/toolbareditor.h @@ -17,8 +17,6 @@ class ToolBarEditor : public QWidget { Q_OBJECT public: - - // Constructors and destructors. explicit ToolBarEditor(QWidget* parent = nullptr); // Toolbar operations. @@ -29,7 +27,7 @@ class ToolBarEditor : public QWidget { QListWidget* availableItemsWidget() const; protected: - bool eventFilter(QObject* object, QEvent* event); + virtual bool eventFilter(QObject* object, QEvent* event); private slots: void updateActionsAvailability();