diff options
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f7cca785..b136a3a7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4404,7 +4404,7 @@ void MainWindow::addModSendToContextMenu(QMenu *menu) if (m_ModListSortProxy->sortColumn() != ModList::COL_PRIORITY)
return;
- QMenu *sub_menu = new QMenu(this);
+ QMenu *sub_menu = new QMenu(menu);
sub_menu->setTitle(tr("Send to"));
sub_menu->addAction(tr("Top"), this, SLOT(sendSelectedModsToTop_clicked()));
sub_menu->addAction(tr("Bottom"), this, SLOT(sendSelectedModsToBottom_clicked()));
@@ -4445,6 +4445,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu = allMods;
} else {
menu = new QMenu(this);
+ allMods->setParent(menu);
allMods->setTitle(tr("All Mods"));
menu->addMenu(allMods);
menu->addSeparator();
@@ -4463,11 +4464,11 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu->addAction(tr("Remove Backup..."), this, SLOT(removeMod_clicked()));
} else if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_SEPARATOR) != flags.end()){
menu->addSeparator();
- QMenu *addRemoveCategoriesMenu = new QMenu(tr("Change Categories"));
+ QMenu *addRemoveCategoriesMenu = new QMenu(tr("Change Categories"), menu);
populateMenuCategories(addRemoveCategoriesMenu, 0);
connect(addRemoveCategoriesMenu, SIGNAL(aboutToHide()), this, SLOT(addRemoveCategories_MenuHandler()));
addMenuAsPushButton(menu, addRemoveCategoriesMenu);
- QMenu *primaryCategoryMenu = new QMenu(tr("Primary Category"));
+ QMenu *primaryCategoryMenu = new QMenu(tr("Primary Category"), menu);
connect(primaryCategoryMenu, SIGNAL(aboutToShow()), this, SLOT(addPrimaryCategoryCandidates()));
addMenuAsPushButton(menu, primaryCategoryMenu);
menu->addSeparator();
@@ -4482,12 +4483,12 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) } else if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_FOREIGN) != flags.end()) {
addModSendToContextMenu(menu);
} else {
- QMenu *addRemoveCategoriesMenu = new QMenu(tr("Change Categories"));
+ QMenu *addRemoveCategoriesMenu = new QMenu(tr("Change Categories"), menu);
populateMenuCategories(addRemoveCategoriesMenu, 0);
connect(addRemoveCategoriesMenu, SIGNAL(aboutToHide()), this, SLOT(addRemoveCategories_MenuHandler()));
addMenuAsPushButton(menu, addRemoveCategoriesMenu);
- QMenu *primaryCategoryMenu = new QMenu(tr("Primary Category"));
+ QMenu *primaryCategoryMenu = new QMenu(tr("Primary Category"), menu);
connect(primaryCategoryMenu, SIGNAL(aboutToShow()), this, SLOT(addPrimaryCategoryCandidates()));
addMenuAsPushButton(menu, primaryCategoryMenu);
@@ -4568,6 +4569,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) }
menu->exec(modList->mapToGlobal(pos));
+ delete menu;
} catch (const std::exception &e) {
reportError(tr("Exception: ").arg(e.what()));
} catch (...) {
|
