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
Beispiel #2
0
    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
Beispiel #3
0
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)
Beispiel #6
0
 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')