summaryrefslogtreecommitdiff
path: root/src/modlistcontextmenu.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2021-01-14 20:11:02 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-14 20:11:02 +0100
commit662a1eb3d7073166b1db3a05e34ecefd73046e3b (patch)
tree5ec144b5959b5e9d88de24d966d2b7bbd46e9520 /src/modlistcontextmenu.cpp
parent2c9a3c7de874a5edfdc6dacf2fd2fcd7f303152d (diff)
Contextual menu entry for enable/disable all visible.
Diffstat (limited to 'src/modlistcontextmenu.cpp')
-rw-r--r--src/modlistcontextmenu.cpp30
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(); });