1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#include "modlistcontextmenu.h"
#include <report.h>
#include "modlist.h"
#include "modlistview.h"
#include "modlistviewactions.h"
#include "organizercore.h"
using namespace MOBase;
ModListGlobalContextMenu::ModListGlobalContextMenu(OrganizerCore& core, ModListView* view, QWidget* parent)
: QMenu(parent)
{
addAction(tr("Install Mod..."), [=]() { view->actions().installMod(); });
addAction(tr("Create empty mod"), [=]() { view->actions().createEmptyMod(-1); });
addAction(tr("Create Separator"), [=]() { view->actions().createSeparator(-1); });
if (view->hasCollapsibleSeparators()) {
addSeparator();
addAction(tr("Collapse all"), view, &QTreeView::collapseAll);
addAction(tr("Expand all"), view, &QTreeView::expandAll);
}
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(view, tr("Confirm"), tr("Really disable all visible mods?"),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
view->disableAllVisible();
}
});
addAction(tr("Check for updates"), [=]() { view->actions().checkModsForUpdates(); });
addAction(tr("Refresh"), &core, &OrganizerCore::profileRefresh);
addAction(tr("Export to csv..."), [=]() { view->actions().exportModListCSV(); });
}
ModListContextMenu::ModListContextMenu(OrganizerCore& core, const QModelIndex& index, ModListView* view) :
QMenu(view)
, m_core(core)
, m_index()
{
if (view->selectionModel()->hasSelection()) {
m_index = view->indexViewToModel(view->selectionModel()->selectedRows());
}
else {
m_index = { index };
}
QMenu* allMods = new ModListGlobalContextMenu(core, view, view);
allMods->setTitle(tr("All Mods"));
addMenu(allMods);
if (view->hasCollapsibleSeparators()) {
addAction(tr("Collapse all"), view, &QTreeView::collapseAll);
addAction(tr("Expand all"), view, &QTreeView::expandAll);
}
addSeparator();
// Add type-specific items
ModInfo::Ptr info = ModInfo::getByIndex(index.data(ModList::IndexRole).toInt());
if (info->isOverwrite()) {
addOverwriteActions(core, view);
}
else if (info->isBackup()) {
addBackupActions(core, view);
}
else if (info->isSeparator()) {
addSeparatorActions(core, view);
}
else if (info->isForeign()) {
addForeignActions(core, view);
}
else {
addRegularActions(core, view);
}
// add information for all except foreign
if (!info->isForeign()) {
QAction* infoAction = addAction(tr("Information..."), [=]() { view->actions().displayModInformation(m_index[0].row()); });
setDefaultAction(infoAction);
}
}
void ModListContextMenu::addOverwriteActions(OrganizerCore& core, ModListView* modListView)
{
}
void ModListContextMenu::addSeparatorActions(OrganizerCore& core, ModListView* modListView)
{
}
void ModListContextMenu::addForeignActions(OrganizerCore& core, ModListView* modListView)
{
}
void ModListContextMenu::addBackupActions(OrganizerCore& core, ModListView* modListView)
{
}
void ModListContextMenu::addRegularActions(OrganizerCore& core, ModListView* modListView)
{
}
|