class Erosiebezwaren(object): """Main class of the Erosiebezwaren plugin. Used to instanciate objects of the other classes and provide links between them. """ def __init__(self, iface): """Initialisation. Parameters ---------- iface : QGisGui.QGisInterface Instance of the QGis interface. """ # Save reference to the QGIS interface self.iface = iface self.qsettings = QtCore.QSettings() self.settings = SettingsManager(self) def initGui(self): """Initialise the GUI of the plugin.""" # Create action that will start plugin configuration self.action = QtGui.QAction('DOV - Erosiebezwaren', self.iface.mainWindow()) # Add toolbar and menu item self.toolbar = self.iface.addToolBar('Erosiebezwaren toolbar') self.toolbar.setObjectName('ErosiebezwarenToolbar') self.iface.addPluginToMenu('DOV - Erosiebezwaren', self.action) self.utils = utils.Utils(self) self.selectionManagerPolygons = SelectionManager( self, self.settings.getValue('layers/tempSelectionPolygons')) self.selectionManagerPoints = SelectionManager( self, self.settings.getValue('layers/tempSelectionPoints')) self.annotationManager = AnnotationManager(self) self.actions = actions.Actions(self, self.iface.mainWindow(), self.toolbar) self.parcelInfoDock = ParcelInfoDock(self.iface.mainWindow()) self.parcelInfoWidget = ParcelInfoWidget(self.parcelInfoDock, self) self.parcelInfoDock.setWidget(self.parcelInfoWidget) def unload(self): """Unload the plugin. Deactivate all loaded objectes in order to shut down properly. """ self.iface.removePluginMenu('DOV - Erosiebezwaren', self.action) # FIXME: commented out to prevent segfault on QGis exit..? # self.selectionManagerPolygons.deactivate() # self.selectionManagerPoints.deactivate() # self.annotationManager.deactivate() self.actions.deactivate() self.iface.removeDockWidget(self.parcelInfoDock) del (self.actions) del (self.toolbar) del (self.parcelInfoWidget) del (self.parcelInfoDock) del (self.selectionManagerPolygons) del (self.selectionManagerPoints) del (self.annotationManager)