[QGIS Commit] r9249 - trunk/qgis/src/app
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Sep 2 14:56:23 EDT 2008
Author: jef
Date: 2008-09-02 14:56:23 -0400 (Tue, 02 Sep 2008)
New Revision: 9249
Modified:
trunk/qgis/src/app/qgisapp.cpp
trunk/qgis/src/app/qgspluginregistry.cpp
trunk/qgis/src/app/qgspluginregistry.h
Log:
unload plugins on quit (fixes #808)
Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp 2008-09-02 17:17:25 UTC (rev 9248)
+++ trunk/qgis/src/app/qgisapp.cpp 2008-09-02 18:56:23 UTC (rev 9249)
@@ -1740,6 +1740,8 @@
void QgisApp::saveWindowState()
{
+ QgsPluginRegistry::instance()->unloadAll();
+
// store window and toolbar positions
QSettings settings;
// store the toolbar/dock widget settings using Qt4 settings API
Modified: trunk/qgis/src/app/qgspluginregistry.cpp
===================================================================
--- trunk/qgis/src/app/qgspluginregistry.cpp 2008-09-02 17:17:25 UTC (rev 9248)
+++ trunk/qgis/src/app/qgspluginregistry.cpp 2008-09-02 18:56:23 UTC (rev 9249)
@@ -19,6 +19,7 @@
#include "qgspluginregistry.h"
#include "qgspluginmetadata.h"
+#include "qgisplugin.h"
QgsPluginRegistry *QgsPluginRegistry::_instance = 0;
QgsPluginRegistry *QgsPluginRegistry::instance()
@@ -85,3 +86,12 @@
{
plugins.erase( name );
}
+
+void QgsPluginRegistry::unloadAll()
+{
+ for(std::map<QString, QgsPluginMetadata*>::iterator it=plugins.begin();
+ it!=plugins.end();
+ it++)
+ if( it->second->plugin() )
+ it->second->plugin()->unload();
+}
Modified: trunk/qgis/src/app/qgspluginregistry.h
===================================================================
--- trunk/qgis/src/app/qgspluginregistry.h 2008-09-02 17:17:25 UTC (rev 9248)
+++ trunk/qgis/src/app/qgspluginregistry.h 2008-09-02 18:56:23 UTC (rev 9249)
@@ -47,6 +47,8 @@
void addPythonPlugin( QString packageName, QString pluginName );
//! Remove a plugin from the list of loaded plugins
void removePlugin( QString name );
+//! Unload plugins
+ void unloadAll();
protected:
//! protected constructor
QgsPluginRegistry();
@@ -55,4 +57,3 @@
std::map<QString, QgsPluginMetadata*> plugins;
};
#endif //QgsPluginRegistry_H
-
More information about the QGIS-commit
mailing list