diff options
| author | Gingeh <39150378+Gingeh@users.noreply.github.com> | 2022-08-03 16:39:30 +1000 | 
|---|---|---|
| committer | Gingeh <39150378+Gingeh@users.noreply.github.com> | 2022-08-03 16:39:30 +1000 | 
| commit | a8aa86291965ddd3cdfa2bb5f5fc7a34170559ed (patch) | |
| tree | 98b8d733fe884509a183cb843d1c5f72f33f567d /launcher/ui/pages/instance | |
| parent | f33b31e048affecf76083fbc56d02e883d0fffad (diff) | |
| download | PrismLauncher-a8aa86291965ddd3cdfa2bb5f5fc7a34170559ed.tar.gz PrismLauncher-a8aa86291965ddd3cdfa2bb5f5fc7a34170559ed.tar.bz2 PrismLauncher-a8aa86291965ddd3cdfa2bb5f5fc7a34170559ed.zip | |
Move large condition into a new lambda
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
Diffstat (limited to 'launcher/ui/pages/instance')
| -rw-r--r-- | launcher/ui/pages/instance/ModFolderPage.cpp | 25 | 
1 files changed, 13 insertions, 12 deletions
| diff --git a/launcher/ui/pages/instance/ModFolderPage.cpp b/launcher/ui/pages/instance/ModFolderPage.cpp index b3f4759f..1b2cde0c 100644 --- a/launcher/ui/pages/instance/ModFolderPage.cpp +++ b/launcher/ui/pages/instance/ModFolderPage.cpp @@ -84,24 +84,25 @@ ModFolderPage::ModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel>          ui->actionsToolbar->insertActionAfter(ui->actionAddItem, ui->actionUpdateItem);          connect(ui->actionUpdateItem, &QAction::triggered, this, &ModFolderPage::updateMods); -        connect(ui->treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, [this] { -            ui->actionUpdateItem->setEnabled(!(m_instance && m_instance->isRunning()) && -                                             (ui->treeView->selectionModel()->hasSelection() || !m_model->empty())); +        auto check_allow_update = [this] { +            return (!m_instance || !m_instance->isRunning()) && +                   (ui->treeView->selectionModel()->hasSelection() || !m_model->empty()); +        }; + +        connect(ui->treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, [this, check_allow_update] { +            ui->actionUpdateItem->setEnabled(check_allow_update());          }); -        connect(mods.get(), &ModFolderModel::rowsInserted, this, [this] { -            ui->actionUpdateItem->setEnabled(!(m_instance && m_instance->isRunning()) && -                                             (ui->treeView->selectionModel()->hasSelection() || !m_model->empty())); +        connect(mods.get(), &ModFolderModel::rowsInserted, this, [this, check_allow_update] { +            ui->actionUpdateItem->setEnabled(check_allow_update());          }); -        connect(mods.get(), &ModFolderModel::rowsRemoved, this, [this] { -            ui->actionUpdateItem->setEnabled(!(m_instance && m_instance->isRunning()) && -                                             (ui->treeView->selectionModel()->hasSelection() || !m_model->empty())); +        connect(mods.get(), &ModFolderModel::rowsRemoved, this, [this, check_allow_update] { +            ui->actionUpdateItem->setEnabled(check_allow_update());          }); -        connect(mods.get(), &ModFolderModel::updateFinished, this, [this, mods] { -            ui->actionUpdateItem->setEnabled(!(m_instance && m_instance->isRunning()) && -                                             (ui->treeView->selectionModel()->hasSelection() || !m_model->empty())); +        connect(mods.get(), &ModFolderModel::updateFinished, this, [this, check_allow_update, mods] { +            ui->actionUpdateItem->setEnabled(check_allow_update());              // Prevent a weird crash when trying to open the mods page twice in a session o.O              disconnect(mods.get(), &ModFolderModel::updateFinished, this, 0); | 
