def accept(self): new_ds_info = DataSourceInfo() self.feel_ds_info(new_ds_info) if not self.validate(new_ds_info): return if self.init_with_existing: res = self.save_existing(new_ds_info) else: res = self.create_new(new_ds_info) if res: super(DsEditDialog, self).accept()
def _read_ini_file(self, root, ini_file_path): try: ini_file = codecs.open(os.path.join(root, ini_file_path), 'r', 'utf-8') parser = ConfigParser() parser.readfp(ini_file) ds = DataSourceInfo() # Required ds.id = self.try_read_config(parser, 'general', 'id', reraise=True) ds.type = self.try_read_config(parser, 'general', 'type', reraise=True) ds.is_contrib = self.try_read_config(parser, 'general', 'is_contrib', reraise=True) ds.group = self.try_read_config(parser, 'ui', 'group', reraise=True) ds.alias = self.try_read_config(parser, 'ui', 'alias', reraise=True) ds.icon = self.try_read_config(parser, 'ui', 'icon', reraise=True) # Lic & Terms ds.lic_name = self.try_read_config(parser, 'license', 'name') ds.lic_link = self.try_read_config(parser, 'license', 'link') ds.copyright_text = self.try_read_config(parser, 'license', 'copyright_text') ds.copyright_link = self.try_read_config(parser, 'license', 'copyright_link') ds.terms_of_use = self.try_read_config(parser, 'license', 'terms_of_use') #TMS ds.tms_url = self.try_read_config( parser, 'tms', 'url', reraise=(ds.type == KNOWN_DRIVERS.TMS)) ds.tms_zmin = self.try_read_config_int(parser, 'tms', 'zmin') ds.tms_zmax = self.try_read_config_int(parser, 'tms', 'zmax') #WMS ds.wms_url = self.try_read_config( parser, 'wms', 'url', reraise=(ds.type == KNOWN_DRIVERS.WMS)) ds.wms_params = self.try_read_config(parser, 'wms', 'params') ds.wms_layers = self.try_read_config(parser, 'wms', 'layers') #GDAL if ds.type == KNOWN_DRIVERS.GDAL: gdal_conf = self.try_read_config( parser, 'gdal', 'source_file', reraise=(ds.type == KNOWN_DRIVERS.GDAL)) ds.gdal_source_file = os.path.join(root, gdal_conf) #try read translations posible_trans = parser.items('ui') for key, val in posible_trans: if type(key) is unicode and key == 'alias[%s]' % self.locale: self.translator.append(ds.alias, val) break #Action stuff ds.icon_path = os.path.join(root, ds.icon) ds.action = QAction(QIcon(ds.icon_path), self.tr(ds.alias), None) ds.action.setData(ds) #append to array self.data_sources[ds.id] = ds except Exception, e: error_message = 'INI file can\'t be parsed: ' + e.message QgsMessageLog.logMessage(error_message, level=QgsMessageLog.CRITICAL)
def _read_ini_file(self, root, ini_file_path): try: ini_file = codecs.open(os.path.join(root, ini_file_path), 'r', 'utf-8') parser = ConfigParser() parser.readfp(ini_file) ds = DataSourceInfo() # Required ds.id = self.try_read_config(parser, 'general', 'id', reraise=True) ds.type = self.try_read_config(parser, 'general', 'type', reraise=True) ds.is_contrib = self.try_read_config(parser, 'general', 'is_contrib', reraise=True) ds.group = self.try_read_config(parser, 'ui', 'group', reraise=True) ds.alias = self.try_read_config(parser, 'ui', 'alias', reraise=True) ds.icon = self.try_read_config(parser, 'ui', 'icon', reraise=True) # Lic & Terms ds.lic_name = self.try_read_config(parser, 'license', 'name') ds.lic_link = self.try_read_config(parser, 'license', 'link') ds.copyright_text = self.try_read_config(parser, 'license', 'copyright_text') ds.copyright_link = self.try_read_config(parser, 'license', 'copyright_link') ds.terms_of_use = self.try_read_config(parser, 'license', 'terms_of_use') #TMS ds.tms_url = self.try_read_config(parser, 'tms', 'url', reraise=(ds.type == KNOWN_DRIVERS.TMS)) ds.tms_zmin = self.try_read_config_int(parser, 'tms', 'zmin') ds.tms_zmax = self.try_read_config_int(parser, 'tms', 'zmax') ds.tms_crs = self.try_read_config_int(parser, 'tms', 'crs') ds.tms_proj = self.try_read_config(parser, 'tms', 'proj') ds.tms_y_origin_top = self.try_read_config_int(parser, 'tms', 'y_origin_top') #WMS ds.wms_url = self.try_read_config(parser, 'wms', 'url', reraise=(ds.type == KNOWN_DRIVERS.WMS)) ds.wms_params = self.try_read_config(parser, 'wms', 'params') ds.wms_layers = self.try_read_config(parser, 'wms', 'layers') ds.wms_turn_over = self.try_read_config_bool(parser, 'wms', 'turn_over') #GDAL if ds.type == KNOWN_DRIVERS.GDAL: gdal_conf = self.try_read_config(parser, 'gdal', 'source_file', reraise=(ds.type == KNOWN_DRIVERS.GDAL)) ds.gdal_source_file = os.path.join(root, gdal_conf) #try read translations posible_trans = parser.items('ui') for key, val in posible_trans: if type(key) is unicode and key == 'alias[%s]' % self.locale: self.translator.append(ds.alias, val) break #Action stuff ds.icon_path = os.path.join(root, ds.icon) ds.action = QAction(QIcon(ds.icon_path), self.tr(ds.alias), None) ds.action.setData(ds) #append to array self.data_sources[ds.id] = ds except Exception, e: error_message = 'metadata.ini file in %s can\'t be parsed: %s' % (root, e.message) QgsMessageLog.logMessage(error_message, level=QgsMessageLog.CRITICAL)
def read_from_ini(cls, ini_file_path): translator = CustomTranslator() locale = Locale.get_locale() dir_path = os.path.abspath(os.path.join(ini_file_path, os.path.pardir)) ini_file = codecs.open(ini_file_path, "r", "utf-8") parser = ConfigParser() parser.readfp(ini_file) ds = DataSourceInfo() # Required ds.id = ConfigReaderHelper.try_read_config(parser, "general", "id", reraise=True) ds.type = ConfigReaderHelper.try_read_config(parser, "general", "type", reraise=True) ds.group = ConfigReaderHelper.try_read_config(parser, "ui", "group", reraise=True) ds.alias = ConfigReaderHelper.try_read_config(parser, "ui", "alias", reraise=True) ds.icon = ConfigReaderHelper.try_read_config(parser, "ui", "icon") # Lic & Terms ds.lic_name = ConfigReaderHelper.try_read_config(parser, "license", "name") ds.lic_link = ConfigReaderHelper.try_read_config(parser, "license", "link") ds.copyright_text = ConfigReaderHelper.try_read_config(parser, "license", "copyright_text") ds.copyright_link = ConfigReaderHelper.try_read_config(parser, "license", "copyright_link") ds.terms_of_use = ConfigReaderHelper.try_read_config(parser, "license", "terms_of_use") # TMS ds.tms_url = ConfigReaderHelper.try_read_config(parser, "tms", "url", reraise=(ds.type == KNOWN_DRIVERS.TMS)) ds.tms_zmin = ConfigReaderHelper.try_read_config_int(parser, "tms", "zmin") ds.tms_zmax = ConfigReaderHelper.try_read_config_int(parser, "tms", "zmax") ds.tms_y_origin_top = ConfigReaderHelper.try_read_config_int(parser, "tms", "y_origin_top") ds.tms_epsg_crs_id = ConfigReaderHelper.try_read_config_int(parser, "tms", "epsg_crs_id") ds.tms_postgis_crs_id = ConfigReaderHelper.try_read_config_int(parser, "tms", "postgis_crs_id") ds.tms_custom_proj = ConfigReaderHelper.try_read_config(parser, "tms", "custom_proj") # WMS ds.wms_url = ConfigReaderHelper.try_read_config(parser, "wms", "url", reraise=(ds.type == KNOWN_DRIVERS.WMS)) ds.wms_params = ConfigReaderHelper.try_read_config(parser, "wms", "params") ds.wms_layers = ConfigReaderHelper.try_read_config(parser, "wms", "layers") ds.wms_turn_over = ConfigReaderHelper.try_read_config_bool(parser, "wms", "turn_over") # GDAL if ds.type == KNOWN_DRIVERS.GDAL: gdal_conf = ConfigReaderHelper.try_read_config( parser, "gdal", "source_file", reraise=(ds.type == KNOWN_DRIVERS.GDAL) ) ds.gdal_source_file = os.path.join(dir_path, gdal_conf) # WMS ds.wfs_url = ConfigReaderHelper.try_read_config(parser, "wfs", "url", reraise=(ds.type == KNOWN_DRIVERS.WFS)) # ds.wfs_layers = ConfigReaderHelper.try_read_config(parser, 'wfs', 'layers') # try read translations posible_trans = parser.items("ui") for key, val in posible_trans: if type(key) is unicode and key == "alias[%s]" % locale: translator.append(ds.alias, val) break # internal stuff ds.file_path = ini_file_path ds.icon_path = os.path.join(dir_path, ds.icon) if ds.icon else None return ds
def read_from_ini(cls, ini_file_path): translator = CustomTranslator() locale = Locale.get_locale() dir_path = os.path.abspath(os.path.join(ini_file_path, os.path.pardir)) ini_file = codecs.open(ini_file_path, 'r', 'utf-8') parser = ConfigParser() parser.readfp(ini_file) ds = DataSourceInfo() # Required ds.id = ConfigReaderHelper.try_read_config(parser, 'general', 'id', reraise=True) ds.type = ConfigReaderHelper.try_read_config(parser, 'general', 'type', reraise=True) ds.group = ConfigReaderHelper.try_read_config(parser, 'ui', 'group', reraise=True) ds.alias = ConfigReaderHelper.try_read_config(parser, 'ui', 'alias', reraise=True) ds.icon = ConfigReaderHelper.try_read_config(parser, 'ui', 'icon') # Lic & Terms ds.lic_name = ConfigReaderHelper.try_read_config( parser, 'license', 'name') ds.lic_link = ConfigReaderHelper.try_read_config( parser, 'license', 'link') ds.copyright_text = ConfigReaderHelper.try_read_config( parser, 'license', 'copyright_text') ds.copyright_link = ConfigReaderHelper.try_read_config( parser, 'license', 'copyright_link') ds.terms_of_use = ConfigReaderHelper.try_read_config( parser, 'license', 'terms_of_use') #TMS ds.tms_url = ConfigReaderHelper.try_read_config( parser, 'tms', 'url', reraise=(ds.type == KNOWN_DRIVERS.TMS)) ds.tms_zmin = ConfigReaderHelper.try_read_config_int( parser, 'tms', 'zmin') ds.tms_zmax = ConfigReaderHelper.try_read_config_int( parser, 'tms', 'zmax') ds.tms_y_origin_top = ConfigReaderHelper.try_read_config_int( parser, 'tms', 'y_origin_top') ds.tms_epsg_crs_id = ConfigReaderHelper.try_read_config_int( parser, 'tms', 'epsg_crs_id') ds.tms_postgis_crs_id = ConfigReaderHelper.try_read_config_int( parser, 'tms', 'postgis_crs_id') ds.tms_custom_proj = ConfigReaderHelper.try_read_config( parser, 'tms', 'custom_proj') #WMS ds.wms_url = ConfigReaderHelper.try_read_config( parser, 'wms', 'url', reraise=(ds.type == KNOWN_DRIVERS.WMS)) ds.wms_params = ConfigReaderHelper.try_read_config( parser, 'wms', 'params') ds.wms_layers = ConfigReaderHelper.try_read_config( parser, 'wms', 'layers') ds.wms_turn_over = ConfigReaderHelper.try_read_config_bool( parser, 'wms', 'turn_over') #GDAL if ds.type == KNOWN_DRIVERS.GDAL: gdal_conf = ConfigReaderHelper.try_read_config( parser, 'gdal', 'source_file', reraise=(ds.type == KNOWN_DRIVERS.GDAL)) ds.gdal_source_file = os.path.join(dir_path, gdal_conf) #WMS ds.wfs_url = ConfigReaderHelper.try_read_config( parser, 'wfs', 'url', reraise=(ds.type == KNOWN_DRIVERS.WFS)) # ds.wfs_layers = ConfigReaderHelper.try_read_config(parser, 'wfs', 'layers') #try read translations posible_trans = parser.items('ui') for key, val in posible_trans: if type(key) is unicode and key == 'alias[%s]' % locale: translator.append(ds.alias, val) break #internal stuff ds.file_path = ini_file_path ds.icon_path = os.path.join(dir_path, ds.icon) if ds.icon else None return ds
def read_from_json(cls, json_data): ds = DataSourceInfo() # Required ds.id = json_data['id'] ds.type = json_data['type'] ds.group = None ds.alias = json_data['name'] ds.icon = None # Lic & Terms ds.lic_name = json_data['license_name'] ds.lic_link = json_data['license_url'] ds.copyright_text = json_data['copyright_text'] ds.copyright_link = json_data['copyright_url'] ds.terms_of_use = json_data['terms_of_use_url'] #TMS if ds.type.lower() == KNOWN_DRIVERS.TMS.lower(): ds.tms_url = json_data['url'] ds.tms_zmin = json_data['z_min'] ds.tms_zmax = json_data['z_max'] try: ds.tms_y_origin_top = int(json_data.get('y_origin_top')) except: pass ds.tms_epsg_crs_id = json_data['epsg'] ds.tms_postgis_crs_id = None ds.tms_custom_proj = None #WMS if ds.type.lower() == KNOWN_DRIVERS.WMS.lower(): ds.wms_url = json_data['url'] ds.wms_params = json_data['params'] ds.wms_layers = json_data['layers'] ds.wms_turn_over = json_data['turn_over'] ds.format = json_data['format'] #WFS if ds.type.lower() == KNOWN_DRIVERS.WFS.lower(): ds.wfs_url = json_data['url'] # ds.wfs_layers = ConfigReaderHelper.try_read_config(parser, 'wfs', 'layers') #GEOJSON if ds.type.lower() == KNOWN_DRIVERS.GEOJSON.lower(): ds.geojson_url = json_data['url'] #internal stuff #ds.file_path = ini_file_path #ds.icon_path = os.path.join(dir_path, ds.icon) if ds.icon else None return ds
def read_from_ini(cls, ini_file_path): translator = CustomTranslator() locale = Locale.get_locale() dir_path = os.path.abspath(os.path.join(ini_file_path, os.path.pardir)) ini_file = codecs.open(ini_file_path, 'r', 'utf-8') parser = ConfigParser() parser.readfp(ini_file) ds = DataSourceInfo() # Required ds.id = ConfigReaderHelper.try_read_config(parser, 'general', 'id', reraise=True) ds.type = ConfigReaderHelper.try_read_config(parser, 'general', 'type', reraise=True) ds.group = ConfigReaderHelper.try_read_config(parser, 'ui', 'group', reraise=True) ds.alias = ConfigReaderHelper.try_read_config(parser, 'ui', 'alias', reraise=True) ds.icon = ConfigReaderHelper.try_read_config(parser, 'ui', 'icon') # Lic & Terms ds.lic_name = ConfigReaderHelper.try_read_config(parser, 'license', 'name') ds.lic_link = ConfigReaderHelper.try_read_config(parser, 'license', 'link') ds.copyright_text = ConfigReaderHelper.try_read_config(parser, 'license', 'copyright_text') ds.copyright_link = ConfigReaderHelper.try_read_config(parser, 'license', 'copyright_link') ds.terms_of_use = ConfigReaderHelper.try_read_config(parser, 'license', 'terms_of_use') #TMS ds.tms_url = ConfigReaderHelper.try_read_config(parser, 'tms', 'url', reraise=(ds.type == KNOWN_DRIVERS.TMS)) ds.tms_zmin = ConfigReaderHelper.try_read_config_int(parser, 'tms', 'zmin') ds.tms_zmax = ConfigReaderHelper.try_read_config_int(parser, 'tms', 'zmax') ds.tms_y_origin_top = ConfigReaderHelper.try_read_config_int(parser, 'tms', 'y_origin_top') ds.tms_epsg_crs_id = ConfigReaderHelper.try_read_config_int(parser, 'tms', 'epsg_crs_id') ds.tms_postgis_crs_id = ConfigReaderHelper.try_read_config_int(parser, 'tms', 'postgis_crs_id') ds.tms_custom_proj = ConfigReaderHelper.try_read_config(parser, 'tms', 'custom_proj') #WMS ds.wms_url = ConfigReaderHelper.try_read_config(parser, 'wms', 'url', reraise=(ds.type == KNOWN_DRIVERS.WMS)) ds.wms_params = ConfigReaderHelper.try_read_config(parser, 'wms', 'params') ds.wms_layers = ConfigReaderHelper.try_read_config(parser, 'wms', 'layers') ds.wms_turn_over = ConfigReaderHelper.try_read_config_bool(parser, 'wms', 'turn_over') #GDAL if ds.type == KNOWN_DRIVERS.GDAL: gdal_conf = ConfigReaderHelper.try_read_config(parser, 'gdal', 'source_file', reraise=(ds.type == KNOWN_DRIVERS.GDAL)) ds.gdal_source_file = os.path.join(dir_path, gdal_conf) #try read translations posible_trans = parser.items('ui') for key, val in posible_trans: if type(key) is unicode and key == 'alias[%s]' % locale: translator.append(ds.alias, val) break #internal stuff ds.file_path = ini_file_path ds.icon_path = os.path.join(dir_path, ds.icon) if ds.icon else None return ds