From cbf8391a65a3f0dc7816b904261b3e38275ec063 Mon Sep 17 00:00:00 2001 From: Skye Deving <76892045+skyedeving@users.noreply.github.com> Date: Thu, 7 Jan 2021 20:44:58 -0600 Subject: [PATCH] Add QMenu delete on close attributes (#381) Fixes a minor memory leak with context menu creation. --- src/courtroom.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index ba13e21..1cd8d31 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -3856,6 +3856,7 @@ void Courtroom::on_iniswap_context_menu_requested(const QPoint &pos) { QMenu *menu = ui_iniswap_dropdown->lineEdit()->createStandardContextMenu(); + menu->setAttribute(Qt::WA_DeleteOnClose); menu->addSeparator(); if (file_exists(ao_app->get_character_path(current_char, "char.ini"))) menu->addAction(QString("Edit " + current_char + "/char.ini"), this, @@ -3963,6 +3964,7 @@ void Courtroom::on_sfx_context_menu_requested(const QPoint &pos) { QMenu *menu = ui_sfx_dropdown->lineEdit()->createStandardContextMenu(); + menu->setAttribute(Qt::WA_DeleteOnClose); menu->addSeparator(); if (file_exists(ao_app->get_character_path(current_char, "soundlist.ini"))) menu->addAction(QString("Edit " + current_char + "/soundlist.ini"), this, @@ -4050,8 +4052,9 @@ void Courtroom::set_effects_dropdown() void Courtroom::on_effects_context_menu_requested(const QPoint &pos) { - QMenu *menu = new QMenu(); + QMenu *menu = new QMenu(this); + menu->setAttribute(Qt::WA_DeleteOnClose); if (!ao_app->read_char_ini(current_char, "effects", "Options").isEmpty()) menu->addAction( QString("Open misc/" + @@ -4214,7 +4217,8 @@ void Courtroom::on_music_list_double_clicked(QTreeWidgetItem *p_item, void Courtroom::on_music_list_context_menu_requested(const QPoint &pos) { - QMenu *menu = new QMenu(); + QMenu *menu = new QMenu(this); + menu->setAttribute(Qt::WA_DeleteOnClose); menu->addAction(QString(tr("Stop Current Song")), this, SLOT(music_stop())); menu->addAction(QString(tr("Play Random Song")), this, SLOT(music_random())); menu->addSeparator();