diff options
Diffstat (limited to 'application/pages/instance/ModFolderPage.cpp')
-rw-r--r-- | application/pages/instance/ModFolderPage.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/application/pages/instance/ModFolderPage.cpp b/application/pages/instance/ModFolderPage.cpp index d0de4ac2..97225832 100644 --- a/application/pages/instance/ModFolderPage.cpp +++ b/application/pages/instance/ModFolderPage.cpp @@ -32,10 +32,17 @@ #include "minecraft/ComponentList.h" #include <DesktopServices.h> -ModFolderPage::ModFolderPage(BaseInstance *inst, std::shared_ptr<SimpleModList> mods, QString id, - QString iconName, QString displayName, QString helpPage, - QWidget *parent) - : QMainWindow(parent), ui(new Ui::ModFolderPage) +ModFolderPage::ModFolderPage( + BaseInstance *inst, + std::shared_ptr<SimpleModList> mods, + QString id, + QString iconName, + QString displayName, + QString helpPage, + QWidget *parent +) : + QMainWindow(parent), + ui(new Ui::ModFolderPage) { ui->setupUi(this); ui->actionsToolbar->insertSpacer(ui->actionView_configs); @@ -57,6 +64,9 @@ ModFolderPage::ModFolderPage(BaseInstance *inst, std::shared_ptr<SimpleModList> ui->modTreeView->setModel(m_filterModel); ui->modTreeView->installEventFilter(this); ui->modTreeView->sortByColumn(1, Qt::AscendingOrder); + ui->modTreeView->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->modTreeView, &ModListView::customContextMenuRequested, this, &ModFolderPage::ShowContextMenu); + auto smodel = ui->modTreeView->selectionModel(); connect(smodel, &QItemSelectionModel::currentChanged, this, &ModFolderPage::modCurrent); connect(ui->filterEdit, &QLineEdit::textChanged, this, &ModFolderPage::on_filterTextChanged ); @@ -70,6 +80,13 @@ QMenu * ModFolderPage::createPopupMenu() return filteredMenu; } +void ModFolderPage::ShowContextMenu(const QPoint& pos) +{ + auto menu = ui->actionsToolbar->createContextMenu(this, tr("Context menu")); + menu->exec(ui->modTreeView->mapToGlobal(pos)); + delete menu; +} + void ModFolderPage::openedImpl() { m_mods->startWatching(); |