Пример #1
0
    def _load_layer_on_qgis(self, resource):
        def request_failed(error):
            self.request_error = error
            self.update_status(u'Requisição retornou um erro')
            MessageBox.critical(error, u'Requisição retornou um erro')

        self.request_error = False

        self.timer.stop()
        resource.request_started.connect(self.start_request)
        resource.request_progress.connect(self.download_progress)
        resource.request_error.connect(request_failed)
        resource.request_finished.connect(self.trigger_reset_status)

        # Trigger download of data and events for user feedback
        resource.data()

        if not self.request_error:
            layer = Plugin.create_layer(resource)

            if layer:
                Layer.add(layer)

            if layer.featureCount() == 0:
                Logging.info(
                    u'{} retornou conjunto vazio de dados'.format(
                        resource.iri), u'IBGEVisualizer')
                MessageBox.info(u'URL retornou conjunto vazio')

        else:
            raise Exception(self.request_error)
    def _itemDoubleClicked_event(self, item):
        iri = item.text(1)

        item_has_children = item.childCount() > 0
        if item_has_children:
            return

        resource = ResourceManager.load(iri)
        if resource.error:
            MessageBox.critical(u'Link está indisponível ou fora do ar.\n {}'.format(resource.iri), u'Link indisponível')
            return

        # Verifica se é um entrypoint com layers ainda não carregadas
        if resource.is_entry_point():
            item.set_icon_entry_point()
            self.add(resource, item)
            self.branch_resource_double_clicked.emit(item)
            return

        self.leaf_resource_double_clicked.emit(item)
Пример #3
0
    def _bt_remove_resource_clicked(self):
        selected_items = self.list_resource.selectedItems()

        if not selected_items:
            return

        confirm = MessageBox.question(u'Deseja realmente remover o recurso selecionado?', u'Remover Recurso')

        if confirm:
            memorized_urls = Config.get('memo_urls')

            item_name = selected_items[0].text(0)

            if item_name in memorized_urls:
                index = self.list_resource.indexOfTopLevelItem(selected_items[0])
                self.list_resource.takeTopLevelItem(index)

                memorized_urls.pop(item_name)
                Config.update_dict('memo_urls', memorized_urls)
Пример #4
0
 def request_failed(error):
     self.request_error = error
     self.update_status(u'Requisição retornou um erro')
     MessageBox.critical(error, u'Requisição retornou um erro')