Пример #1
0
    def _refresh_list(self):
        procmgr = procpid.ProcessManager()
        components = procmgr._get_component_pid_list()
        device_list = self.appdata.middleman.get_device_list()

        tree = self.dialog.findChild(QTreeWidget, "TasksTree")
        tree.clear()
        self.btn_stop.setEnabled(False)

        for component in components:
            procmgr = procpid.ProcessManager(component)
            pid = str(procmgr._get_component_pid())
            running = procmgr.is_another_instance_is_running()

            task = self._("Playing software effect").replace("[]", component)
            task_icon = common.get_icon("effects", "play")
            if component == "tray-applet":
                task = self._("Tray Applet")
                task_icon = common.get_icon("general", "tray-applet")
            elif not running:
                task = self._("No longer running")
                task_icon = common.get_icon("general", "cancel")

            device = ""
            device_icon = None
            for device_item in device_list:
                if device_item["serial"] == component:
                    device = device_item["name"]
                    device_icon = device_item["form_factor"]["icon"]

            item = QTreeWidgetItem()
            item.setText(0, task)
            item.setIcon(0, QIcon(task_icon))
            item.setText(1, device)
            if device_icon:
                item.setIcon(1, QIcon(device_icon))
            item.setText(2, pid)
            item._component = component

            if not running:
                item.setText(2, "-")
                item.setDisabled(True)

            tree.addTopLevelItem(item)