예제 #1
1
파일: __init__.py 프로젝트: nerdocs/MedUX
 def setModified(self, item: QTreeWidgetItem, modified: bool):
     f = item.font(0)
     f.setItalic(modified)
     item.setFont(0, f)
     item.setFont(1, f)
     f.setBold(modified)
     item.setFont(2, f)
예제 #2
0
    def fillTreeWidget(self):
        """ Заполняем tree widget записями, на основе разбиения на категории"""
        self._loadingData = True
        self._ui.twEntries.clear()
        for key in self._categories:
            self._categories[key] = sorted(self._categories[key], key=attrgetter('title'))
            item = DateTreeWidgetItem(self._ui.twEntries)
            font = item.font(0)
            font.setPointSize(11)
            font.setBold(True)
            item.setFont(0, font)
            if settings.showEntryCountInCategory():
                item.setText(0, "{} ({})".format(key, len(self._categories[key])))
            else:
                item.setText(0, key)
            item.setData(0, Qt.UserRole, self._keyForCategory[key])
            for e in self._categories[key]:
                entryItem = QTreeWidgetItem(item)
                font = entryItem.font(0)
                font.setPointSize(12)
                entryItem.setCheckState(0, Qt.Checked if e.interesting else Qt.Unchecked)
                entryItem.setText(0, e.title)
                entryItem.setFont(0, font)
                entryItem.setData(0, Qt.UserRole, e.id)
                self._setToolTipForItem(e, entryItem)

        self._ui.twEntries.sortItems(0, Qt.AscendingOrder)
        self._ui.twEntries.expandAll()
        self._loadingData = False
예제 #3
0
    def _loadCardGroup(self, groupName, records, parent=None):
        if (not groupName):
            groupName = 'None'

        cards = self.cardWidget()
        factory = self.factory()

        # create the group item
        group_item = QTreeWidgetItem(parent, [groupName])
        font = group_item.font(0)
        font.setBold(True)
        font.setPointSize(font.pointSize() + 2)
        group_item.setFont(0, font)
        group_item.setFlags(Qt.ItemIsEnabled)

        # load sub-groups
        if (type(records) == dict):
            for subgroup, records in sorted(records.items()):
                self._loadCardGroup(subgroup, records, group_item)
        else:
            for record in records:
                widget = factory.createCard(cards, record)
                if (not widget):
                    continue

                widget.adjustSize()

                # create the card item
                item = QTreeWidgetItem(group_item)
                item.setSizeHint(0, QSize(0, widget.height()))
                cards.setItemWidget(item, 0, widget)

        group_item.setExpanded(True)
예제 #4
0
 def _loadCardGroup( self, groupName, records, parent = None ):
     if ( not groupName ):
         groupName = 'None'
     
     cards  = self.cardWidget()
     factory = self.factory()
     
     # create the group item
     group_item = QTreeWidgetItem(parent, [groupName])
     font = group_item.font(0)
     font.setBold(True)
     font.setPointSize(font.pointSize() + 2)
     group_item.setFont(0, font)
     group_item.setFlags(Qt.ItemIsEnabled)
     
     # load sub-groups
     if ( type(records) == dict ):
         for subgroup, records in sorted(records.items()):
             self._loadCardGroup(subgroup, records, group_item)
     else:
         for record in records:
             widget = factory.createCard(cards, record)
             if ( not widget ):
                 continue
             
             widget.adjustSize()
             
             # create the card item
             item = QTreeWidgetItem(group_item)
             item.setSizeHint(0, QSize(0, widget.height()))
             cards.setItemWidget(item, 0, widget)
     
     group_item.setExpanded(True)
예제 #5
0
 def _set_root_path_message(self, message):
     self.clear()
     base_item = QTreeWidgetItem([message])
     font = base_item.font(0)
     font.setItalic(True)
     base_item.setFont(0, font)
     self.addTopLevelItem(base_item)
 def createSeparatorItem( self ):
     """
     Creates a new separator item.
     
     :return     <QTreeWidgetItem>
     """
     item = QTreeWidgetItem(['                                    '])
     font = item.font(0)
     font.setStrikeOut(True)
     item.setFont(0, font)
     item.setData(0, Qt.UserRole, qt.wrapVariant('separator'))
     flags = item.flags()
     flags ^= Qt.ItemIsDropEnabled
     item.setFlags(flags)
     
     return item
예제 #7
0
    def createSeparatorItem(self):
        """
        Creates a new separator item.
        
        :return     <QTreeWidgetItem>
        """
        item = QTreeWidgetItem(['                                    '])
        font = item.font(0)
        font.setStrikeOut(True)
        item.setFont(0, font)
        item.setData(0, Qt.UserRole, qt.wrapVariant('separator'))
        flags = item.flags()
        flags ^= Qt.ItemIsDropEnabled
        item.setFlags(flags)

        return item
예제 #8
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
 def __createEntry(self, description, entryText, entryVersion):
     """
     Private method to generate a program entry.
     
     @param description descriptive text (string or QString)
     @param entryText text to show (string or QString)
     @param entryVersion version string to show (string or QString).
     """
     itm = QTreeWidgetItem(self.programsList, QStringList(description))
     font = itm.font(0)
     font.setBold(True)
     itm.setFont(0, font)
     
     if len(entryVersion):
         itm2 = QTreeWidgetItem(itm, QStringList() << entryText << entryVersion)
         itm.setExpanded(True)
     else:
         itm.setText(1, self.trUtf8("(not found)"))
     QApplication.processEvents()
     self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
     self.programsList.header().setStretchLastSection(True)
예제 #10
0
 def display(self):
     '''
     Initialize top-level items
     '''
     if len(self.items) == 0:
         return
 
     self.tree.clear()
     
     #If there is only one item then set it as the root item
     if len(self.items) == 1:
         rootItem = self.items[0]
         
         #Set root font
         rtFont = rootItem.font(0)
         rtFont.setBold(True)
         rootItem.setFont(0,rtFont)
         
         #Add the tree item to the tree widget
         self.tree.addTopLevelItem(rootItem)
         rootItem.setExpanded(True)
         
     else:
         rootItem = QTreeWidgetItem(self.tree)
         rootItem.setText(0,self.title)
         rootItem.setIcon(0,QIcon(self.rootResource))
         
         #Set root font
         rtFont = rootItem.font(0)
         rtFont.setBold(True)
         rootItem.setFont(0,rtFont)
         
         rootItem.addChildren(self.items)
         rootItem.setExpanded(True)
     
     #Force the horizontal scrollbar to show
     self.tree.header().setResizeMode(QHeaderView.ResizeToContents)
예제 #11
0
파일: treeloader.py 프로젝트: wondie/stdm
    def display(self):
        '''
        Initialize top-level items
        '''
        if len(self.items) == 0:
            return

        self.tree.clear()

        #If there is only one item then set it as the root item
        if len(self.items) == 1:
            rootItem = self.items[0]

            #Set root font
            rtFont = rootItem.font(0)
            rtFont.setBold(True)
            rootItem.setFont(0, rtFont)

            #Add the tree item to the tree widget
            self.tree.addTopLevelItem(rootItem)
            rootItem.setExpanded(True)

        else:
            rootItem = QTreeWidgetItem(self.tree)
            rootItem.setText(0, self.title)
            rootItem.setIcon(0, QIcon(self.rootResource))

            #Set root font
            rtFont = rootItem.font(0)
            rtFont.setBold(True)
            rootItem.setFont(0, rtFont)

            rootItem.addChildren(self.items)
            rootItem.setExpanded(True)

        #Force the horizontal scrollbar to show
        self.tree.header().setResizeMode(QHeaderView.ResizeToContents)
 def __createProgramEntry(self, description, exe,
                          versionCommand = "", versionStartsWith = "", 
                          versionPosition = 0, version = "",
                          versionCleanup = None, versionRe = None):
     """
     Private method to generate a program entry.
     
     @param description descriptive text (string or QString)
     @param exe name of the executable program (string)
     @param versionCommand command line switch to get the version info (string)
         if this is empty, the given version will be shown.
     @param versionStartsWith start of line identifying version info (string)
     @param versionPosition index of part containing the version info (integer)
     @keyparam version version string to show (string)
     @keyparam versionCleanup tuple of two integers giving string positions
         start and stop for the version string (tuple of integers)
     @keyparam versionRe regexp to determine the line identifying version 
         info (string). Takes precedence over versionStartsWith.
     @return version string of detected or given version (string)
     """
     itm = QTreeWidgetItem(self.programsList, QStringList(description))
     font = itm.font(0)
     font.setBold(True)
     itm.setFont(0, font)
     if not exe:
         itm.setText(1, self.trUtf8("(not configured)"))
     else:
         if os.path.isabs(exe):
             if not Utilities.isExecutable(exe):
                 exe = ""
         else:
             exe = Utilities.getExecutablePath(exe)
         if exe:
             if versionCommand and \
                (versionStartsWith != "" or \
                 (versionRe is not None and versionRe != "")) and \
                versionPosition:
                 proc = QProcess()
                 proc.setProcessChannelMode(QProcess.MergedChannels)
                 proc.start(exe, QStringList(versionCommand))
                 finished = proc.waitForFinished(10000)
                 if finished:
                     output = \
                         unicode(proc.readAllStandardOutput(), 
                                 str(Preferences.getSystem("IOEncoding")), 
                                 'replace')
                     if versionRe is None:
                         versionRe = "^%s" % re.escape(versionStartsWith)
                     versionRe = re.compile(versionRe, re.UNICODE)
                     for line in output.splitlines():
                         if versionRe.search(line):
                             try:
                                 version = line.split()[versionPosition]
                                 if versionCleanup:
                                     version = \
                                         version[versionCleanup[0]:versionCleanup[1]]
                                 break
                             except IndexError:
                                 version = self.trUtf8("(unknown)")
                 else:
                     version = self.trUtf8("(not executable)")
             itm2 = QTreeWidgetItem(itm, QStringList() << exe << version)
             itm.setExpanded(True)
         else:
             itm.setText(1, self.trUtf8("(not found)"))
     QApplication.processEvents()
     self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
     self.programsList.header().setStretchLastSection(True)
     return version