Beispiel #1
0
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)