diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 59222acc419685bae0994a0aca0e75fb4c632721..1d9050705496bc05501ed25a3a22cec105f034ce 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -127,6 +127,7 @@ MainWindow::MainWindow() : m_mimeDatabase(new MimeDatabase), m_navigationWidget(0), m_rightPaneWidget(0), + m_versionDialog(0), m_activeContext(0), m_pluginManager(0), m_outputPane(new OutputPane(m_globalContext)), @@ -1085,8 +1086,20 @@ void MainWindow::openRecentFile() void MainWindow::aboutQtCreator() { - VersionDialog versionDialog(this); - versionDialog.exec(); + if (!m_versionDialog) { + m_versionDialog = new VersionDialog(this); + connect(m_versionDialog, SIGNAL(finished(int)), + this, SLOT(destroyVersionDialog())); + } + m_versionDialog->show(); +} + +void MainWindow::destroyVersionDialog() +{ + if (m_versionDialog) { + m_versionDialog->deleteLater(); + m_versionDialog = 0; + } } void MainWindow::aboutPlugins() diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 180b932d710bffe7d0b1e71cd5d85ecd937fda41..a8edd089972489c1076ddf1359d078969ec6aa2e 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -83,6 +83,7 @@ class OutputPane; class ProgressManager; class ShortcutSettings; class ViewManager; +class VersionDialog; class CORE_EXPORT MainWindow : public QMainWindow { @@ -160,6 +161,7 @@ private slots: void aboutPlugins(); void updateFocusWidget(QWidget *old, QWidget *now); void toggleNavigation(); + void destroyVersionDialog(); private: void updateContextObject(IContext *context); @@ -190,6 +192,7 @@ private: NavigationWidget *m_navigationWidget; RightPaneWidget *m_rightPaneWidget; Core::BaseView *m_outputView; + VersionDialog *m_versionDialog; IContext * m_activeContext;