Move large condition into a new lambda

Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
This commit is contained in:
Gingeh 2022-08-03 16:39:30 +10:00
parent f33b31e048
commit a8aa862919

View File

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