Ejemplo n.º 1
0
    def createChildren(self):
        if not self.mc and self.error:
            error_item = QgsErrorItem(self, self.error, "/Mergin/error")
            error_item.setIcon(
                QIcon(os.path.join(icon_path,
                                   "exclamation-triangle-solid.svg")))
            sip.transferto(error_item, self)
            return [error_item]

        items = []
        my_projects = MerginGroupItem(self, "My projects", "created",
                                      "user-solid.svg", 1)
        my_projects.setState(QgsDataItem.Populated)
        my_projects.refresh()
        sip.transferto(my_projects, self)
        items.append(my_projects)

        shared_projects = MerginGroupItem(self, "Shared with me", "shared",
                                          "user-friends-solid.svg", 2)
        shared_projects.setState(QgsDataItem.Populated)
        shared_projects.refresh()
        sip.transferto(shared_projects, self)
        items.append(shared_projects)

        all_projects = MerginGroupItem(self, "Explore", None, "list-solid.svg",
                                       3)
        all_projects.setState(QgsDataItem.Populated)
        all_projects.refresh()
        sip.transferto(all_projects, self)
        items.append(all_projects)

        return items
Ejemplo n.º 2
0
    def createChildren(self):
        mc = self.parent().mc
        if not mc:
            error_item = QgsErrorItem(
                self, "Failed to login please check the configuration",
                "/Mergin/error")
            sip.transferto(error_item, self)
            return [error_item]
        try:
            projects = mc.projects_list(flag=self.filter)
        except URLError:
            error_item = QgsErrorItem(self,
                                      "Failed to get projects from server",
                                      "/Mergin/error")
            sip.transferto(error_item, self)
            return [error_item]
        except Exception as err:
            error_item = QgsErrorItem(self, "Error: {}".format(str(err)),
                                      "/Mergin/error")
            sip.transferto(error_item, self)
            return [error_item]

        items = []
        for project in projects:
            item = MerginProjectItem(self, project, mc)
            item.setState(QgsDataItem.Populated)  # make it non-expandable
            sip.transferto(item, self)
            items.append(item)
        return items
Ejemplo n.º 3
0
    def createChildren(self):
        if self.error or self.mc is None:
            self.error = self.error if self.error else "Not configured!"
            error_item = QgsErrorItem(self, self.error, "Mergin/error")
            error_item.setIcon(QIcon(icon_path("exclamation-triangle-solid.svg")))
            sip.transferto(error_item, self)
            return [error_item]

        items = []
        my_projects = MerginGroupItem(self, "My projects", "created", "user-solid.svg", 1, self.plugin)
        my_projects.setState(QgsDataItem.Populated)
        my_projects.refresh()
        sip.transferto(my_projects, self)
        items.append(my_projects)

        shared_projects = MerginGroupItem(self, "Shared with me", "shared", "user-friends-solid.svg", 2, self.plugin)
        shared_projects.setState(QgsDataItem.Populated)
        shared_projects.refresh()
        sip.transferto(shared_projects, self)
        items.append(shared_projects)

        all_projects = MerginGroupItem(self, "Explore", None, "list-solid.svg", 3, self.plugin)
        all_projects.setState(QgsDataItem.Populated)
        all_projects.refresh()
        sip.transferto(all_projects, self)
        items.append(all_projects)

        return items
Ejemplo n.º 4
0
    def createChildren(self):
        # Runs in a thread!
        self.setState(QgsDataItem.Populating)

        error_item = QgsErrorItem(self, "Bookmark conversion requires a licensed version of the SLYR plugin",
                                  self.path() + '/error')
        self.child_items.append(error_item)
Ejemplo n.º 5
0
    def createChildren(self):  # pylint: disable=missing-function-docstring
        # Runs in a thread!

        if self.path().lower().endswith('.lyrx'):
            return []

        self.setState(QgsDataItem.Populating)
        if not self.object:
            with open(self.path(), 'rb') as f:

                try:
                    stream = Stream(f, False, force_layer=True, offset=0)
                    self.object = stream.read_object()
                except RequiresLicenseException as e:
                    error_item = QgsErrorItem(self, str(e),
                                              self.path() + '/error')
                    self.child_items.append(error_item)
                    return self.child_items

        def add_layer(layer):
            self.child_items.append(
                EsriLyrItem(self, layer.name, '', layer, self.path()))

        def add_group(group):
            self.child_items.append(
                EsriLyrItem(self, group.name, '', group, self.path()))

        if LayerConverter.is_layer(self.object):
            add_layer(self.object)
        else:
            add_group(self.object)
        self.setState(QgsDataItem.Populated)
        return self.child_items
Ejemplo n.º 6
0
    def createChildren(self):  # pylint: disable=missing-function-docstring
        # Runs in a thread!
        self.setState(QgsDataItem.Populating)

        error_item = QgsErrorItem(
            self,
            "Bookmark conversion requires a licensed version of the SLYR plugin",
            self.path() + '/error')
        self.child_items.append(error_item)
        return self.child_items
Ejemplo n.º 7
0
 def fetch_projects(self, page=1, per_page=PROJS_PER_PAGE):
     """Get paginated projects list from Mergin service. If anything goes wrong, return an error item."""
     if self.project_manager is None:
         error_item = QgsErrorItem(self, "Failed to log in. Please check the configuration", "/Mergin/error")
         sip.transferto(error_item, self)
         return [error_item]
     try:
         resp = self.project_manager.mc.paginated_projects_list(
             flag=self.filter, page=page, per_page=per_page, order_params="namespace_asc,name_asc")
         self.projects += resp["projects"]
         self.total_projects_count = int(resp["count"]) if is_number(resp["count"]) else 0
     except URLError:
         error_item = QgsErrorItem(self, "Failed to get projects from server", "/Mergin/error")
         sip.transferto(error_item, self)
         return [error_item]
     except Exception as err:
         error_item = QgsErrorItem(self, "Error: {}".format(str(err)), "/Mergin/error")
         sip.transferto(error_item, self)
         return [error_item]
     return None