def __init__(self, parent=None): super(ImportGmlasPanel, self).__init__(parent) self.setupUi(self) self.databaseWidget.set_accept_mode(QFileDialog.AcceptSave) self.gmlasConfigLineEdit.setText(settings.value('default_gmlas_config')) self.gmlPathLineEdit.setText(settings.value('gml_path', '')) self.acceptLanguageHeaderInput.setText(settings.value('default_language')) self.set_access_mode(settings.value('default_access_mode'))
def __init__(self, parent=None): super(DownloadWfs2Panel, self).__init__(parent) self.setupUi(self) self.downloadProgressBar.setVisible(False) self.featureLimitBox.setValue( int(settings.value('default_maxfeatures'))) self.uriComboBox.addItems(settings.value('wfs2_services') or []) self.uriComboBox.setCurrentText(settings.value('default_wfs2_service'))
def __init__(self, parent=None): super(ExportGmlasPanel, self).__init__(parent) self.setupUi(self) self.databaseWidget.set_accept_mode(QFileDialog.AcceptOpen) self.gmlasConfigLineEdit.setText( settings.value("default_gmlas_config"))
def gmlas_datasource(self): gmlasconf = self.gmlas_config() datasourceFile = self.gml_path() if datasourceFile == '': raise InputError(self.tr("You must select a input file or URL")) isXsd = datasourceFile.endswith(".xsd") isUrl = datasourceFile.startswith("http") swapCoordinates = self.swapCoordinatesCombo.currentText() driverConnection = "" openOptions = ['EXPOSE_METADATA_LAYERS=YES', 'CONFIG_FILE={}'.format(gmlasconf)] openOptions.append('SWAP_COORDINATES={}'.format(swapCoordinates)) if isXsd: driverConnection = "GMLAS:" openOptions.append('XSD={}'.format(datasourceFile)) elif isUrl: driverConnection = "GMLAS:/vsicurl_streaming/{}".format(datasourceFile) else: driverConnection = "GMLAS:{}".format(datasourceFile) gdal.SetConfigOption('GDAL_HTTP_UNSAFESSL', 'YES') gdal.SetConfigOption('GDAL_HTTP_USERAGENT', settings.value('http_user_agent', plugin_name())) with qgis_proxy_settings(): return gdal.OpenEx(driverConnection, open_options=openOptions)
def __init__(self, parent=None): super(ImportPanel, self).__init__(parent) self.setupUi(self) self.gmlas_panel = self.addImportPanel( self.tr("Import using GMLAS driver"), ImportGmlasPanel()) self.xml_panel = self.addImportPanel(self.tr("Import as XML"), ImportXmlPanel()) if settings.value('default_import_method') == 'gmlas': self.importTypeCombo.setCurrentIndex( self.importTypeCombo.findData(self.gmlas_panel)) if settings.value('default_import_method') == 'xml': self.importTypeCombo.setCurrentIndex( self.importTypeCombo.findData(self.xml_panel))
def gmlas_datasource(self): gmlasconf = self.gmlas_config() datasourceFile = self.gml_path() if datasourceFile == "": raise InputError(self.tr("You must select a input file or URL")) isXsd = datasourceFile.endswith(".xsd") isUrl = datasourceFile.startswith("http") swapCoordinates = self.swapCoordinatesCombo.currentText() driverConnection = "" openOptions = [ "EXPOSE_METADATA_LAYERS=YES", "CONFIG_FILE={}".format(gmlasconf) ] openOptions.append("SWAP_COORDINATES={}".format(swapCoordinates)) if isXsd: driverConnection = "GMLAS:" openOptions.append("XSD={}".format(datasourceFile)) elif isUrl: driverConnection = "GMLAS:/vsicurl_streaming/{}".format( datasourceFile) else: driverConnection = "GMLAS:{}".format(datasourceFile) gdal.SetConfigOption("GDAL_HTTP_UNSAFESSL", "YES") gdal.SetConfigOption("GDAL_HTTP_USERAGENT", settings.value("http_user_agent", plugin_name())) with qgis_proxy_settings(): return gdal.OpenEx(driverConnection, open_options=openOptions)
def __init__(self, parent=None, gml_path=None): super(ImportGmlasPanel, self).__init__(parent) self.setupUi(self) self.databaseWidget.set_accept_mode(QFileDialog.AcceptSave) self.gmlasConfigLineEdit.setText(settings.value('default_gmlas_config')) self.acceptLanguageHeaderInput.setText(settings.value('default_language')) self.set_access_mode(settings.value('default_access_mode')) g = "gml_application_schema_toolbox" self.layers_group.setSettingGroup(g) self.gmlas_bbox_group.setSettingGroup(g) self.gmlas_options_group.setSettingGroup(g) self.target_db_group.setSettingGroup(g) self.parent = parent self._gml_path = gml_path
def load_settings(self): self.featureLimitBox.setValue(int(settings.value('default_maxfeatures'))) self.set_import_method(settings.value('default_import_method')) self.gmlasConfigLineEdit.setText(settings.value('default_gmlas_config')) self.languageLineEdit.setText(settings.value('default_language')) self.set_db_type(settings.value('default_db_type')) self.set_access_mode(settings.value('default_access_mode')) self.httpUserAgentEdit.setText(settings.value('http_user_agent', plugin_name()))
def __init__(self, parent=None, gml_path=None): super(ImportGmlasPanel, self).__init__(parent) self.setupUi(self) self.databaseWidget.set_accept_mode(QFileDialog.AcceptSave) self.gmlasConfigLineEdit.setText( settings.value("default_gmlas_config")) self.acceptLanguageHeaderInput.setText( settings.value("default_language")) self.set_access_mode(settings.value("default_access_mode")) g = "gml_application_schema_toolbox" self.layers_group.setSettingGroup(g) self.gmlas_bbox_group.setSettingGroup(g) self.gmlas_options_group.setSettingGroup(g) self.target_db_group.setSettingGroup(g) self.parent = parent self._gml_path = gml_path
def load_settings(self): self.featureLimitBox.setValue( int(settings.value('default_maxfeatures'))) self.set_wfs2_services(settings.value('wfs2_services')) self.wfs2ServiceBox.setCurrentText( settings.value('default_wfs2_service')) self.set_import_method(settings.value('default_import_method')) self.gmlasConfigLineEdit.setText( settings.value('default_gmlas_config')) self.languageLineEdit.setText(settings.value('default_language')) self.set_db_type(settings.value('default_db_type')) self.set_access_mode(settings.value('default_access_mode'))
def _sync_get(url): global __network_manager if __network_manager is None: __network_manager = QNetworkAccessManager() __network_manager.setProxy(QgsNetworkAccessManager.instance().proxy()) pause = QEventLoop() req = QNetworkRequest(url) req.setRawHeader(b"Accept", b"application/xml") req.setRawHeader(b"Accept-Language", bytes(settings.value("default_language", "fr"), "utf8")) req.setRawHeader(b"User-Agent", bytes(settings.value('http_user_agent', plugin_name()), "utf8")) reply = __network_manager.get(req) reply.finished.connect(pause.quit) is_ok = [True] def onError(self): is_ok[0] = False pause.quit() reply.error.connect(onError) pause.exec_() return reply, is_ok[0]
def __init__(self, parent=None): super(DownloadWfs2Panel, self).__init__(parent) self.setupUi(self) self.downloadProgressBar.setVisible(False) self.featureLimitBox.setValue( int(settings.value('default_maxfeatures'))) self.refresh_connections() self.connectionCombo.currentTextChanged.connect( self.on_change_connection) self.file_downloaded.connect(self.on_file_downloaded)
def __init__(self, parent=None): super(ImportPanel, self).__init__(parent) self.setupUi(self) self.xml_panel = ImportXmlPanel() self.gmlas_panel = ImportGmlasPanel() self.stackedWidget.addWidget(self.xml_panel) self.stackedWidget.addWidget(self.gmlas_panel) self.xmlModeRadio.toggled.connect(self.on_xml) self.relationalModeRadio.toggled.connect(self.on_gmlas) v = settings.value("default_import_method") self.xmlModeRadio.setChecked(v == 'xml') self.relationalModeRadio.setChecked(v == 'gmlas')
def _sync_get(url): global __network_manager if __network_manager is None: __network_manager = QNetworkAccessManager() __network_manager.setProxy(QgsNetworkAccessManager.instance().proxy()) pause = QEventLoop() req = QNetworkRequest(url) req.setRawHeader(b"Accept", b"application/xml") req.setRawHeader(b"Accept-Language", bytes(settings.value("default_language", "fr"), "utf8")) req.setRawHeader( b"User-Agent", bytes(settings.value("http_user_agent", plugin_name()), "utf8")) reply = __network_manager.get(req) reply.finished.connect(pause.quit) is_ok = [True] def onError(self): is_ok[0] = False pause.quit() reply.error.connect(onError) pause.exec_() return reply, is_ok[0]
def do_load(self, append_to_db=None, append_to_schema=None): gdal.SetConfigOption("OGR_SQLITE_SYNCHRONOUS", "OFF") gdal.SetConfigOption("GDAL_HTTP_UNSAFESSL", "YES") gdal.SetConfigOption("GDAL_HTTP_USERAGENT", settings.value("http_user_agent", plugin_name())) def error_handler(err, err_no, msg): if err >= gdal.CE_Warning: QgsMessageLog.logMessage("{} {}: {}".format(err, err_no, msg), plugin_name()) if append_to_db is None: dest = self.databaseWidget.datasource_name() if dest == "" and self.databaseWidget.format() == "SQLite": with tempfile.NamedTemporaryFile(suffix=".sqlite") as tmp: dest = tmp.name QgsMessageLog.logMessage("Temp SQLITE: {}".format(dest), plugin_name()) if dest.startswith("PG:"): schema = self.databaseWidget.schema() else: schema = None db_format = self.databaseWidget.format() params = self.import_params(dest) else: schema = append_to_schema db_format = "PostgreSQL" if append_to_db.startswith( "PG:") else "SQLite" params = self.import_params(append_to_db) # force append params["accessMode"] = "append" try: QApplication.setOverrideCursor(Qt.WaitCursor) gdal.PushErrorHandler(error_handler) self.translate(params) if append_to_db is None: import_in_qgis(dest, db_format, schema) except InputError as e: e.show() except RuntimeError as e: QMessageBox.warning(None, plugin_name(), e.args[0]) finally: QApplication.restoreOverrideCursor() gdal.PopErrorHandler()
def __init__(self, parent=None): super(DatabaseWidget, self).__init__(parent) self.setupUi(self) self.set_accept_mode(QFileDialog.AcceptOpen) self._pgsql_db = None self.pgsqlFormWidget.setVisible(False) self.pgsqlConnectionsBox.setModel(PgsqlConnectionsModel()) self.pgsqlConnectionsRefreshButton.setIcon( QgsApplication.getThemeIcon('/mActionRefresh.png')) self.addFkeysButton.setIcon( QgsApplication.getThemeIcon('/mActionAdd.svg')) self.dropFkeysButton.setIcon( QgsApplication.getThemeIcon('/mActionRemove.svg')) self.set_format(settings.value('default_db_type'))
def do_load(self, append_to_db = None, append_to_schema = None): gdal.SetConfigOption("OGR_SQLITE_SYNCHRONOUS", "OFF") gdal.SetConfigOption('GDAL_HTTP_UNSAFESSL', 'YES') gdal.SetConfigOption('GDAL_HTTP_USERAGENT', settings.value('http_user_agent', plugin_name())) def error_handler(err, err_no, msg): if err >= gdal.CE_Warning: QgsMessageLog.logMessage("{} {}: {}".format(err, err_no, msg), plugin_name()) if append_to_db is None: dest = self.databaseWidget.datasource_name() if dest == '' and self.databaseWidget.format() == "SQLite": with tempfile.NamedTemporaryFile(suffix='.sqlite') as tmp: dest = tmp.name QgsMessageLog.logMessage("Temp SQLITE: {}".format(dest), plugin_name()) if dest.startswith('PG:'): schema = self.databaseWidget.schema() else: schema = None db_format = self.databaseWidget.format() params = self.import_params(dest) else: schema = append_to_schema db_format = "PostgreSQL" if append_to_db.startswith("PG:") else "SQLite" params = self.import_params(append_to_db) # force append params["accessMode"] = "append" try: QApplication.setOverrideCursor(Qt.WaitCursor) gdal.PushErrorHandler(error_handler) self.translate(params) if append_to_db is None: import_in_qgis(dest, db_format, schema) except InputError as e: e.show() except RuntimeError as e: QMessageBox.warning(None, plugin_name(), e.args[0]) finally: QApplication.restoreOverrideCursor() gdal.PopErrorHandler()
def __init__(self, parent=None, is_input=False): super(DatabaseWidget, self).__init__(parent) self.setupUi(self) self.set_accept_mode(QFileDialog.AcceptOpen) self._pgsql_db = None self._is_input = is_input if not is_input: self.sqlitePathLineEdit.setPlaceholderText("Create a temporary file") self.pgsqlFormWidget.setVisible(False) self.pgsqlConnectionsBox.setModel(PgsqlConnectionsModel()) self.pgsqlConnectionsRefreshButton.setIcon( QgsApplication.getThemeIcon('/mActionRefresh.png')) self.addFkeysButton.setIcon( QgsApplication.getThemeIcon('/mActionAdd.svg')) self.dropFkeysButton.setIcon( QgsApplication.getThemeIcon('/mActionRemove.svg')) self.set_format(settings.value('default_db_type'))