def writeSettings(self): url = self.server_url() username = self.ui.username.text() password = self.ui.password.text() settings = QSettings() settings.setValue('Mergin/auth_token', None) # reset token settings.setValue('Mergin/saveCredentials', str(self.ui.save_credentials.isChecked())) settings.setValue("Mergin/username", username) if self.ui.save_credentials.isChecked(): set_mergin_auth(url, username, password) try: mc = create_mergin_client() except (URLError, ClientError, LoginError): mc = None else: try: mc = MerginClient(url, None, username, password, get_plugin_version()) settings.setValue('Mergin/auth_token', mc._auth_session['token']) settings.setValue('Mergin/server', url) except (URLError, ClientError, LoginError) as e: QgsApplication.messageLog().logMessage(f"Mergin plugin: {str(e)}") mc = None QgsExpressionContextUtils.setGlobalVariable('mergin_url', url) if mc: QgsExpressionContextUtils.setGlobalVariable('mergin_username', username) else: QgsExpressionContextUtils.removeGlobalVariable('mergin_username') return mc
def unload(self): self.iface.projectRead.disconnect(set_project_variables) remove_project_variables() QgsExpressionContextUtils.removeGlobalVariable('mergin_username') QgsExpressionContextUtils.removeGlobalVariable('mergin_url') QgsApplication.instance().dataItemProviderRegistry().removeProvider( self.data_item_provider) self.data_item_provider = None
def migrate_from_global_variables_to_pgmetadata_section(): """ Let's migrate from global variables to pgmetadata section in INI file. """ connection_names = QgsExpressionContextUtils.globalScope().variable( "pgmetadata_connection_names") if not connection_names: return QgsSettings().setValue("pgmetadata/connection_names", connection_names) QgsExpressionContextUtils.removeGlobalVariable( "pgmetadata_connection_names")
def initGui(self): """Create the menu entries and toolbar icons inside the QGIS GUI.""" icon_path = os.path.join(self.plugin_dir, 'res', 'icon.png') self.mainAction = self.add_action(icon_path, text=self.tr(u'go2mapillary'), callback=self.run, checkable=True, parent=self.iface.mainWindow()) self.dlg = go2mapillaryDockWidget() self.dockwidget = QDockWidget("go2mapillary", self.iface.mainWindow()) self.dockwidget.setObjectName("go2mapillary") self.dockwidget.setWidget(self.dlg) self.dockwidget.visibilityChanged.connect( self.mlyDockwidgetvisibilityChanged) self.dlg.webView.page().setNetworkAccessManager( QgsNetworkAccessManager.instance()) self.dlg.webView.page().mainFrame().setScrollBarPolicy( Qt.Vertical, Qt.ScrollBarAlwaysOff) self.dlg.webView.page().mainFrame().setScrollBarPolicy( Qt.Horizontal, Qt.ScrollBarAlwaysOff) self.canvas.mapToolSet.connect(self.toggleViewer) self.viewer = mapillaryViewer(self) self.viewer.messageArrived.connect(self.viewerConnection) self.viewer.openFilter.connect(self.filter_images_func) #QgsExpressionContextUtils.setGlobalVariable( "mapillaryCurrentKey","noKey") QgsExpressionContextUtils.removeGlobalVariable("mapillaryCurrentKey") self.mapSelectionTool = None self.coverage = mapillary_coverage(self) self.filterDialog = mapillaryFilter(self) self.filterAction_images = QAction(QIcon(icon_path), 'filter mapillary coverage', self.iface.mainWindow()) self.filterAction_sequences = QAction(QIcon(icon_path), 'filter mapillary coverage', self.iface.mainWindow()) self.filterAction_overview = QAction(QIcon(icon_path), 'filter mapillary coverage', self.iface.mainWindow()) self.filterAction_images.triggered.connect(self.filter_images_func) self.filterAction_sequences.triggered.connect( self.filter_sequences_func) self.filterAction_overview.triggered.connect(self.filter_overview_func) self.sample_cursor = mapillary_cursor(self) self.sample_settings = mapillarySettings(self) self.sample_cursor.update_ds( self.sample_settings.settings['sample_source']) self.samples_form = mapillaryForm(self) self.iface.projectRead.connect(self.removeMapillaryLayerGroup) self.canvas.mapCanvasRefreshed.connect(self.mapRefreshed) self.enableMapillaryRender = False
def unload(self): # Disconnect Mergin related signals self.iface.projectRead.disconnect(self.on_qgis_project_changed) self.iface.newProjectCreated.disconnect(self.on_qgis_project_changed) QgsProject.instance().projectSaved.disconnect(self.on_qgis_project_changed) remove_project_variables() QgsExpressionContextUtils.removeGlobalVariable("mergin_username") QgsExpressionContextUtils.removeGlobalVariable("mergin_url") QgsApplication.instance().dataItemProviderRegistry().removeProvider(self.data_item_provider) self.data_item_provider = None # this is crashing qgis on exit # self.iface.browserModel().reload() for action in self.actions: self.iface.removePluginMenu(self.menu, action) self.iface.removeToolBarIcon(action) del self.toolbar self.iface.unregisterProjectPropertiesWidgetFactory(self.mergin_project_config_factory)
def logout(self): self.animate_lines_action.setEnabled(True) self.migration_action.setEnabled(False) self.close_action.setEnabled(False) AccesoToken.acces_key='' QgsExpressionContextUtils.removeGlobalVariable('user_mtc')