From 93e15366e73d7563c22537cf286cb39777aebc41 Mon Sep 17 00:00:00 2001 From: yodalee Date: Wed, 7 Jan 2015 01:45:53 +0800 Subject: [PATCH] modify dialog call, prevent memory leak --- qucs/qucs/dialogs/qucssettingsdialog.cpp | 7 +++++-- qucs/qucs/dialogs/qucssettingsdialog.h | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/qucs/qucs/dialogs/qucssettingsdialog.cpp b/qucs/qucs/dialogs/qucssettingsdialog.cpp index 5ad0050262..042797f847 100644 --- a/qucs/qucs/dialogs/qucssettingsdialog.cpp +++ b/qucs/qucs/dialogs/qucssettingsdialog.cpp @@ -433,6 +433,7 @@ QucsSettingsDialog::QucsSettingsDialog(QucsApp *parent) ascoEdit->setText(QucsSettings.AscoBinDir.canonicalPath()); octaveEdit->setText(QucsSettings.OctaveBinDir.canonicalPath()); + shortcutDialog = NULL; resize(300, 200); } @@ -699,8 +700,10 @@ void QucsSettingsDialog::slotBGColorDialog() // ----------------------------------------------------------- void QucsSettingsDialog::slotShortcutDialog() { - QucsShortcutDialog *d = new QucsShortcutDialog(App); - d->exec(); + if (!shortcutDialog) { + shortcutDialog = new QucsShortcutDialog(App); + } + shortcutDialog->exec(); } // ----------------------------------------------------------- diff --git a/qucs/qucs/dialogs/qucssettingsdialog.h b/qucs/qucs/dialogs/qucssettingsdialog.h index f67073de20..a3dcf6dbfc 100644 --- a/qucs/qucs/dialogs/qucssettingsdialog.h +++ b/qucs/qucs/dialogs/qucssettingsdialog.h @@ -27,6 +27,8 @@ #include #include +class QucsShortcutDialog; + class QLineEdit; class QCheckBox; class QVBoxLayout; @@ -98,6 +100,7 @@ private slots: QRegExp Expr; QRegExpValidator *Validator; + QucsShortcutDialog *shortcutDialog; private: QStringList currentPaths;