def addSourceToBrowser(self, data_source): source = None if data_source['type'] == "TMS": url = data_source['url'][13:] source = ["connections-xyz", data_source['alias'], "", "", "", url, "", "19", "0", data_source["service_name"]] if data_source['type'] == "WMS": url = data_source['url'][4:].split("&")[0] source = ["connections-wms", data_source['alias'], "", "", "", url, "", "19", "0", data_source["service_name"]] if data_source['type'] == "WMTS": url = re.match("^.*url=(.[^&]*)", data_source['url'])[1] source = ["connections-wms", data_source['alias'], "", "", "", url, "", "19", "0", data_source["service_name"]] # print(self.sourcePresentInBrowser(source[0], url)) if source != None and not self.sourcePresentInBrowser(source[0], url): connectionType = source[0] connectionName = source[1] if source[9] is None else source[9] QSettings().setValue("qgis/%s/%s/authcfg" % (connectionType, connectionName), source[2]) QSettings().setValue("qgis/%s/%s/password" % (connectionType, connectionName), source[3]) QSettings().setValue("qgis/%s/%s/referer" % (connectionType, connectionName), source[4]) QSettings().setValue("qgis/%s/%s/url" % (connectionType, connectionName), source[5]) QSettings().setValue("qgis/%s/%s/username" % (connectionType, connectionName), source[6]) QSettings().setValue("qgis/%s/%s/zmax" % (connectionType, connectionName), source[7]) QSettings().setValue("qgis/%s/%s/zmin" % (connectionType, connectionName), source[8]) iface.reloadConnections()
def add_xyz_connections( extra_sources: list = [], remove_existing: bool = True, ) -> None: """ Add XYZ connection for all default and user-specified sources The format for custom sources is: - ``[display name, authcfg, pw, referer, url, username, zmax, zmin]`` :param extra_sources: user-provided list to extend the stock choices :param remove_existing: if True, will clear out old connections before adding new ones """ if remove_existing: remove_xyz_connections() sources = SOURCES + extra_sources # Add sources to browser for source in sources: connectionName = source[0] value_prefix = f"qgis/connections-xyz/{connectionName}" QSettings().setValue(f"{value_prefix}/authcfg", source[1]) QSettings().setValue(f"{value_prefix}/password", source[2]) QSettings().setValue(f"{value_prefix}/referer", source[3]) QSettings().setValue(f"{value_prefix}/url", source[4]) QSettings().setValue(f"{value_prefix}/username", source[5]) QSettings().setValue(f"{value_prefix}/zmax", source[6]) QSettings().setValue(f"{value_prefix}/zmin", source[7]) iface.reloadConnections()
def remove_xyz_connections(): """ Remove all XYZ entries in the Browser """ qs = QSettings() for k in sorted(qs.allKeys()): if "qgis/connections-xyz/" in k: qs.remove(k) iface.reloadConnections()
def remove_postgis_connections() -> None: """ Remove all entries under PostGIS in the Browser """ qs = QSettings() for k in sorted(qs.allKeys()): if "PostgreSQL/connections/" in k: qs.remove(k) iface.reloadConnections()
def add_postgis_connections( dbs_to_ignore: list = ["postgres", "defaultdb", "_dodb"], remove_existing: bool = True, ) -> None: """ Add a database connection for all DBs that exist on the clusters defined in the user's config.txt For more details, see postGIS_tools.get_postGIS_config() :param dbs_to_ignore: list of databases to skip creating entries for :param remove_existing: if True, start by removing the user's DB list """ if remove_existing: remove_postgis_connections() # Read the user's config.txt config, super_config = postGIS_tools.get_postGIS_config() # Iterate over each host defined in the file for host in config: this_config = config[host] # Get a list of all databases on the host host cluster super_uri = postGIS_tools.make_uri(**super_config[host]) db_list = postGIS_tools.get_database_list(super_uri, debug=False) for db in db_list: if db not in dbs_to_ignore: # Define the name it will show in the QGIS Browser entry = f"{db} {host.upper()}" values = { "database": db, "host": this_config["host"], "port": this_config["port"], "username": this_config["username"], "password": this_config["password"], "projectsInDatabase": "true", "savePassword": "******", "saveUsername": "******" } if "sslmode" in this_config: values["sslmode"] = this_config["sslmode"] for value_name in values: val = values[value_name] QSettings().setValue(f"PostgreSQL/connections/{entry}/{value_name}", val) iface.reloadConnections()
def addSourceToBrowser(self, data_source): source = None if data_source['type'] == "TMS": url = data_source['url'][13:] source = [ "connections-xyz", data_source['alias'], "", "", "", url, "", "19", "0" ] if data_source['type'] == "WMS": url = data_source['url'][4:].split("&")[0] source = [ "connections-wms", data_source['alias'], "", "", "", url, "", "19", "0" ] if source != None: connectionType = source[0] connectionName = source[1] QSettings().setValue( "qgis/%s/%s/authcfg" % (connectionType, connectionName), source[2]) QSettings().setValue( "qgis/%s/%s/password" % (connectionType, connectionName), source[3]) QSettings().setValue( "qgis/%s/%s/referer" % (connectionType, connectionName), source[4]) QSettings().setValue( "qgis/%s/%s/url" % (connectionType, connectionName), source[5]) QSettings().setValue( "qgis/%s/%s/username" % (connectionType, connectionName), source[6]) QSettings().setValue( "qgis/%s/%s/zmax" % (connectionType, connectionName), source[7]) QSettings().setValue( "qgis/%s/%s/zmin" % (connectionType, connectionName), source[8]) iface.reloadConnections()
"Map tiles by CartoDB, under CC BY 3.0. Data by OpenStreetMap, under ODbL.", "http://basemaps.cartocdn.com/light_all/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0" ]) sources.append([ "connections-xyz", "Bing VirtualEarth", "", "", "", "http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1", "", "19", "1" ]) # Add sources to browser for source in sources: connectionType = source[0] connectionName = source[1] QSettings().setValue( "qgis/%s/%s/authcfg" % (connectionType, connectionName), source[2]) QSettings().setValue( "qgis/%s/%s/password" % (connectionType, connectionName), source[3]) QSettings().setValue( "qgis/%s/%s/referer" % (connectionType, connectionName), source[4]) QSettings().setValue("qgis/%s/%s/url" % (connectionType, connectionName), source[5]) QSettings().setValue( "qgis/%s/%s/username" % (connectionType, connectionName), source[6]) QSettings().setValue("qgis/%s/%s/zmax" % (connectionType, connectionName), source[7]) QSettings().setValue("qgis/%s/%s/zmin" % (connectionType, connectionName), source[8]) # Update GUI iface.reloadConnections()