From 5ff03584a5844ca2e6560747a1d160c9838535ff Mon Sep 17 00:00:00 2001 From: arthomnix Date: Sun, 9 Apr 2023 19:18:31 +0100 Subject: [PATCH] NOISSUE Hide the join world buttons properly This also fixes `QAction::setVisible` not working correctly in other parts of the codebase --- launcher/ui/pages/instance/WorldListPage.cpp | 6 ------ launcher/ui/pages/instance/WorldListPage.ui | 5 ++--- launcher/ui/widgets/WideBar.cpp | 4 +++- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/launcher/ui/pages/instance/WorldListPage.cpp b/launcher/ui/pages/instance/WorldListPage.cpp index cccc9bef..5b02e4cc 100644 --- a/launcher/ui/pages/instance/WorldListPage.cpp +++ b/launcher/ui/pages/instance/WorldListPage.cpp @@ -320,12 +320,6 @@ void WorldListPage::worldChanged(const QModelIndex ¤t, const QModelIndex & bool enable = index.isValid(); ui->actionJoin->setVisible(enableJoinActions); ui->actionJoinOffline->setVisible(enableJoinActions); - // The above lines will only hide the actions from the right click menu, to hide them from the toolbar we need to do this. - // If any more actions are added above the Join/Join Offline actions, these indices will need to be updated! - ui->toolBar->actions().at(2)->setVisible(enableJoinActions); - ui->toolBar->actions().at(3)->setVisible(enableJoinActions); - // Also disable the separator so there aren't 2 separators in a row - ui->toolBar->actions().at(4)->setVisible(enableJoinActions); ui->actionJoin->setEnabled(enable && enableJoinActions); ui->actionJoinOffline->setEnabled(enable && enableJoinActions); ui->actionCopy_Seed->setEnabled(enable); diff --git a/launcher/ui/pages/instance/WorldListPage.ui b/launcher/ui/pages/instance/WorldListPage.ui index 074f88fc..c57614e3 100644 --- a/launcher/ui/pages/instance/WorldListPage.ui +++ b/launcher/ui/pages/instance/WorldListPage.ui @@ -81,9 +81,8 @@ - - - + + diff --git a/launcher/ui/widgets/WideBar.cpp b/launcher/ui/widgets/WideBar.cpp index cbd6c617..8d012328 100644 --- a/launcher/ui/widgets/WideBar.cpp +++ b/launcher/ui/widgets/WideBar.cpp @@ -20,7 +20,6 @@ private slots: setText(m_action->text()); setIcon(m_action->icon()); setToolTip(m_action->toolTip()); - setHidden(!m_action->isVisible()); setFocusPolicy(Qt::NoFocus); } private: @@ -63,6 +62,9 @@ void WideBar::addAction(QAction* action) { auto entry = new BarEntry(); entry->qAction = addWidget(new ActionButton(action, this)); + connect(action, &QAction::changed, entry->qAction, [entry, action](){ + entry->qAction->setVisible(action->isVisible()); + }); entry->wideAction = action; entry->type = BarEntry::Action; m_entries.push_back(entry);