Пример #1
0
    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()
Пример #2
0
    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
Пример #6
0
    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