示例#1
0
    def initGui(self):
        """Function initalizes GUI of the OSM Plugin.
        """

        self.dockWidgetVisible = False

        # create action for loading OSM file
        self.actionLoad = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_load.png"),
            QCoreApplication.translate("OsmPlugin", "Load OSM from file"),
            self.iface.mainWindow())
        self.actionLoad.setWhatsThis(
            QCoreApplication.translate("OsmPlugin",
                                       "Load OpenStreetMap from file"))
        # create action for import of a layer into OSM
        self.actionImport = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_import.png"),
            QCoreApplication.translate("OsmPlugin",
                                       "Import data from a layer"),
            self.iface.mainWindow())
        self.actionImport.setWhatsThis(
            QCoreApplication.translate(
                "OsmPlugin", "Import data from a layer to OpenStreetMap"))
        # create action for saving OSM file
        self.actionSave = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_save.png"),
            QCoreApplication.translate("OsmPlugin", "Save OSM to file"),
            self.iface.mainWindow())
        self.actionSave.setWhatsThis(
            QCoreApplication.translate("OsmPlugin",
                                       "Save OpenStreetMap to file"))
        # create action for OSM data downloading
        self.actionDownload = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_download.png"),
            QCoreApplication.translate("OsmPlugin", "Download OSM data"),
            self.iface.mainWindow())
        self.actionDownload.setWhatsThis(
            QCoreApplication.translate("OsmPlugin",
                                       "Download OpenStreetMap data"))
        # create action for OSM data downloading
        self.actionUpload = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_upload.png"),
            QCoreApplication.translate("OsmPlugin", "Upload OSM data"),
            self.iface.mainWindow())
        self.actionUpload.setWhatsThis(
            QCoreApplication.translate("OsmPlugin",
                                       "Upload OpenStreetMap data"))
        # create action for OSM dockable window
        self.actionDockWidget = QAction(
            QIcon(":/plugins/osm_plugin/images/osm_featureManager.png"),
            QCoreApplication.translate("OsmPlugin",
                                       "Show/Hide OSM Feature Manager"),
            self.iface.mainWindow())
        self.actionDockWidget.setWhatsThis(
            QCoreApplication.translate(
                "OsmPlugin", "Show/Hide OpenStreetMap Feature Manager"))
        self.actionDockWidget.setCheckable(True)

        # connect new action to plugin function - when action is triggered
        QObject.connect(self.actionLoad, SIGNAL("triggered()"),
                        self.loadOsmFromFile)
        QObject.connect(self.actionSave, SIGNAL("triggered()"),
                        self.saveOsmToFile)
        QObject.connect(self.actionDownload, SIGNAL("triggered()"),
                        self.downloadOsmData)
        QObject.connect(self.actionUpload, SIGNAL("triggered()"),
                        self.uploadOsmData)
        QObject.connect(self.actionDockWidget, SIGNAL("triggered()"),
                        self.showHideDockWidget)
        QObject.connect(self.actionImport, SIGNAL("triggered()"),
                        self.importData)

        # create a toolbar
        self.toolBar = self.iface.addToolBar("OpenStreetMap")
        self.toolBar.setObjectName("OpenStreetMap")
        self.toolBar.addAction(self.actionLoad)
        self.toolBar.addAction(self.actionDockWidget)
        self.toolBar.addAction(self.actionDownload)
        self.toolBar.addAction(self.actionUpload)
        self.toolBar.addAction(self.actionImport)
        self.toolBar.addAction(self.actionSave)

        # populate plugins menu
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionLoad)
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionDockWidget)
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionDownload)
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionUpload)
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionImport)
        self.iface.addPluginToWebMenu("&OpenStreetMap", self.actionSave)

        # create manager of sqlite database(-s)
        self.dbm = OsmDatabaseManager(self)

        self.undoredo = None
        self.dockWidget = None

        # create widget for undo/redo actions
        self.undoredo = OsmUndoRedoDW(self)
        self.iface.addDockWidget(Qt.LeftDockWidgetArea, self.undoredo)
        self.undoredo.hide()
        QObject.connect(self.undoredo, SIGNAL("visibilityChanged(bool)"),
                        self.__urVisibilityChanged)
        self.undoredo.setContentEnabled(False)

        # create widget for osm feature info
        self.dockWidget = OsmFeatureDW(self)
        self.iface.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget)
        QObject.connect(self.dockWidget, SIGNAL("visibilityChanged(bool)"),
                        self.__ofVisibilityChanged)
        self.dockWidget.setContentEnabled(False)