• R/O
  • HTTP
  • SSH
  • HTTPS

common_source_project-fm7: Commit

Common Source Code Project for Qt (a.k.a for FM-7).


Commit MetaInfo

Revision0f5704214d04b042b5e7e93fa8f614b5bb104de1 (tree)
Zeit2023-01-27 11:54:15
AutorK.Ohta <whatisthis.sowhat@gmai...>
CommiterK.Ohta

Log Message

[UI][Qt][MENU_METACLASS] Delete opened dialogs when exit.

Ändern Zusammenfassung

Diff

--- a/source/src/qt/gui/menu_metaclass.cpp
+++ b/source/src/qt/gui/menu_metaclass.cpp
@@ -12,7 +12,6 @@
1212 #include <QStyle>
1313 #include <QApplication>
1414 #include <QMenuBar>
15-#include <QThreadPool>
1615
1716 //#include "emu.h"
1817 //#include "vm.h"
@@ -43,7 +42,6 @@ Menu_MetaClass::Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_p
4342 object_desc = QString::fromUtf8("Obj_") + desc;
4443 object_desc.append(tmps);
4544 setObjectName(object_desc);
46-
4745
4846 for(ii = 0; ii < using_flags->get_max_d88_banks(); ii++) {
4947 action_select_media_list[ii] = NULL;
@@ -54,6 +52,9 @@ Menu_MetaClass::Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_p
5452
5553 ext_filter.clear();
5654 history.clear();
55+
56+ dialogs.clear();
57+
5758 inner_media_list.clear();
5859 window_title = QString::fromUtf8("");
5960
@@ -62,7 +63,6 @@ Menu_MetaClass::Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_p
6263 icon_write_protected = QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton);
6364 icon_write_enabled = QIcon();
6465 setToolTipsVisible(true);
65-
6666
6767 connect(this, SIGNAL(sig_emu_update_config()), p_wid, SLOT(do_emu_update_config()));
6868
@@ -73,6 +73,12 @@ Menu_MetaClass::Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_p
7373
7474 Menu_MetaClass::~Menu_MetaClass()
7575 {
76+ for(auto i = dialogs.begin(); i != dialogs.end(); ++i) {
77+ if((*i) != nullptr) {
78+ dialogs.erase(i);
79+ (*i)->deleteLater();
80+ }
81+ }
7682 }
7783
7884
@@ -214,8 +220,7 @@ void Menu_MetaClass::do_open_dialog()
214220 strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX - 1);
215221 initial_dir = QString::fromLocal8Bit(get_parent_dir(app));
216222 }
217- CSP_DiskDialog *dlg = new CSP_DiskDialog(nullptr);
218-
223+ CSP_DiskDialog *dlg = new CSP_DiskDialog(this);
219224 dlg->setOption(QFileDialog::ReadOnly, false);
220225 dlg->setOption(QFileDialog::DontUseNativeDialog, true);
221226 //dlg->setAcceptMode(QFileDialog::AcceptSave);
@@ -235,22 +240,25 @@ void Menu_MetaClass::do_open_dialog()
235240 }
236241 dlg->setWindowTitle(tmps);
237242
243+
244+ dlg->setModal(false);
245+
246+
238247 connect(dlg, SIGNAL(fileSelected(QString)), dlg->param, SLOT(_open_disk(QString)));
239248 connect(dlg->param, SIGNAL(sig_open_disk(int, QString)), this, SLOT(do_open_media(int, QString)));
240249 connect(dlg, SIGNAL(accepted()), this, SLOT(do_close_window()), Qt::QueuedConnection);
241250 connect(dlg, SIGNAL(rejected()), this, SLOT(do_close_window()), Qt::QueuedConnection);
242251 connect(dlg, SIGNAL(finished(int)), this, SLOT(do_finish(int)), Qt::QueuedConnection);
243252
244- connect(this, SIGNAL(sig_show()), dlg, SLOT(open()), Qt::QueuedConnection);
253+ connect(this, SIGNAL(sig_show()), dlg, SLOT(show()), Qt::QueuedConnection);
245254 dlg->do_update_params(); // update Extensions, directories
246255
247- dlg->setModal(false);
248256 dialogs.append(dlg);
249257
250258 //dlg->open();
251259 //dlg->show();
252- dlg->exec();
253- //emit sig_show();
260+ //dlg->exec();
261+ emit sig_show();
254262 return;
255263 }
256264
--- a/source/src/qt/gui/menu_metaclass.h
+++ b/source/src/qt/gui/menu_metaclass.h
@@ -24,6 +24,7 @@
2424 class EMU_TEMPLATE;
2525
2626 QT_BEGIN_NAMESPACE
27+class QThread;
2728 class QMenuBar;
2829 class QAction;
2930 class QActionGroup;
Show on old repository browser