enhance statusbar behavior when changing actions.

This commit is contained in:
Martin Rotter 2020-11-19 19:27:41 +01:00
parent 508d645c82
commit 1030f5234f
3 changed files with 10 additions and 8 deletions

View file

@ -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<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), m_ui->m_stackedToolbars,
&QStackedWidget::setCurrentIndex);

View file

@ -99,7 +99,8 @@ QStringList StatusBar::savedActions() const {
}
QList<QAction*> 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<QAction*> available_actions = availableActions();
QList<QAction*> spec_actions;
@ -165,7 +166,7 @@ QList<QAction*> 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<QAction*> StatusBar::convertActions(const QStringList& actions) {
}
void StatusBar::loadSpecificActions(const QList<QAction*>& actions, bool initial_load) {
clear();
if (initial_load) {
clear();
for (QAction* act : actions) {
QWidget* widget = act->property("widget").isValid() ? static_cast<QWidget*>(act->property("widget").value<void*>()) : nullptr;
QWidget* widget = act->property("widget").isValid() ? qvariant_cast<QWidget*>(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);
}

View file

@ -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();