diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 59222acc419..1d905070549 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 180b932d710..a8edd089972 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;