예제 #1
0
    def add(self,
            seq,
            text,
            position,
            foreground=False,
            background=False,
            icon=False):
        from PyQt4.QtGui import QTreeWidgetItem

        item = QTreeWidgetItem()

        item.setText(0, text)
        item.setData(0, Qt.UserRole, position)

        if foreground:
            item.setForeground(0, foreground)

        if background:
            item.setBackground(0, background)

        if icon:
            item.setIcon(0, icon)

        seq.append(item)
        return item
    def fillTree(self):
        self.profilesTree.clear()

        allProfiles = defaultdict(list)
        for v in profiles.values():
            allProfiles[v.group].append(v)

        profileIcon = QIcon(os.path.join(os.path.dirname(__file__), os.pardir,
                                               'icons', 'profile.png'))

        for group, groupProfiles in allProfiles.iteritems():
            groupItem = QTreeWidgetItem()
            groupItem.setText(0, group)
            for profile in groupProfiles:
                profileItem = QTreeWidgetItem()
                profileItem.profile = profile
                profileItem.isCustom = False
                profileItem.setText(0, profile.name)
                profileItem.setIcon(0, profileIcon)
                groupItem.addChild(profileItem)
            self.profilesTree.addTopLevelItem(groupItem)

        groupItem = QTreeWidgetItem()
        groupItem.setText(0, self.tr("User profiles"))
        for profile in customProfiles():
            profileItem = QTreeWidgetItem()
            profileItem.profile = profile
            profileItem.isCustom = True
            profileItem.setText(0, profile.name)
            profileItem.setIcon(0, profileIcon)
            groupItem.addChild(profileItem)
        self.profilesTree.addTopLevelItem(groupItem)

        self.profilesTree.expandAll()
예제 #3
0
파일: treeloader.py 프로젝트: wondie/stdm
    def buildParentItem(self, dcollection, title, rootresource):
        '''
        Builds tree widget items from a dictionary.
        '''
        rtItem = QTreeWidgetItem()
        rtItem.setText(0, title)
        rtItem.setIcon(0, QIcon(rootresource))

        topLevelItems = []

        for k, v in dcollection.iteritems():
            parentItem = QTreeWidgetItem()

            if isinstance(v, dict):
                parentItem.setText(0, k)

                for kc, vc in v.iteritems():
                    child = QTreeWidgetItem()
                    child.setText(0, self._combine(kc, vc))
                    parentItem.addChild(child)

            else:
                parentItem.setText(0, self._combine(k, v))

            topLevelItems.append(parentItem)

        rtItem.addChildren(topLevelItems)
        rtItem.setExpanded(True)

        return rtItem
예제 #4
0
		def _add_children(item, mod):
			for ref in mod.refs:
				try:
					childMod = self.project.get_module_at_filename(ref)
				except KeyError:
					childMod = self.project.get_module_at_dottedname(ref)

				if childMod in visited: return
				visited.add(childMod)

				child = QTreeWidgetItem(item)
				child.setText(0, ref)
				self._setup_font(child, ref, childMod.owner)
				child.setIcon(0, self._select_icon(childMod.owner))
				child.setData(0, self.TYPE_MODULE, childMod)
				child.setData(0, self.TYPE_NODE, None)
				item.addChild(child)
				_add_children(child, childMod)

			for name, sym in mod.symbols.items():
				if not isinstance(sym, Name): continue
				child = QTreeWidgetItem(item)
				child.setText(0, name)
				self._setup_font(child, name, sym)
				child.setIcon(0, self._select_icon(sym))
				child.setData(0, self.TYPE_MODULE, mod)
				child.setData(0, self.TYPE_NODE, mod.symbols[name])
				item.addChild(child)
    def loadPlaylistFromIndex(self, ModelIndex):
        playlist = ModelIndex.data(Qt.UserRole).toPyObject()[0]
        self.emit(SIGNAL("start_loading"))
        print("Request for Playlist")
        thread = WorkerThread(playlist.listTracks)
        thread.start()
        while not thread.isFinished():
            QApplication.processEvents()
        tracks = thread.result()
        print("Request Done.")
        #tracks = playlist.listTracks()

        for Id, trackObj in tracks.iteritems():
            title = trackObj.title
            print("Title:", title)
            print("Modelindex:", ModelIndex)

            parentOfTitel = self.itemFromIndex(ModelIndex)

            entry2 = QTreeWidgetItem(parentOfTitel, [unicode(title)])
            entry2.setIcon(0, QIcon(":/mp3.png"))
            entry2.setData(0, Qt.UserRole, QVariant((trackObj, )))
            self.parentFromAlbum[unicode(title)] = entry2
            print("Created: ", unicode(title))

        self.emit(SIGNAL("stop_loading"))
 def createActionItem( self, key ):
     """
     Creates a new action item for the inputed key.
     
     :param      key | <str>
     
     :return     <QTreeWidgetItem>
     """
     action = self._actions.get(key)
     if ( not action ):
         text = 'Missing Action: %s' % key
         item = QTreeWidgetItem([text])
         ico = projexui.resources.find('img/log/warning.png')
         item.setIcon(0, QIcon(ico))
     else:
         item = QTreeWidgetItem([str(action.text()).replace('&', '')])
         item.setIcon(0, action.icon())
     
     item.setSizeHint(0, QSize(120, 20))
     item.setData(0, Qt.UserRole, qt.wrapVariant(key))
     
     flags = item.flags()
     flags ^= Qt.ItemIsDropEnabled
     item.setFlags(flags)
     
     return item
예제 #7
0
    def createActionItem(self, key):
        """
        Creates a new action item for the inputed key.
        
        :param      key | <str>
        
        :return     <QTreeWidgetItem>
        """
        action = self._actions.get(key)
        if (not action):
            text = 'Missing Action: %s' % key
            item = QTreeWidgetItem([text])
            ico = projexui.resources.find('img/log/warning.png')
            item.setIcon(0, QIcon(ico))
        else:
            item = QTreeWidgetItem([str(action.text()).replace('&', '')])
            item.setIcon(0, action.icon())

        item.setSizeHint(0, QSize(120, 20))
        item.setData(0, Qt.UserRole, qt.wrapVariant(key))

        flags = item.flags()
        flags ^= Qt.ItemIsDropEnabled
        item.setFlags(flags)

        return item
예제 #8
0
파일: uisettings.py 프로젝트: polovik/enki
 def appendPage(self, path, widget, icon=None):
     """Append page to the tree. Called by a plugin for creating own page. Example:
     ::
     
         widget = MitSchemeSettings(dialog)
         dialog.appendPage(u"Modes/MIT Scheme", widget, QIcon(':/enkiicons/languages/scheme.png'))
     
     """
     pathParts = path.split('/')
     if len(pathParts) == 1:
         parentItem = None
     else:
         parentItem = self._itemByPath(pathParts[:-1])
     
     twItem = QTreeWidgetItem([pathParts[-1]])
     if icon is not None:
         twItem.setIcon(0, icon)
     
     if parentItem is not None:
         parentItem.addChild(twItem)
     else:
         self.twMenu.addTopLevelItem(twItem)
     
     self.swPages.addWidget(widget)
     self._pageForItem[path] = widget
예제 #9
0
 def add_modify_account(self, add=False):
     dlg = AccountSettingsDialog(self)
     if not add:
         item = self.widgets.accounts.currentItem()
         if not item:
             return
         account = self.account_items.get(item)
         if not account:
             return
         #account = item.data(0, ITEM_PLACEHOLDER_ROLE).toPyObject()
         dlg.fill_from(account)
     else:
         item = QTreeWidgetItem()
     result = dlg.exec_()
     
     if not result == QDialog.Accepted:
         return
     new_a = dlg.values
     
     item.setText(0, new_a["name"])
     #get icon and name...
     name, icon = getProtoIconAndName(getattr(yobotproto, new_a["improto"], -1))
     item.setText(1, name)
     item.setIcon(1, icon)
     if add:
         if self.account_exists(new_a):
             print "account already exists.. not adding"
             return
         item.setData(0, ITEM_PLACEHOLDER_ROLE, new_a)
         self.widgets.accounts.addTopLevelItem(item)
         self.config.accounts.append(new_a)
     else:
         account.update(new_a)
예제 #10
0
    def _loadDir(self, base_path, tree):
        for element in os.listdir(base_path):
            path = os.path.join(base_path, element)
            if (not os.path.isdir(path)) and (not path.endswith(".csv")):
                continue

            if os.path.isdir(path):
                parent_itm = QTreeWidgetItem(tree, [element])
                self._loadDir(path, parent_itm)
                if parent_itm.childCount() == 0:
                    parent = parent_itm.parent()
                    root = parent_itm.treeWidget().invisibleRootItem()
                    (parent or root).removeChild(parent_itm)
                else:
                    parent_itm.setIcon(
                        0,
                        QIcon(
                            "/usr/share/icons/ubuntu-mono-light/places/16/folder-home.svg"
                        ))
                    # parent_itm.setExpanded(True)
            else:
                if Graph.getGraphDesc(path) is None:
                    continue
                # item = GraphFileTreeWidgetItem(tree, element)
                item = QTreeWidgetItem(tree, [element])
                item.setData(0, Qt.UserRole, path)
                item.setCheckState(0, Qt.Unchecked)
    def __init__(self):
        super(LessonSelector, self).__init__()
        self.setupUi(self)

        self.lesson = None

        allLessons = defaultdict(list)
        for lesson in lessons:
            allLessons[lesson.group].append(lesson)

        lessonIcon = QIcon(os.path.dirname(__file__) + '/lesson.gif')
        for group, groupLessons in allLessons.iteritems():
            groupItem = QTreeWidgetItem()
            groupItem.setText(0, group)
            for lesson in groupLessons:
                lessonItem = QTreeWidgetItem()
                lessonItem.lesson = lesson
                lessonItem.setText(0, lesson.name)
                lessonItem.setIcon(0, lessonIcon)
                groupItem.addChild(lessonItem)
            self.lessonsTree.addTopLevelItem(groupItem)

        self.lessonsTree.sortItems(0, 0)

        self.lessonsTree.expandAll()

        self.lessonsTree.currentItemChanged.connect(self.currentItemChanged)
        self.lessonsTree.itemDoubleClicked.connect(self.itemDoubleClicked)

        self.buttonBox.accepted.connect(self.okPressed)
        self.buttonBox.rejected.connect(self.cancelPressed)

        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
예제 #12
0
    def appendPage(self, path, widget, icon=None):
        """Append page to the tree. Called by a plugin for creating own page. Example:
        ::

            widget = MitSchemeSettings(dialog)
            dialog.appendPage(u"Modes/MIT Scheme", widget, QIcon(':/enkiicons/languages/scheme.png'))

        """
        pathParts = path.split('/')
        if len(pathParts) == 1:
            parentItem = None
        else:
            parentItem = self._itemByPath(pathParts[:-1])

        twItem = QTreeWidgetItem([pathParts[-1]])
        if icon is not None:
            twItem.setIcon(0, icon)
        else:
            twItem.setIcon(0, QIcon(':/enkiicons/transparent.png'))

        if parentItem is not None:
            parentItem.addChild(twItem)
            self.twMenu.expandAll()
        else:
            self.twMenu.addTopLevelItem(twItem)

        self.swPages.addWidget(widget)
        self._pageForItem[path] = widget
예제 #13
0
    def loadPlaylistFromIndex(self, ModelIndex):
        playlist = ModelIndex.data(Qt.UserRole).toPyObject()[0]
        self.emit(SIGNAL("start_loading"))
        print("Request for Playlist")
        thread = WorkerThread(playlist.listTracks)
        thread.start()
        while not thread.isFinished():
            QApplication.processEvents()
        tracks = thread.result()
        print("Request Done.")
        #tracks = playlist.listTracks()

        for Id, trackObj in tracks.iteritems():
            title = trackObj.title
            print("Title:", title)
            print("Modelindex:", ModelIndex)

            parentOfTitel = self.itemFromIndex(ModelIndex)

            entry2 = QTreeWidgetItem(parentOfTitel, [unicode(title)])
            entry2.setIcon(0, QIcon(":/mp3.png"))
            entry2.setData(0, Qt.UserRole, QVariant((trackObj,)))
            self.parentFromAlbum[unicode(title)] = entry2
            print("Created: ", unicode(title))


        self.emit(SIGNAL("stop_loading"))
예제 #14
0
 def createTree(self):
     nodes = self._createTree(list(self.model))
     root = QTreeWidgetItem([tr("Network interfaces")])
     root.setIcon(0, QIcon(":/icons-32/home.png"))
     unsetFlag(root, Qt.ItemIsSelectable)
     for node in nodes:
         root.addChild(node)
     return [root]
예제 #15
0
 def create_dir_item(dirname, parent):
     if dirname != root_path:
         displayed_name = osp.basename(dirname)
     else:
         displayed_name = dirname
     item = QTreeWidgetItem(parent, [displayed_name])
     item.setIcon(0, get_std_icon('DirClosedIcon'))
     return item
예제 #16
0
 def create_dir_item(dirname, parent):
     if dirname != root_path:
         displayed_name = osp.basename(dirname)
     else:
         displayed_name = dirname
     item = QTreeWidgetItem(parent, [displayed_name])
     item.setIcon(0, get_std_icon('DirClosedIcon'))
     return item
예제 #17
0
 def createChild(self, name, parent=None, icon=None):
     """
     Create a new child for to the parent item.
     If the parent is None it add to the root.
     """
     item = QTreeWidgetItem(self, [name]) if(
         parent is None) else QTreeWidgetItem(parent, [name])
     if icon is not None:
         item.setIcon(0, QtGui.QIcon(icon))
     return item
예제 #18
0
 def createChild(self, name, parent=None, icon=None):
     """
     Create a new child for to the parent item.
     If the parent is None it add to the root.
     """
     item = QTreeWidgetItem(self, [name]) if (
         parent is None) else QTreeWidgetItem(parent, [name])
     if icon is not None:
         item.setIcon(0, QtGui.QIcon(icon))
     return item
예제 #19
0
    def makeTreeItem(self,item):#Overload if needed
        if item.getType() != 'VisitAnimal':
            item = SqlHandler.VisitAnimal(item)
        
        textString = item.stringList()
        textString.insert(self.iconplace, '')
        treeItem = QTreeWidgetItem(self.ui.treeWidget, textString)
        treeItem.setIcon(self.iconplace,self.getIcon(item.animal.picurePath()))
        treeItem.setData(0,0,item)

        return treeItem
예제 #20
0
    def __setup_ui(self):
        #self.setText(0, self.__con_name)
        self.setIcon(0, QIcon(ICON_IDR + 'database.png'))

        self.__db_item = QTreeWidgetItem(self)
        self.__db_item.setIcon(0, QIcon(ICON_IDR + 'dir_close.png'))
        self.__db_item.setText(0, self.__schema_name)

        for table in self.__table_names:
            table_item = QTreeWidgetItem(self.__db_item)
            table_item.setIcon(0, QIcon(ICON_IDR + 'table.png'))
            table_item.setText(0, table)
예제 #21
0
 def populate_classes(self):
     """Populate classes"""
     self.lines = {}
     for lineno, c_name, methods in self.classes:
         item = QTreeWidgetItem(self, [c_name])
         self.lines[item] = lineno
         if methods is None:
             item.setIcon(0, get_icon('function.png'))
         else:
             item.setIcon(0, get_icon('class.png'))
         if methods:
             self.populate_methods(item, c_name, methods)
예제 #22
0
 def fillInputsTree(self):
     icon = QIcon(os.path.join(pluginPath, 'images', 'input.png'))
     parametersItem = QTreeWidgetItem()
     parametersItem.setText(0, self.tr('Parameters'))
     for paramType in ModelerParameterDefinitionDialog.paramTypes:
         paramItem = QTreeWidgetItem()
         paramItem.setText(0, paramType)
         paramItem.setIcon(0, icon)
         paramItem.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled)
         parametersItem.addChild(paramItem)
     self.inputsTree.addTopLevelItem(parametersItem)
     parametersItem.setExpanded(True)
예제 #23
0
 def fillInputsTree(self):
     icon = QIcon(os.path.join(pluginPath, 'images', 'input.png'))
     parametersItem = QTreeWidgetItem()
     parametersItem.setText(0, self.tr('Parameters'))
     for paramType in ModelerParameterDefinitionDialog.paramTypes:
         paramItem = QTreeWidgetItem()
         paramItem.setText(0, paramType)
         paramItem.setIcon(0, icon)
         paramItem.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled)
         parametersItem.addChild(paramItem)
     self.inputsTree.addTopLevelItem(parametersItem)
     parametersItem.setExpanded(True)
예제 #24
0
    def makeTreeItem(self, item):  #Overload if needed
        if item.getType() != 'VisitAnimal':
            item = SqlHandler.VisitAnimal(item)

        textString = item.stringList()
        textString.insert(self.iconplace, '')
        treeItem = QTreeWidgetItem(self.ui.treeWidget, textString)
        treeItem.setIcon(self.iconplace,
                         self.getIcon(item.animal.picurePath()))
        treeItem.setData(0, 0, item)

        return treeItem
예제 #25
0
 def populate_classes(self):
     """Populate classes"""
     self.lines = {}
     for lineno, c_name, methods in self.classes:
         item = QTreeWidgetItem(self, [c_name])
         self.lines[item] = lineno
         if methods is None:
             item.setIcon(0, get_icon('function.png'))
         else:
             item.setIcon(0, get_icon('class.png'))
         if methods:
             self.populate_methods(item, c_name, methods)
예제 #26
0
    def __setupModelData(self):
        dsList = DataSourcesList().data_sources.values()
        groupInfoList = GroupsList().groups
        groupsItems = []
        groups = []
        for ds in dsList:
            if ds.group in groups:
                group_item = groupsItems[groups.index(ds.group)]
            else:
                group_item = QTreeWidgetItem()
                group_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole,
                                   ds.group)
                group_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "")
                group_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole,
                                   ds.category)
                group_item.setCheckState(self.COLUMN_VISIBILITY, Qt.Unchecked)

                groupInfo = groupInfoList.get(ds.group)
                if groupInfo is not None:
                    group_item.setIcon(self.COLUMN_GROUP_DS,
                                       QIcon(groupInfo.icon))
                else:
                    group_item.setData(
                        self.COLUMN_GROUP_DS, Qt.DisplayRole,
                        ds.group + " (%s!)" % self.tr("group not found"))
                group_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole,
                                   groupInfo)

                groups.append(ds.group)
                groupsItems.append(group_item)
                self.rootItem.addChild(group_item)

            ds_item = QTreeWidgetItem()
            ds_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.alias)
            ds_item.setIcon(self.COLUMN_GROUP_DS, QIcon(ds.icon_path))
            ds_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole, ds)
            ds_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "")
            ds_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole, ds.category)

            ds_check_state = Qt.Checked
            if ds.id in PluginSettings.get_hide_ds_id_list():
                ds_check_state = Qt.Unchecked
            ds_item.setCheckState(self.COLUMN_VISIBILITY, ds_check_state)

            if group_item.childCount() != 0 and group_item.checkState(
                    1) != ds_check_state:
                group_item.setCheckState(self.COLUMN_VISIBILITY,
                                         Qt.PartiallyChecked)
            else:
                group_item.setCheckState(self.COLUMN_VISIBILITY,
                                         ds_check_state)

            group_item.addChild(ds_item)
예제 #27
0
 def fillTree(self):
     self.tree.clear()
     elements = ProcessingLog.getLogEntries()
     for category in elements.keys():
         groupItem = QTreeWidgetItem()
         groupItem.setText(0, category)
         groupItem.setIcon(0, self.groupIcon)
         for entry in elements[category]:
             item = TreeLogEntryItem(entry, category
                     == ProcessingLog.LOG_ALGORITHM)
             item.setIcon(0, self.keyIcon)
             groupItem.insertChild(0, item)
         self.tree.addTopLevelItem(groupItem)
예제 #28
0
    def _load_folder(self, folderStructure, folder, parentItem):
        items = folderStructure[folder]

        if items[1] is not None:
            items[1].sort()
        for _file in items[1]:
            if _file.startswith("."):
                continue
            subfolder = QTreeWidgetItem(parentItem)
            subfolder.setText(0, _file)
            subfolder.setToolTip(0, os.path.join(folder, _file))
            subfolder.setIcon(0, QIcon(resources.IMAGES["tree-folder"]))
            self._load_folder(folderStructure, os.path.join(folder, _file), subfolder)
예제 #29
0
    def load_path(self, path, use_history=True):
        # Obtener archivos y carpetas.
        items = listdir(unicode(path))
        # Eliminar el contenido anterior.
        self.items.clear()

        for i in items:
            # Omitir archivos ocultos.
            if i.startswith("."):
                continue
            filepath = join(path, i)
            # Obtener informacion del archivo.
            stats = stat(filepath)
            # Crear el control ítem.
            item_widget = QTreeWidgetItem(
                (i, strftime("%c", localtime(stats.st_mtime)).decode("utf-8"),
                 size(stats.st_size) if isfile(filepath) else ""))
            # Establecer el ícono correspondiente.
            item_widget.setIcon(
                0,
                QIcon("images/%s.png" %
                      ("file" if isfile(filepath) else "folder")))
            # Añadir elemento.
            self.items.addTopLevelItem(item_widget)

        # Ajustar el tamaño de las columnas.
        for i in range(3):
            self.items.resizeColumnToContents(i)

        self.current_path = path
        self.address.setText(self.current_path)

        # Añadir al historial.
        if use_history:
            self.back_history.append(self.current_path)

        # Habilitar / dehabilitar botones del historial.
        if self.back_history and len(self.back_history) > 1:
            if not self.back.isEnabled():
                self.back.setEnabled(True)
        else:
            if self.back.isEnabled():
                self.forward_history = []
                self.back.setEnabled(False)

        if self.forward_history:
            if not self.forward.isEnabled():
                self.forward.setEnabled(True)
        else:
            if self.forward.isEnabled():
                self.forward.setEnabled(False)
예제 #30
0
    def _load_folder(self, folderStructure, folder, parentItem):
        items = folderStructure[folder]

        if items[1] is not None:
            items[1].sort()
        for _file in items[1]:
            if _file.startswith('.'):
                continue
            subfolder = QTreeWidgetItem(parentItem)
            subfolder.setText(0, _file)
            subfolder.setToolTip(0, os.path.join(folder, _file))
            subfolder.setIcon(0, QIcon(resources.IMAGES['tree-folder']))
            self._load_folder(folderStructure, os.path.join(folder, _file),
                              subfolder)
예제 #31
0
    def _load_project(self, folderStructure, folder):
        if not folder:
            return

        name = file_manager.get_basename(folder)
        item = QTreeWidgetItem(self._tree)
        item.setText(0, name)
        item.setToolTip(0, folder)
        item.setIcon(0, QIcon(resources.IMAGES['tree-folder']))
        if folderStructure[folder][1] is not None:
            folderStructure[folder][1].sort()
        self._load_folder(folderStructure, folder, item)
        item.setExpanded(True)
        self._root = item
예제 #32
0
    def _load_project(self, folderStructure, folder):
        if not folder:
            return

        name = file_manager.get_basename(folder)
        item = QTreeWidgetItem(self._tree)
        item.setText(0, name)
        item.setToolTip(0, folder)
        item.setIcon(0, QIcon(resources.IMAGES['tree-folder']))
        if folderStructure[folder][1] is not None:
            folderStructure[folder][1].sort()
        self._load_folder(folderStructure, folder, item)
        item.setExpanded(True)
        self._root = item
예제 #33
0
 def makeTreeItem(self,item):#Overload if needed
     textString = item.stringList()
     #add '' to icon place
     treeItem = None
     if self.iconplace >= 0:
         textString.insert(self.iconplace, '')
         print('makeTreeItem() textString', textString)
         treeItem = QTreeWidgetItem(self.ui.treeWidget,textString)
         treeItem.setIcon(self.iconplace,self.getIcon(item.picurePath()))
     else:
         print('makeTreeItem() textString', textString)
         treeItem = QTreeWidgetItem(self.ui.treeWidget,textString)
     
     treeItem.setData(0,0,item)
     return treeItem
예제 #34
0
    def makeTreeItem(self, item):  #Overload if needed
        textString = item.stringList()
        #add '' to icon place
        treeItem = None
        if self.iconplace >= 0:
            textString.insert(self.iconplace, '')
            print('makeTreeItem() textString', textString)
            treeItem = QTreeWidgetItem(self.ui.treeWidget, textString)
            treeItem.setIcon(self.iconplace, self.getIcon(item.picurePath()))
        else:
            print('makeTreeItem() textString', textString)
            treeItem = QTreeWidgetItem(self.ui.treeWidget, textString)

        treeItem.setData(0, 0, item)
        return treeItem
예제 #35
0
 def createMenuItem( self, title ):
     """
     Creates a new menu item with the given title.
     
     :param      title | <str>
     
     :return     <QTreeWidgetItem>
     """
     item = QTreeWidgetItem([title])
     ico = projexui.resources.find('img/folder.png')
     
     item.setIcon(0, QIcon(ico))
     item.setSizeHint(0, QSize(120, 20))
     item.setData(0, Qt.UserRole, qt.wrapVariant('menu'))
     
     return item
예제 #36
0
    def addRow(self, row):
        """
        Add row as a new root item
        """
        root = QTreeWidgetItem(self)
        root.setIcon( 0, QtGui.QIcon( pulimonitor.Config.root_dir+"/rsrc/graph_32.png" ) )

        # self.bold = BoldDelegate(self)
        # self.standard = StandardDelegate(self)
        # self.setItemDelegateForColumn(4, self.bold)
        # self.setItemDelegateForColumn(5, self.standard)

        self.setItemValues( root, row )
        if "items" in row:
            for item in row["items"]:
                self.addItem( root, item)
예제 #37
0
    def createMenuItem(self, title):
        """
        Creates a new menu item with the given title.
        
        :param      title | <str>
        
        :return     <QTreeWidgetItem>
        """
        item = QTreeWidgetItem([title])
        ico = projexui.resources.find('img/folder.png')

        item.setIcon(0, QIcon(ico))
        item.setSizeHint(0, QSize(120, 20))
        item.setData(0, Qt.UserRole, qt.wrapVariant('menu'))

        return item
예제 #38
0
    def fillAlgorithmTreeUsingProviders(self):
        self.algorithmTree.clear()
        text = unicode(self.searchBox.text())
        allAlgs = ModelerUtils.allAlgs
        for providerName in allAlgs.keys():
            name = 'ACTIVATE_' + providerName.upper().replace(' ', '_')
            if not ProcessingConfig.getSetting(name):
                continue
            groups = {}
            provider = allAlgs[providerName]
            algs = provider.values()

            # Add algorithms
            for alg in algs:
                if not alg.showInModeler or alg.allowOnlyOpenedLayers:
                    continue
                if alg.commandLineName() == self.alg.commandLineName():
                    continue
                if text == '' or text.lower() in alg.name.lower():
                    if alg.group in groups:
                        groupItem = groups[alg.group]
                    else:
                        groupItem = QTreeWidgetItem()
                        name = alg.i18n_group or alg.group
                        groupItem.setText(0, name)
                        groupItem.setToolTip(0, name)
                        groups[alg.group] = groupItem
                    algItem = TreeAlgorithmItem(alg)
                    groupItem.addChild(algItem)

            if len(groups) > 0:
                providerItem = QTreeWidgetItem()
                providerItem.setText(0,
                                     ModelerUtils.providers[providerName].getDescription())
                providerItem.setToolTip(0,
                                        ModelerUtils.providers[providerName].getDescription())
                providerItem.setIcon(0,
                                     ModelerUtils.providers[providerName].getIcon())
                for groupItem in groups.values():
                    providerItem.addChild(groupItem)
                self.algorithmTree.addTopLevelItem(providerItem)
                providerItem.setExpanded(text != '')
                for groupItem in groups.values():
                    if text != '':
                        groupItem.setExpanded(True)

        self.algorithmTree.sortItems(0, Qt.AscendingOrder)
예제 #39
0
 def load_settings(self):
     w = self.widgets
     if not self.config:
         log_warn("config object not available! bailing")
         return
     #for font..
     appearance = self.config.globals.setdefault("appearance", {})
     family = appearance.get("font_family", None)
     size = appearance.get("font_size", None)
     color = appearance.get("font_color", None)
     
     if family: self.font.setFamily(family)
     if size: self.font.setPointSize(size)
     if color: self.color.setNamedColor(color)
     
     bold = appearance.get("font_bold", False)
     italic = appearance.get("font_italic", False)
     underline = appearance.get("font_underline", False)
     html_relsize = appearance.get("use_html_relsize", False)
     show_joinpart = appearance.get("show_joinpart", False)
     
     self.font.setBold(bold)
     self.font.setItalic(italic)
     self.font.setUnderline(underline)
     w.html_relsize.setChecked(html_relsize)
     w.show_joinpart.setChecked(show_joinpart)
     
     self.change_formatting()
     
     #for the agent...
     agent = self.config.globals.get("agent_address", None)
     if agent: w.agent_address.setText(agent)
     self.change_agent()
     #for accounts:
     for a in self.config.accounts:
         log_warn("got account", a)
         if a.get("name", None) and a.get("improto", None):
             #get name and icon
             name, icon = getProtoIconAndName(getattr(yobotproto, a["improto"], ""))
             log_debug(icon, name)
             i = QTreeWidgetItem((a["name"], name))
             i.setIcon(1, icon)
             i.setData(0, ITEM_PLACEHOLDER_ROLE, a)
             self.account_items[i] = a
             self.widgets.accounts.addTopLevelItem(i)
예제 #40
0
    def _create_item_from_node(self, node, parent):
        if "Type" in node:
            type = node["Type"].get()
        else:
            type = ""

        if "Description" in node:
            desc = node["Description"].get()
        else:
            desc = ""

        item = QTreeWidgetItem(parent, [node.name, type, desc])
        item.node = node
        item.setExpanded(self.expanded_at_start)
        if type not in self.__icons_cache:
            self.__icons_cache[type] = QIcon(":/icons/small/datatypes/{}.png".format(type))
        item.setIcon(0, self.__icons_cache[type])
        return item
예제 #41
0
파일: syncwidget.py 프로젝트: xCherry/Roam
    def loadprojects(self, projects):
        root = self.synctree.invisibleRootItem()
        for project in projects:
            providers = list(project.syncprovders())
            if not providers:
                continue

            projectitem = QTreeWidgetItem(root)
            projectitem.setText(0, project.name)
            projectitem.setIcon(0, QIcon(project.splash))
            for provider in providers:
                provideritem = QTreeWidgetItem(projectitem)
                provideritem.setText(0, provider.name)
                button = QPushButton()
                button.pressed.connect(partial(self.run, button, provider))
                button.setText(provider.name)
                self.synctree.setItemWidget(provideritem,0, button)

        self.synctree.expandAll()
예제 #42
0
    def buildParentItem(self,dcollection,title,rootresource):
        '''
        Builds tree widget items from a dictionary.
        '''
        rtItem = QTreeWidgetItem()
        rtItem.setText(0,title)
        rtItem.setIcon(0,QIcon(rootresource))
            
        topLevelItems = []
            
        for k,v in dcollection.iteritems():
            parentItem = QTreeWidgetItem()
                
            if isinstance(v,dict):                                                
                parentItem.setText(0,k)
                    
                for kc,vc in v.iteritems():
                    child = QTreeWidgetItem()
                    child.setText(0,self._combine(kc, vc))
                    parentItem.addChild(child)
                
            else:
                parentItem.setText(0,self._combine(k, v))                
                    
            topLevelItems.append(parentItem)
                
        rtItem.addChildren(topLevelItems)
        rtItem.setExpanded(True)
        
        return rtItem

        
        
        
        
        
        
        
        
        
        
        
        
예제 #43
0
    def loadConfiguredBackendsList(self):
        self.ui.configuredBackendsList.clear()
        for instance_name, name, params in self.weboob.backends_config.iter_backends():
            try:
                backend = self.weboob.modules_loader.get_or_load_module(name)
            except ModuleLoadError:
                backend = None

            if not backend or self.caps and not backend.has_caps(*self.caps):
                continue

            item = QTreeWidgetItem(None, [instance_name, name])
            item.setCheckState(0, Qt.Checked if params.get('_enabled', '1').lower() in ('1', 'y', 'true') else Qt.Unchecked)

            if backend.icon_path:
                img = QImage(backend.icon_path)
                item.setIcon(0, QIcon(QPixmap.fromImage(img)))

            self.ui.configuredBackendsList.addTopLevelItem(item)
예제 #44
0
파일: library.py 프로젝트: maximerobin/Ufwi
 def createTreeItem(self, object):
     icon = object.getIcon()
     label = object.formatID()
     tree = QTreeWidgetItem([label])
     tree.setData(0, Qt.UserRole, QVariant(object['id']))
     tooltip = object.getToolTip()
     if tooltip:
         tree.setToolTip(0, tooltip)
     if icon:
         tree.setIcon(0, QIcon(icon))
     font = tree.font(0)
     if object['editable']:
         font.setBold(True)
     if not object['references']:
         font.setItalic(True)
     tree.setFont(0, font)
     if not object['editable']:
         unsetFlag(tree, Qt.ItemIsEditable)
     return tree
예제 #45
0
    def refresh(self):
        tree = self.uiFilterTREE

        tree.blockSignals(True)
        tree.setUpdatesEnabled(False)

        tree.clear()

        # create the code color
        codeClr = tree.palette().color(tree.palette().Base).darker(140)

        # sort the data hash
        filters = self._filterOptions.items()
        filters.sort(lambda x, y: cmp(x[1].get('order', 100000), y[1].get(
            'order', 100000)))

        for key, option in filters:
            # create the data for this item
            data = {'code': key}
            data.update(option)

            # create the data item
            item = QTreeWidgetItem(
                [data.get('name', ''),
                 data.get('code', '')])
            item.setIcon(0, resources.icon(data.get('icon', '') % data))
            item.setSizeHint(0, QSize(0, 18))

            # check the item if its enabled
            if (self.isCheckable()):
                enabled = data.get('enabled', False)
                item.setCheckState(0, Qt.Checked if enabled else Qt.Unchecked)

            # set some ui data for the code name to hide it a bit
            item.setTextAlignment(1, Qt.AlignRight | Qt.AlignCenter)
            item.setForeground(1, codeClr)

            # add to the tree
            tree.addTopLevelItem(item)

        tree.setUpdatesEnabled(True)
        tree.blockSignals(False)
예제 #46
0
    def __init__(self, statusList, parent=None):
        QDialog.__init__(self, parent)

        # Split statuses
        paths = []
        ignoredPaths = []
        for status in statusList:
            if status[1] == IND_IGNORED:
                ignoredPaths.append(status)
            else:
                paths.append(status)

        self.__createLayout(paths, ignoredPaths)
        self.setWindowTitle("SVN status")

        # Fill the lists
        for item in paths:
            message = ""
            if item[2]:
                message = item[2]
            newItem = QTreeWidgetItem(["", item[0], STATUS[item[1]], message])
            pixmap = getIndicatorPixmap(item[1])
            if pixmap:
                newItem.setIcon(0, QIcon(pixmap))
            newItem.setToolTip(1, item[0])
            newItem.setToolTip(2, STATUS[item[1]])
            if message:
                newItem.setToolTip(3, message)
            self.__pathView.addTopLevelItem(newItem)
        self.__pathView.header().resizeSections(QHeaderView.ResizeToContents)
        self.__pathView.header().resizeSection(0, 20)
        self.__pathView.header().setResizeMode(QHeaderView.Fixed)

        for item in ignoredPaths:
            newItem = QTreeWidgetItem([item[0], STATUS[item[1]]])
            newItem.setToolTip(0, item[0])
            newItem.setToolTip(1, STATUS[item[1]])
            self.__ignoredPathView.addTopLevelItem(newItem)
        self.__ignoredPathView.header().resizeSections(
            QHeaderView.ResizeToContents)

        return
예제 #47
0
    def __init__( self, statusList, parent = None ):
        QDialog.__init__( self, parent )

        # Split statuses
        paths = []
        ignoredPaths = []
        for status in statusList:
            if status[ 1 ] == IND_IGNORED:
                ignoredPaths.append( status )
            else:
                paths.append( status )

        self.__createLayout( paths, ignoredPaths )
        self.setWindowTitle( "SVN status" )

        # Fill the lists
        for item in paths:
            message = ""
            if item[ 2 ]:
                message = item[ 2 ]
            newItem = QTreeWidgetItem( [ "", item[ 0 ],
                                         STATUS[ item[ 1 ] ], message ] )
            pixmap = getIndicatorPixmap( item[ 1 ] )
            if pixmap:
                newItem.setIcon( 0, QIcon( pixmap ) )
            newItem.setToolTip( 1, item[ 0 ] )
            newItem.setToolTip( 2, STATUS[ item[ 1 ] ] )
            if message:
                newItem.setToolTip( 3, message )
            self.__pathView.addTopLevelItem( newItem )
        self.__pathView.header().resizeSections( QHeaderView.ResizeToContents )
        self.__pathView.header().resizeSection( 0, 20 )
        self.__pathView.header().setResizeMode( QHeaderView.Fixed )

        for item in ignoredPaths:
            newItem = QTreeWidgetItem( [ item[ 0 ], STATUS[ item[ 1 ] ] ] )
            newItem.setToolTip( 0, item[ 0 ] )
            newItem.setToolTip( 1, STATUS[ item[ 1 ] ] )
            self.__ignoredPathView.addTopLevelItem( newItem )
        self.__ignoredPathView.header().resizeSections( QHeaderView.ResizeToContents )

        return
예제 #48
0
    def update_destination_view(self):
        if self.rev_difference is None:
            return

        self.destination_view.clear()

        queue = [(self.rev_difference, self.destination_view.addTopLevelItem)]

        while len(queue) > 0:
            baseobj, inserter = queue.pop()
            for name, data in baseobj.iteritems():
                if data[0] == 'dir':
                    child = QTreeWidgetItem(['', name, format_size(data[2])])
                    child.setIcon(0, QIcon('dir_icon.png'))
                    inserter(child)
                    queue.append((data[1], child.addChild))
                elif data[0] == 'file':
                    entry = QTreeWidgetItem(['', name, format_size(data[2])])
                    entry.setIcon(0, QIcon('file_icon.png'))
                    inserter(entry)
예제 #49
0
    def addIndex(self, index):
        indexTree = self.applicationWindow.mainWindow.indexes

        if index.type == 'PRIMARY':
            name = 'PRIMARY KEY'
        else:
            name = index.name

        indexItem = QTreeWidgetItem()
        indexItem.setIcon(0, QIcon('../resources/icons/key.png'))
        indexItem.setText(0, name)
        indexItem.setText(1, index.type)

        for column in index.columns:
            columnItem = QTreeWidgetItem()
            columnItem.setIcon(0, QIcon('../resources/icons/bullet_black.png'))
            columnItem.setText(0, column.name)
            indexItem.addChild(columnItem)

        indexTree.addTopLevelItem(indexItem)
예제 #50
0
파일: table_tab.py 프로젝트: Fapiko/pyHeidi
	def addIndex(self, index):
		indexTree = self.applicationWindow.mainWindow.indexes

		if index.type == 'PRIMARY':
			name = 'PRIMARY KEY'
		else:
			name = index.name

		indexItem = QTreeWidgetItem()
		indexItem.setIcon(0, QIcon('../resources/icons/key.png'))
		indexItem.setText(0, name)
		indexItem.setText(1, index.type)

		for column in index.columns:
			columnItem = QTreeWidgetItem()
			columnItem.setIcon(0, QIcon('../resources/icons/bullet_black.png'))
			columnItem.setText(0, column.name)
			indexItem.addChild(columnItem)

		indexTree.addTopLevelItem(indexItem)
예제 #51
0
 def setDocuments(self, documents):
     """Display the specified documents in the list."""
     # clear the treewidget
     for d in self.tree.invisibleRootItem().takeChildren():
         for i in d.takeChildren():
             i.doc = None
     # group the documents by directory
     dirs = {}
     for d in documents:
         path = d.url().toLocalFile()
         if path:
             dirname, filename = os.path.split(path)
             dirs.setdefault(dirname, []).append((filename, d))
     for dirname in sorted(dirs, key=util.naturalsort):
         diritem = QTreeWidgetItem()
         diritem.setText(0, util.homify(dirname))
         self.tree.addTopLevelItem(diritem)
         diritem.setExpanded(True)
         diritem.setFlags(Qt.ItemIsEnabled)
         diritem.setIcon(0, icons.get('folder-open'))
         for filename, document in sorted(
                 dirs[dirname], key=lambda item: util.naturalsort(item[0])):
             fileitem = QTreeWidgetItem()
             diritem.addChild(fileitem)
             if documentwatcher.DocumentWatcher.instance(
                     document).isdeleted():
                 itemtext = _("[deleted]")
                 icon = "dialog-error"
             else:
                 itemtext = _("[modified]")
                 icon = "document-edit"
             fileitem.setIcon(0, icons.get(icon))
             fileitem.setText(0, filename)
             fileitem.setText(1, itemtext)
             fileitem.doc = document
     # select the item if there is only one
     if len(dirs) == 1 and len(list(dirs.values())[0]) == 1:
         fileitem.setSelected(True)
     self.tree.resizeColumnToContents(0)
     self.tree.resizeColumnToContents(1)
     self.updateButtons()
예제 #52
0
 def addNode(self,
             parent,
             icon_,
             text="",
             data="",
             isParent=False,
             isRoot=False):
     node = QTreeWidgetItem(parent)
     node.setText(0, text)
     node.setCheckState(0, Qt.Unchecked)
     node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled
                   | Qt.ItemIsSelectable)
     if isRoot:
         node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled
                       | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled)
     if isParent:
         node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled
                       | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled)
     node.setData(0, Qt.UserRole, data)
     node.setIcon(0, icon_)
     return node
예제 #53
0
    def add(self, seq, text, position, foreground=False, background=False, icon=False):
        from  PyQt4.QtGui import QTreeWidgetItem



        item = QTreeWidgetItem()

        item.setText(0, text)
        item.setData(0, Qt.UserRole, position)

        if foreground:
            item.setForeground(0, foreground)

        if background:
            item.setBackground(0, background)

        if icon:
            item.setIcon(0, icon)

        seq.append(item)
        return item
예제 #54
0
    def refresh(self):
        self.uiStatusTREE.blockSignals(True)
        self.uiStatusTREE.setUpdatesEnabled(False)

        self.uiStatusTREE.clear()

        # collect the data from the prefs
        ordered = self._statusPrefs.values('order').items()

        # sort the items by their order
        ordered.sort(lambda x, y: cmp(x[1], y[1]))

        # add the statuses to the tree
        from PyQt4.QtCore import Qt
        from PyQt4.QtGui import QTreeWidgetItem, QPalette, QIcon

        for status, order in ordered:
            # grab info from the hash
            icon, display_name = self._statusHash.get(status, ('', 'Missing'))

            item = QTreeWidgetItem([display_name, status])
            item.setIcon(0, QIcon(icon))

            # check the item if it is enabled
            enabled = self._statusPrefs.value(status, 'enabled')
            item.setCheckState(0, Qt.Checked if enabled else Qt.Unchecked)

            # set some ui options for the status name to hide it a bit
            item.setTextAlignment(1, Qt.AlignRight | Qt.AlignVCenter)
            item.setForeground(
                1,
                self.uiStatusTREE.palette().color(QPalette.Base).darker(140))

            # add to the tree
            self.uiStatusTREE.addTopLevelItem(item)

        self.uiStatusTREE.blockSignals(False)
        self.uiStatusTREE.setUpdatesEnabled(True)
예제 #55
0
 def setPlugins( self, plugins ):
     """
     Loads the plugins for the inputed dialog.
     
     :param      plugins | [<XWizardPlugin>, ..]
     """
     langs = {}
     icons = {}
     
     for plugin in plugins:
         wlang = plugin.wizardType()
         wgrp  = plugin.wizardGroup()
         
         langs.setdefault(wlang, {})
         langs[wlang].setdefault(wgrp, [])
         
         langs[wlang][wgrp].append( plugin )
         
         icons.setdefault(wgrp, plugin.groupIcon(wgrp))
     
     self._plugins = langs
     
     self.uiPluginTREE.clear()
     for wlang in sorted(langs.keys()):
         langitem = QTreeWidgetItem([wlang])
         langitem.setSizeHint(0, QSize(0, 26))
         
         for wgrp in sorted(langs[wlang].keys()):
             grpitem = QTreeWidgetItem([wgrp])
             grpitem.setIcon(0, QIcon(icons[wgrp]))
             grpitem.setSizeHint(0, QSize(0, 26))
             langitem.addChild(grpitem)
         
         folder = QIcon(projexui.resources.find('img/folder_32.png'))
         langitem.setIcon(0, folder)
         
         self.uiPluginTREE.addTopLevelItem(langitem)
         langitem.setExpanded(True)
예제 #56
0
 def populate_methods(self, parent, c_name, methods):
     """Populate methods"""
     for lineno, m_name in methods:
         decorator = m_name.startswith('@')
         if decorator:
             m_name = m_name[1:]
         item = QTreeWidgetItem(parent, [m_name])
         self.lines[item] = lineno
         if m_name.startswith('__'):
             item.setIcon(0, get_icon('private2.png'))
         elif m_name.startswith('_'):
             item.setIcon(0, get_icon('private1.png'))
         elif decorator:
             item.setIcon(0, get_icon('decorator.png'))
         else:
             item.setIcon(0, get_icon('method.png'))