def buildEdgeList(self):
        ''' populate the ui tree with the edges that can be extended'''
        self.edgeList = []

        treeExists = False
        if self.edges_TW.topLevelItem(0):
            treeExists = True
            parentItem = self.edges_TW.topLevelItem(0)
        else:
            self.edges_TW.clear()
            parentItem = QTreeWidgetItem()
            faceName = self.face_LE.text()
            parentItem.setText(0, faceName)
            self.edges_TW.addTopLevelItem(parentItem)
            self.edges_TW.expandItem(parentItem)

            if not treeExists:
                for edgeNum in self.helperFace.ExtendableEdges:
                    ###### populate the edge tree ######
                    edgeItem = QTreeWidgetItem()
                    edgeItem.setText(0, str("Edge" + str(edgeNum)))
                    checked = QtCore.Qt.Unchecked
                    if edgeNum in self.helperFace.CheckedEdges:
                        checked = QtCore.Qt.Checked
                    edgeItem.setCheckState(0, checked)
                    parentItem.addChild(edgeItem)

        self.loadTools()
Example #2
0
class LoadThings(QUndoCommand):
    def __init__(self, widget, thing):
        super(LoadThings, self).__init__()
        self.widget = widget

        self.createdThing = thing
        self.item = QTreeWidgetItem()
        self.item.setText(0, thing.name)

        typeName = type(thing).__name__
        for i in range(self.widget.ui.treeWidget.topLevelItemCount()):
            group = self.widget.ui.treeWidget.topLevelItem(i)
            if group.text(0) == typeName:
                self.group = group
                break
        else: # group not found
            self.group = QTreeWidgetItem()
            self.group.setText(0, typeName)

    def redo(self):
        if self.widget.ui.treeWidget.indexOfTopLevelItem(self.group) == -1:
            self.widget.ui.treeWidget.addTopLevelItem(self.group)
        self.group.addChild(self.item)
        self.group.setExpanded(True)
        self.widget.ui.treeWidget.setCurrentItem(self.item)

    def undo(self):
        self.group.takeChild(self.group.childCount()-1)
        if self.group.childCount() == 0:
            parentIndex = self.widget.ui.treeWidget.indexOfTopLevelItem(self.group)
            self.widget.ui.treeWidget.takeTopLevelItem(parentIndex)
Example #3
0
def fill_item(item, value, level):
    item.setExpanded(True)
    if type(value) is dict:
        for key, val in sorted(value.items()):
            child = QTreeWidgetItem()
            child.setText(level, str(key))
            item.addChild(child)
            fill_item(child, val, level+1)
    elif type(value) is list:
        for val in value:
            child = QTreeWidgetItem()
            item.addChild(child)
            if type(val) is dict:            
                child.setText(level, '[dict]')
                fill_item(child, val, level+1)
            elif type(val) is list:
                child.setText(level, '[list]')
                fill_item(child, val, level+1)
            else:
                child.setText(level, str(val))                            
            child.setExpanded(True)
    else:
        child = QTreeWidgetItem()
        child.setText(level, str(value))
        item.addChild(child)
Example #4
0
    def update(self):
        items = []
        playerx, playery = 0, 0
        for objid, obj in self.worldviewer.world_objects.items():
            if "Object.ScriptedObject.Character" in obj['_types']:
                playerx = obj['loc']['x']
                playery = obj['loc']['y']
                break

        for objid, obj in self.worldviewer.world_objects.items():
            name = obj['name']
            try:
                locx = obj['loc']['x']
            except KeyError:
                continue
            locy = obj['loc']['y']
            locz = obj['loc']['z']
            resource = obj['resource']
            last_modified = datetime.datetime.fromtimestamp(int(str(obj['last_modified']['$date'])[:-3]))

            row = self.objects_tree.findItems(objid, Qt.MatchExactly, column=0)
            if row:
                # Update it if it exists already
                item = row[0]
            if not row:
                # If Item does not exist in the tree widget already, make a new one.
                item = QTreeWidgetItem(self.objects_tree)
                items.append(item)

            for i, param in enumerate((objid, name, (locx, locy, locz), resource, last_modified, "%04d" % euclidian(locx, locy, playerx, playery))):
                item.setText(i, str(param))

        if items:
            self.objects_tree.insertTopLevelItems(0, items)
Example #5
0
 def addItemForExpense(self, topLevelItem, ex):
     ex_str = "%-5d %s\n(%s -> %s)" % (ex.value, ex.desc, self.__envMgr.envNameForId(ex.fromId),
         self.__envMgr.envNameForId(ex.toId))
     ex_item = QTreeWidgetItem([ex_str])
     ex_item.setText(0, ex_str)
     ex_item.setData(0, Qt.UserRole, ex)
     topLevelItem.insertChild(0, ex_item)
Example #6
0
    def fill_item(self,item, value):
        item.setExpanded(True)
        if type(value) is dict:
            for key, val in sorted(value.iteritems()):
                child = QTreeWidgetItem()
                x = "{0:.3f}".format(key)
#                 x = key
                child.setText(0, unicode(x))
                child.setFlags(Qt.ItemIsEnabled)
                item.addChild(child)
                self.fill_item(child, val)
        elif type(value) is list:
            for val in value:
                child = QTreeWidgetItem()
                item.addChild(child)
                if type(val) is dict:      
                    child.setText(0, '[dict]')
                    self.fill_item(child, val)
                elif type(val) is list:
                    child.setText(0, '[list]')
                    self.fill_item(child, val)
                else:
                    child.setText(0, str(value.index(val)))
                    child.setExpanded(True)
        else:
            print 'hi'
            child = QTreeWidgetItem()
            child.setText(0, unicode(value))
            item.addChild(child)          
Example #7
0
 def add_children(self, node, item):
     for child in node.children:
         childItem = QTreeWidgetItem()
         childItem.setText(0, child.label)
         childItem.setData(1,Qt.ItemDataRole.EditRole, child)
         item.addChild(childItem)
         
         self.add_children(child, childItem)
Example #8
0
 def set_favorites(self, favoritesRoot):
     self.tree.clear()
     
     item = QTreeWidgetItem()
     item.setText(0, favoritesRoot.label)
     item.setData(1,Qt.ItemDataRole.EditRole, favoritesRoot)
     
     self.tree.addTopLevelItem(item)
     self.add_children(favoritesRoot, item)
Example #9
0
 def add_child(self):
     item = self.tree.currentItem()
     print item.data(1, Qt.ItemDataRole.EditRole).getFullPath()
     newItem = add_child(item.data(1, Qt.ItemDataRole.EditRole))
     
     newChildNode = QTreeWidgetItem()
     newChildNode.setText(0, newItem.label)
     newChildNode.setData(1, Qt.ItemDataRole.EditRole, newItem)
     item.addChild(newChildNode)
Example #10
0
    def cmd_loadList(self):

        self.treeWidget.clear()
        sels = pymel.core.ls(sl=1, type='transform')

        data = []
        for sel in sels:
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, sel.name())
            widgetItem.setText(1, sel.nodeName().split('_')[-1])
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)
            data.append([widgetItem.text(0), widgetItem.text(1)])
Example #11
0
 def fill_item(self, item, value):  #recursively fills the tree
     item.setExpanded(True)
     for key, val in sorted(value.iteritems()):  #tilts
         child = QTreeWidgetItem()
         child.setText(0, unicode(key))
         child.setFlags(Qt.ItemIsEnabled)
         item.addChild(child)
         for keykey in sorted(val.keys()):  #imgIDs
             childchild = QTreeWidgetItem()
             child.addChild(childchild)
             childchild.setText(0, str(keykey))
             child.setExpanded(True)
             childchild.setExpanded(True)
Example #12
0
    def _refresh_value_tree(self, directory_info):
        info = sorted(directory_info, key=lambda x: x.total_size, reverse=True)

        # Clear
        for _ in range(self.value_tree.topLevelItemCount()):
            self.value_tree.takeTopLevelItem(0)

        # Add
        for item in info:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, item.part_path)
            tree_widget.setText(1, self._get_size(item.total_size))
            self.value_tree.addTopLevelItem(tree_widget)
Example #13
0
 def updateTree(self, name):
     ''' adds DataItem to tree view '''
     dataItem = QTreeWidgetItem(self.ui.dataView)
     dataItem.setText(0, name)
     dataItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsEditable)
     for i in range(len(self.datas[-1].data)/4):
         x = DataItem(dataItem)
         x.setText(0, self.datas[-1].name[i*4])
         x.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
         x.setNumData(self.datas[-1].data[i*4])
         if hasattr(self.datas[-1], 'triggers'):
             x.triggers = self.datas[-1].triggers
         if hasattr(self.datas[-1], 'frames'):
             x.depth = self.datas[-1].seekFrame
Example #14
0
 def add_to_tree(self):
     if self.mysql.do:
         self.nDataBase = self.mysql.getDataBase()
         for i in self.nDataBase:
             item_m = QTreeWidgetItem(self)
             item_m.setStatusTip(0, 'main')
             item_m.setText(0, "%s" % i)
             if i in self.li:
                 item_m.setExpanded(True)
             self.table = self.mysql.getTables(i)
             for j in self.table:
                 item_c = QTreeWidgetItem(item_m)
                 item_c.setStatusTip(0, i)
                 item_c.setText(0, "%s" % j)
Example #15
0
    def _refresh_key_tree(self, directory_info, ignore_list=None):
        info = LabelInfo(make_dictionary_by_classification(directory_info, ignore_list))

        # Clear
        for _ in range(self.key_tree.topLevelItemCount()):
            self.key_tree.takeTopLevelItem(0)

        # Add
        for k, v in info.sort_dictionary:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, k)
            total_size = 0
            for child in v['children']:
                total_size += child.total_size
            tree_widget.setText(1, self._get_size(v[constant.sort_size_name]))
            self.key_tree.addTopLevelItem(tree_widget)
        self._last_info = info
Example #16
0
    def readData(self, *args):

        data = super(Widget_objectList,
                     self).readData(Widget_objectList.path_uiInfo)
        if not type(data) == dict: return
        self.treeWidget.clear()
        keys = data.keys()
        keys.sort()
        for key in keys:
            try:
                nodeName, attrName = data[key]
            except:
                return
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, nodeName)
            widgetItem.setText(1, attrName)
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)
Example #17
0
 def getTopLevelItemForDate(self, tw, date):
     """
     @type tw: QListWidget
     """
     for i in range(tw.topLevelItemCount()):
         item = tw.topLevelItem(i)
         if item is None:
             continue
         item_date = item.data(0, Qt.UserRole)
         if date == item_date:
             return item
     item = QTreeWidgetItem([str(date)])
     item.setData(0, Qt.UserRole, date)
     item.setText(0, date.strftime("%A, ") + str(date))
     # FIXME: do we always need to insert at zero idx?
     tw.insertTopLevelItem(0, item)
     return item
Example #18
0
    def loadControllers(self):
        
        self.treeWidget.clear()
        sels = pymel.core.ls( sl=1 )

        currentParent = self.treeWidget
        self.items = []
        
        for sel in sels:
            widgetItem = QTreeWidgetItem( currentParent )
            widgetItem.realObject = sel
            widgetItem.setText( 0, sel.name() )
            if isinstance( currentParent, QTreeWidgetItem ):
                currentParent.setExpanded( True )
            currentParent = widgetItem
            self.items.append( sel.name() )
        self.saveInfo()
Example #19
0
	def addStatus(self, text, err):
		subTreeItem =  QTreeWidgetItem(self.status)
		subTreeItem.setText(0, text)
		self.activateWindow()

		if err == 1:
			font = QFont('Serif', 10, QFont.Bold)
			subTreeItem.setFont(0, font)
			subTreeItem.setForeground(0, QBrush(Qt.white))
			subTreeItem.setBackground(0, QBrush(QColor(150,0,0)))
		elif err == 0:
			font = QFont('Serif', 10, QFont.Bold)
			subTreeItem.setFont(0, font)
			subTreeItem.setForeground(0, QBrush(Qt.black))
			subTreeItem.setBackground(0, QBrush(Qt.white))
		else:
			font = QFont('Serif', 10, QFont.Bold)
			subTreeItem.setFont(0, font)
			subTreeItem.setForeground(0, QBrush(Qt.white))
			subTreeItem.setBackground(0, QBrush(QColor(0,150,0)))			
		self.status.scrollToItem(subTreeItem, QAbstractItemView.PositionAtCenter)
Example #20
0
 def _addMachineToDeployedList(self, ip_address, comment, host):
     '''Adds the given machine to the list of the user deployed ones'''
     itm = QTreeWidgetItem()
     itm.setText(0, ip_address)
     itm.setText(1, comment)
     itm.setText(2, host)
     self._mywindow.tw_deployed.addTopLevelItem(itm)
Example #21
0
    def _showDwordCompares(self):
        """
        Inspects the *whole* binary looking for comparisons between
        global dwords and immediate values. These usually contain error
        codes or alike and appear constantly through the code.
        """

        self._console_output("Looking for Dword compares...")
        self.tree_label.setText("Dword immediate compares")

        dw_dict = self.ba.get_dword_compares()

        # Fill the tree with items
        self.tree.setHeaderLabels(("Dword", "Values", "Address"))

        for dw, values in dw_dict.iteritems():
            dw_item = QTreeWidgetItem(self.tree)
            dw_item.setText(0, dw)

            for value, addr in values:
                value_item = QTreeWidgetItem(dw_item)
                value_item.setText(1, value)
                value_item.setText(2, "0x%x" % addr)

        # Display all items expanded initially
        self.tree.expandAll()
    def _showBannedFunctions(self):
        """
        Points to functions banned by Microsoft being used.
        """
        self._console_output("Looking for banned functions...")

        deep_search_f = self.config.deep_dangerous_functions

        if deep_search_f:
            self._console_output("Performing a deep search \
                (based on function name)")

        banned_refs_dict = self.vd.find_banned_functions(deep_search_f)

        if not banned_refs_dict:
            self._console_output("[!] No banned functions found", err = True)
            return

        self.tree_label.setText("Functions banned by Microsoft")
        self.tree.clear()
        self.tree.setHeaderLabels(("Banned function", "References", "Name"))

        for f_name, refs in banned_refs_dict.iteritems():
            bf_item = QTreeWidgetItem(self.tree)
            bf_item.setText(0, f_name)

            for ref_addr in refs:
                ref_item = QTreeWidgetItem(bf_item)
                ref_item.setText(1, "%x" % ref_addr)
                ref_name = misc.get_function_name(ref_addr)
                ref_item.setText(2, ref_name)

        # Display all items expanded initially
        self.tree.expandAll()
Example #23
0
    def _showDwordCompares(self):
        """
        Inspects the *whole* binary looking for comparisons between
        global dwords and immediate values. These usually contain error
        codes or alike and appear constantly through the code.
        """

        self._console_output("Looking for Dword compares...")
        self.tree_label.setText("Dword immediate compares")

        dw_dict = self.ba.get_dword_compares()

        # Fill the tree with items
        self.tree.setHeaderLabels(("Dword", "Values", "Address"))

        for dw, values in dw_dict.iteritems():
            dw_item = QTreeWidgetItem(self.tree)
            dw_item.setText(0, dw)

            for value, addr in values:
                value_item = QTreeWidgetItem(dw_item)
                value_item.setText(1, value)
                value_item.setText(2, "%x" %addr)

        # Display all items expanded initially
        self.tree.expandAll()
Example #24
0
    def _showBannedFunctions(self):
        """
        Points to functions banned by Microsoft being used.
        """
        self._console_output("Looking for banned functions...")

        deep_search_f = self.config.deep_dangerous_functions

        if deep_search_f:
            self._console_output("Performing a deep search (based on function name)")

        banned_refs_dict = self.vd.find_banned_functions(deep_search_f)

        if not banned_refs_dict:
            self._console_output("[!] No banned functions found", err = True)
            return

        self.tree_label.setText("Functions banned by Microsoft")
        self.tree.clear()
        self.tree.setHeaderLabels(("Banned function", "References", "Name"))

        for f_name, refs in banned_refs_dict.iteritems():
            bf_item = QTreeWidgetItem(self.tree)
            bf_item.setText(0, f_name)

            for ref_addr in refs:
                ref_item = QTreeWidgetItem(bf_item)
                ref_item.setText(1, "%x" %ref_addr)
                ref_name = misc.get_function_name(ref_addr)
                ref_item.setText(2, ref_name)

        # Display all items expanded initially
        self.tree.expandAll()
Example #25
0
 def _addMachineToDeployedList(self, ip_address, comment, host):
     '''Adds the given machine to the list of the user deployed ones'''
     itm = QTreeWidgetItem()
     itm.setText(0, ip_address)
     itm.setText(1, comment)
     itm.setText(2, host)
     self._mywindow.tw_deployed.addTopLevelItem(itm)
Example #26
0
    def import_from_text_file(self):
        arquivo_Caminho = QFileDialog.getOpenFileName(
            None, "Select txt file", '/', "(*.txt);; All Files (*.*)", None)[0]

        filename = arquivo_Caminho

        self.f = open(filename)

        reader = csv.reader(self.f, delimiter='\t')

        linhas = [linha for linha in reader]

        for i in linhas:
            if len(i) == 0:
                continue
            else:
                print i
                a = QTreeWidgetItem(self.ui.treeWidget)
                a.setText(0, str(i[0]))
                a.setText(1, str(i[1]))
                a.setText(2, str(i[2]))
                a.setText(3, str(i[3]))
Example #27
0
    def loadInfo(self):
        
        data = BaseCommands.readData( self.uiInfoPath )
        if not data.has_key( 'controllers' ): return None
        controllerList = data[ 'controllers' ]
        
        controllers = []
        for controller in controllerList:
            if not pymel.core.ls( controller ): continue
            controllers.append( pymel.core.ls( controller )[0] )
        self.treeWidget.clear()

        currentParent = self.treeWidget
        self.items = []
        
        for sel in controllers:
            widgetItem = QTreeWidgetItem( currentParent )
            widgetItem.realObject = sel
            widgetItem.setText( 0, sel.name() )
            if isinstance( currentParent, QTreeWidgetItem ):
                currentParent.setExpanded( True )
            currentParent = widgetItem
            self.items.append( sel.name() )
Example #28
0
    def update(self):
        items = []
        playerx, playery = 0, 0
        for objid, obj in self.worldviewer.world_objects.items():
            if "Object.ScriptedObject.Character" in obj['_types']:
                playerx = obj['loc']['x']
                playery = obj['loc']['y']
                break

        for objid, obj in self.worldviewer.world_objects.items():
            name = obj['name']
            try:
                locx = obj['loc']['x']
            except KeyError:
                continue
            locy = obj['loc']['y']
            locz = obj['loc']['z']
            resource = obj['resource']
            last_modified = datetime.datetime.fromtimestamp(
                int(str(obj['last_modified']['$date'])[:-3]))

            row = self.objects_tree.findItems(objid, Qt.MatchExactly, column=0)
            if row:
                # Update it if it exists already
                item = row[0]
            if not row:
                # If Item does not exist in the tree widget already, make a new one.
                item = QTreeWidgetItem(self.objects_tree)
                items.append(item)

            for i, param in enumerate(
                (objid, name, (locx, locy, locz), resource, last_modified,
                 "%04d" % euclidian(locx, locy, playerx, playery))):
                item.setText(i, str(param))

        if items:
            self.objects_tree.insertTopLevelItems(0, items)
Example #29
0
    def _populateTree(self):
        self.pushupsListWidget.clear()
        self.pushupsListWidget.setColumnCount(4)
        self.pushupsListWidget.setHeaderLabels([
            "Date", "TotalPushups", "Series", "Repetitions",
            "Average Heart Rate"
        ])
        self.pushupsListWidget.setSortingEnabled(True)
        self.pushupsListWidget.setColumnWidth(0, 180)
        self.pushupsListWidget.setColumnWidth(4, 150)

        pushupDict = self._getPushupDictionary()

        for it, dayOfExercise in enumerate(sorted(pushupDict.keys())):

            dateItem = QTreeWidgetItem()

            dayLabel = dayOfExercise.strftime("%Y/%m/%d")

            dateItem.setText(0, "\n" + dayLabel + "\nDay : " + str(it))

            self.pushupsListWidget.addTopLevelItem(dateItem)

            totalPushups = 0
            for pushup in pushupDict[dayOfExercise]:
                pushupItem = QTreeWidgetItem()

                pushupItem.setText(2, "#" + str(pushup._series))
                pushupItem.setText(3, str(pushup._repetitions))
                pushupItem.setText(4, str(pushup._averageHeartRate))
                pushupItem.setData(0, Qt.UserRole, pushup)

                totalPushups = totalPushups + pushup._repetitions

                dateItem.addChild(pushupItem)

            dateItem.setText(1, str(totalPushups))
Example #30
0
 def _populateTree(self):
     self.pushupsListWidget.clear()
     self.pushupsListWidget.setColumnCount(4)
     self.pushupsListWidget.setHeaderLabels(["Date", "TotalPushups", 
                                             "Series", "Repetitions",
                                             "Average Heart Rate"])
     self.pushupsListWidget.setSortingEnabled(True)
     self.pushupsListWidget.setColumnWidth(0, 180)
     self.pushupsListWidget.setColumnWidth(4, 150)
     
     pushupDict = self._getPushupDictionary()
     
     for it, dayOfExercise in enumerate(sorted(pushupDict.keys())):                  
          
         dateItem = QTreeWidgetItem()
         
         dayLabel = dayOfExercise.strftime("%Y/%m/%d")
         
         dateItem.setText(0, "\n" + dayLabel + "\nDay : " + str(it))
         
         self.pushupsListWidget.addTopLevelItem(dateItem)
         
         totalPushups = 0
         for pushup in pushupDict[dayOfExercise]:
             pushupItem = QTreeWidgetItem()
             
             pushupItem.setText(2, "#" + str(pushup._series))
             pushupItem.setText(3, str(pushup._repetitions))
             pushupItem.setText(4, str(pushup._averageHeartRate))
             pushupItem.setData(0, Qt.UserRole, pushup)
             
             totalPushups = totalPushups + pushup._repetitions 
             
             dateItem.addChild(pushupItem)  
         
         dateItem.setText(1, str(totalPushups))
Example #31
0
 def _addRunningVmToList(self, lst):
     '''adds a vm to the running vm list from a list of strings'''
     #FIXME: use a dict
     itm = QTreeWidgetItem()
     itm.setText(0, lst[0])
     itm.setText(1, lst[1])
     itm.setText(2, lst[2])
     itm.setText(3, lst[3])
     itm.setText(4, lst[4])
     itm.setText(5, lst[5])
     self._mywindow.tw_running_vms.addTopLevelItem(itm)
Example #32
0
 def _addRunningVmToList(self, lst):
     '''adds a vm to the running vm list from a list of strings'''
     #FIXME: use a dict
     itm = QTreeWidgetItem()
     itm.setText(0, lst[0])
     itm.setText(1, lst[1])
     itm.setText(2, lst[2])
     itm.setText(3, lst[3])
     itm.setText(4, lst[4])
     itm.setText(5, lst[5])
     self._mywindow.tw_running_vms.addTopLevelItem(itm)
Example #33
0
    def update(self):
        """
        Updates listed publishers, newspapers and subscribers
        """
        self.view.publishers.clear()
        self.view.subscribers.clear()

        for publisher in self.publishers.values():
            p_widget = QTreeWidgetItem()
            p_widget.setText(0, publisher.name)

            for newspaper in publisher.newspapers:
                n_widget = QTreeWidgetItem(p_widget)
                n_widget.setText(0, newspaper)

            self.view.publishers.addTopLevelItem(p_widget)

        for subscriber in self.subscribers:
            s_widget = QTreeWidgetItem()
            s_widget.setText(0, subscriber)
            self.view.subscribers.addTopLevelItem(s_widget)
Example #34
0
 def __init__(self, mainwindow, config):
     super(SettingsDialog, self).__init__()
     self.setWindowTitle(self.str_title)
     # Reference kept to set settings in MainWindow
     self.mainwindow = mainwindow
     """A reference to the top window of the app."""
     self.config = config
     """The settings of our app."""
     # Setting log handlers
     logHandlers = QGroupBox(self.str_logHandlers)
     logHandlersLayout = QVBoxLayout()
     logHandlers.setLayout(logHandlersLayout)
     logToGui = QCheckBox(self.str_logToGui)
     logToGui.setChecked(self.config.getboolean('LogHandlers', 'gui'))
     logToGui.stateChanged.connect(
         lambda: self.chooseHandler(logToGui, 'gui'))
     logHandlersLayout.addWidget(logToGui)
     logtoStdout = QCheckBox(self.str_logToStdout)
     logtoStdout.setChecked(self.config.getboolean('LogHandlers', 'stdout'))
     logtoStdout.stateChanged.connect(
         lambda: self.chooseHandler(logtoStdout, 'stdout'))
     logHandlersLayout.addWidget(logtoStdout)
     logToFile = QCheckBox(self.str_logToFile)
     logToFile.setChecked(self.config.getboolean('LogHandlers', 'file'))
     logToFile.stateChanged.connect(
         lambda: self.chooseHandler(logToFile, 'file'))
     logHandlersLayout.addWidget(logToFile)
     # Setting log verbosity
     logVerbosity = QGroupBox(self.str_logVerbosity)
     logVerbosityLayout = QHBoxLayout()
     logVerbosity.setLayout(logVerbosityLayout)
     self.verbosityOptions = QTreeWidget()
     self.verbosityOptions.header().setVisible(False)
     for k, v in self.str_treeItems.items():
         node = QTreeWidgetItem(self.verbosityOptions, [k])
         if isinstance(v, str):
             node.setText(1, v)
             node.setCheckState(
                 0, boolToCheckState(
                     self.config.getboolean('LogVerbosity', v)))
         else:
             count = 0
             for key, val in v.items():
                 item = QTreeWidgetItem(node, [key, val])
                 checked = self.config.getboolean('LogVerbosity', val)
                 item.setCheckState(0, boolToCheckState(checked))
                 if checked:
                     count += 1
             if count == node.childCount():
                 node.setCheckState(0, Qt.Checked)
             elif count == 0:
                 node.setCheckState(0, Qt.Unchecked)
             else:
                 node.setCheckState(0, Qt.PartiallyChecked)
     self.verbosityOptions.itemChanged.connect(self.chooseVerbosity)
     logVerbosityLayout.addWidget(self.verbosityOptions)
     # Setting clock speed
     clock = QGroupBox(self.str_clock)
     clockLayout = QHBoxLayout()
     clock.setLayout(clockLayout)
     clockLayout.addWidget(QLabel(self.str_clockSpeed))
     spin = QDoubleSpinBox()
     spin.setValue(self.config.getfloat('Clock', 'speed'))
     clockLayout.addWidget(spin)
     # Setting appearance
     appearance = QGroupBox(self.str_appearance)
     appearanceLayout = QHBoxLayout()
     appearance.setLayout(appearanceLayout)
     appearanceLayout.addWidget(QLabel(self.str_circBgColor))
     circBgBtn = QPushButton(self.str_choose)
     circBgBtn.setPalette(QPalette(
         QColor(self.config.get('Appearance', 'circ_bg_color'))))
     circBgBtn.clicked.connect(
         lambda: self.chooseColor(circBgBtn, 'circ_bg_color'))
     appearanceLayout.addWidget(circBgBtn)
     appearanceLayout.addWidget(QLabel(self.str_logBgColor))
     logBgBtn = QPushButton(self.str_choose)
     logBgBtn.setPalette(QPalette(
         QColor(self.config.get('Appearance', 'log_bg_color'))))
     logBgBtn.clicked.connect(
         lambda: self.chooseColor(logBgBtn, 'log_bg_color'))
     appearanceLayout.addWidget(logBgBtn)
     # Saving settings to file and effectively setting them
     close = QPushButton(self.str_close)
     close.clicked.connect(self.closeAndApply)
     layout = QGridLayout(self)
     layout.addWidget(logHandlers, 0, 0, 1, 1)
     layout.addWidget(logVerbosity, 0, 1, 1, 1)
     layout.addWidget(clock, 1, 0, 1, 2)
     layout.addWidget(appearance, 2, 0, 1, 2)
     layout.addWidget(close, 3, 1, 1, 1)
     self.setLayout(layout)
Example #35
0
    def loadList(self):

        brush_notExists = QBrush(QColor(255, 150, 120))
        brush_unUsed = QBrush(QColor(120, 180, 255))
        brush_unUsed_and_notExists = QBrush(QColor(225, 120, 225))
        brush_notExists_file = QBrush(QColor(255, 100, 100))
        brush_unUsed_file = QBrush(QColor(100, 150, 255))

        extensionList = [
            dict1['extension'] for dict1 in self.dict_extensionList
        ]
        extensionList_with_dot = ['.' + str1 for str1 in extensionList]

        def cmdByExtension(first, second):
            firstSplit = os.path.splitext(first)
            secondSplit = os.path.splitext(second)
            if len(firstSplit) < 2 or len(secondSplit) < 2:
                return cmp(first, second)
            if not firstSplit[-1] or not secondSplit[-1]:
                return cmp(first, second)
            if firstSplit[-1][0] != '.' or secondSplit[-1][0] != '.':
                return cmp(first, second)
            if not firstSplit[-1].lower() in extensionList_with_dot:
                return cmp(first, second)
            if not secondSplit[-1].lower() in extensionList_with_dot:
                return cmp(first, second)
            if firstSplit[-1].lower() > secondSplit[-1].lower():
                return 1
            elif firstSplit[-1].lower() < secondSplit[-1].lower():
                return -1
            return cmp(first, second)

        from maya import cmds
        basePath = os.path.dirname(cmds.file(q=1, sceneName=1))
        self.lineEdit.setText(basePath)

        self.w_tree.clear()
        dict_attrs = {}
        for w_typeAttr in self.w_typeAttrList.w_typeAttrs:
            if not w_typeAttr.checkBox.isChecked(): continue
            targetAttrs = pymel.core.ls('*.%s' % w_typeAttr.attr_name)
            for targetAttr in targetAttrs:
                dirName = os.path.dirname(
                    os.path.normpath(targetAttr.get().strip().lower()))
                if not dict_attrs.has_key(dirName):
                    dict_attrs[dirName] = [targetAttr]
                else:
                    dict_attrs[dirName].append(targetAttr)

        showUnusedDir = self.checkBox.isChecked()
        for dirName in dict_attrs:
            filesInDir = []
            for root, dirs, names in os.walk(dirName):
                for name in names:
                    targetPath = os.path.normpath(root + '/' +
                                                  name).strip().lower()
                    try:
                        ext = os.path.splitext(targetPath)[-1]
                    except:
                        continue
                    if not ext[1:].lower() in extensionList: continue
                    filesInDir.append(targetPath)
                break

            attrList = dict_attrs[dirName]
            itemBase = QTreeWidgetItem(self.w_tree)
            itemBase.setText(0, os.path.normpath(dirName).strip().lower())

            notExistsList = []
            unusedList = []

            attrs_from_paths = {}
            for attr in attrList:
                path = os.path.normpath(attr.get().strip().lower())
                if attrs_from_paths.has_key(path):
                    attrs_from_paths[path].append(attr)
                else:
                    attrs_from_paths[path] = [attr]

            keys_attrs_from_paths = attrs_from_paths.keys()
            keys_attrs_from_paths.sort(cmdByExtension)

            for path in keys_attrs_from_paths:
                item = QTreeWidgetItem(itemBase)
                item.setText(0, path)
                attrs = attrs_from_paths[path]
                attrName = attrs[0].name()
                if len(attrs) > 1: attrName += '...'
                item.setText(1, attrName)
                item.attrs = attrs

                if not os.path.exists(path):
                    item.setForeground(0, brush_notExists_file)
                    notExistsList.append(path)

                if path in filesInDir:
                    filesInDir.remove(path)

            if showUnusedDir:
                for fileInDir in filesInDir:
                    item = QTreeWidgetItem(itemBase)
                    path = os.path.normpath(fileInDir).strip().lower()
                    item.setText(0, path)
                    item.setForeground(0, brush_unUsed_file)
                    item.attrs = None
                    unusedList.append(path)

            if unusedList and notExistsList:
                itemBase.setForeground(0, brush_unUsed_and_notExists)
            elif unusedList:
                itemBase.setForeground(0, brush_unUsed)
            elif notExistsList:
                itemBase.setForeground(0, brush_notExists)

        self.w_tree.resizeColumnToContents(0)
        self.w_tree.setColumnWidth(0, self.w_tree.columnWidth(0) + 10)