def initGui(self): """Create the menu entries and toolbar icons inside the QGIS GUI.""" icon_path = ':/plugins/go2mapillary/res/icon.png' self.add_action( icon_path, text=self.tr(u'go2mapillary'), callback=self.run, parent=self.iface.mainWindow()) self.dockwidget = go2mapillaryDockWidget() self.dockwidget.webView.page().setNetworkAccessManager(QgsNetworkAccessManager.instance()) self.dockwidget.webView.page().mainFrame().setScrollBarPolicy(Qt.Vertical, Qt.ScrollBarAlwaysOff) self.dockwidget.webView.page().mainFrame().setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff) self.canvas.mapToolSet.connect(self.toggleViewer) self.viewer = mapillaryViewer(self.dockwidget.webView) self.viewer.messageArrived.connect(self.viewerConnection) QgsExpressionContextUtils.setGlobalVariable( "mapillaryCurrentKey","noKey") self.mapSelectionTool = None
def run(self): """Run method that loads and starts the plugin""" if not self.pluginIsActive: self.pluginIsActive = True #print "** STARTING go2mapillary" # dockwidget may not exist if: # first run of plugin # removed on close (see self.onClosePlugin method) if self.dockwidget == None: # Create the dockwidget (after translation) and keep reference self.dockwidget = go2mapillaryDockWidget() # connect to provide cleanup on closing of dockwidget self.dockwidget.closingPlugin.connect(self.onClosePlugin) # show the dockwidget # TODO: fix to allow choice of dock location self.iface.addDockWidget(Qt.LeftDockWidgetArea, self.dockwidget) self.dockwidget.show() #self.setupLayer('') self.mapillaryCoverage = None self.mapillaryLocations = None self.canvas.extentsChanged.connect(self.mapChanged) self.mapChanged() self.canvas.setMapTool(self.mapSelectionTool) else: # toggle show/hide the widget if self.dockwidget.isVisible(): self.dockwidget.hide() self.pluginIsActive = False self.removeCoverageLayer() self.removeLocationsLayer() self.canvas.extentsChanged.disconnect(self.mapChanged) else: self.dockwidget.show() self.canvas.setMapTool(self.mapSelectionTool) self.canvas.extentsChanged.connect(self.mapChanged) self.mapChanged()