diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index 5012493812bc32668f9c231365307bd0094e8e4c..7d912a4578f8068543321442627a12b9d5e2e6d8 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -96,4 +96,9 @@ void CorePlugin::remoteArgument(const QString& arg) } } +void CorePlugin::shutdown() +{ + m_mainWindow->shutdown(); +} + Q_EXPORT_PLUGIN(CorePlugin) diff --git a/src/plugins/coreplugin/coreplugin.h b/src/plugins/coreplugin/coreplugin.h index 1d12c14ec39cac087351485a854534d8d736caff..4580dd6fd0e084cadfc575eb21c273d5959eb2c4 100644 --- a/src/plugins/coreplugin/coreplugin.h +++ b/src/plugins/coreplugin/coreplugin.h @@ -47,8 +47,9 @@ public: CorePlugin(); ~CorePlugin(); - bool initialize(const QStringList &arguments, QString *errorMessage = 0); - void extensionsInitialized(); + virtual bool initialize(const QStringList &arguments, QString *errorMessage = 0); + virtual void extensionsInitialized(); + virtual void shutdown(); public slots: void remoteArgument(const QString&); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index aaec0076ae68f5f85f8da2edf1aad93316661ba0..66b84c85f92d5d095024143454be816a3c91edb0 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -1081,6 +1081,13 @@ void MainWindow::resetContext() updateContextObject(0); } +void MainWindow::shutdown() +{ + disconnect(QApplication::instance(), SIGNAL(focusChanged(QWidget*,QWidget*)), + this, SLOT(updateFocusWidget(QWidget*,QWidget*))); + m_activeContext = 0; +} + static const char *settingsGroup = "MainWindow"; static const char *geometryKey = "Geometry"; static const char *colorKey = "Color"; diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 13e980d4824950a1dd72895b182128e43a9cf65c..c0aa8494a7064a7af21f0aab3aa9b414a85ea879 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -89,6 +89,7 @@ public: bool init(QString *errorMessage); void extensionsInitialized(); + void shutdown(); IContext *contextObject(QWidget *widget); void addContextObject(IContext *contex);