diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2021-01-14 20:11:02 +0100 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2021-01-14 20:11:02 +0100 |
| commit | 662a1eb3d7073166b1db3a05e34ecefd73046e3b (patch) | |
| tree | 5ec144b5959b5e9d88de24d966d2b7bbd46e9520 /src/modlistcontextmenu.cpp | |
| parent | 2c9a3c7de874a5edfdc6dacf2fd2fcd7f303152d (diff) | |
Contextual menu entry for enable/disable all visible.
Diffstat (limited to 'src/modlistcontextmenu.cpp')
| -rw-r--r-- | src/modlistcontextmenu.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/modlistcontextmenu.cpp b/src/modlistcontextmenu.cpp index ac5494da..4a3278eb 100644 --- a/src/modlistcontextmenu.cpp +++ b/src/modlistcontextmenu.cpp @@ -17,6 +17,13 @@ ModListGlobalContextMenu::ModListGlobalContextMenu(OrganizerCore& core, ModListV ModListGlobalContextMenu::ModListGlobalContextMenu(OrganizerCore& core, ModListView* view, const QModelIndex& index, QWidget* parent) : QMenu(parent) { + connect(this, &QMenu::aboutToShow, [=, &core] { populate(core, view, index); }); +} + +void ModListGlobalContextMenu::populate(OrganizerCore& core, ModListView* view, const QModelIndex& index) +{ + clear(); + addAction(tr("Install Mod..."), [=]() { view->actions().installMod(); }); auto modIndex = index.data(ModList::IndexRole); @@ -47,18 +54,17 @@ ModListGlobalContextMenu::ModListGlobalContextMenu(OrganizerCore& core, ModListV addSeparator(); - addAction(tr("Enable all visible"), [=]() { - if (QMessageBox::question(view, tr("Confirm"), tr("Really enable all visible mods?"), - QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { - view->enableAllVisible(); - } - }); - addAction(tr("Disable all visible"), [=]() { - if (QMessageBox::question(parent, tr("Confirm"), tr("Really disable all visible mods?"), - QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { - view->disableAllVisible(); - } - }); + QString enableTxt = tr("Enable all"), + disableTxt = tr("Disable all"); + + if (view->isFilterActive()) { + enableTxt = tr("Enable all matching mods"); + disableTxt = tr("Disable all matching mods"); + } + + addAction(enableTxt, [=] { view->actions().setAllMatchingModsEnabled(true); }); + addAction(disableTxt, [=] { view->actions().setAllMatchingModsEnabled(false); }); + addAction(tr("Check for updates"), [=]() { view->actions().checkModsForUpdates(); }); addAction(tr("Refresh"), &core, &OrganizerCore::profileRefresh); addAction(tr("Export to csv..."), [=]() { view->actions().exportModListCSV(); }); |
