def closeAll(self): leafItems = self.getTreeLeafItems() for i in range(len(leafItems)): sToolFileName = leafItems[i].text(2) sToolName = leafItems[i].text(0) sType = main.getPyFileType(sToolFileName) if sType == "tool": bOpened = utils.isToolOpened(sToolName) if bOpened: isDockable = utils.isToolDockable(sToolName) utils.closeTool(sToolName, dock=isDockable) else: utils.closeTool(sToolName) # leafItems[i].setBackground(1, QtGui.QBrush(self.openStateColor)) leafItems[i].setIcon(1, self.toolIcon) leafItems[i].setForeground(1, QtGui.QBrush(self.foregroundColor)) leafItems[i].setText(1, "Open")
def treeItemExecution(self, item, column): if item.childCount() == 0: sToolName = item.text(0) sToolFileName = item.text(2) sType = main.getPyFileType(sToolFileName) # oModule = utils.importModule(sToolName) importStatement = main.getPyFileFullImportName(sToolFileName) print sToolFileName oModule = importlib.import_module(importStatement) # If the module can be run or closed if sType == "tool": bOpened = utils.isToolOpened(sToolName) # run or close the tool if bOpened: isDockable = utils.isToolDockable(sToolName) utils.closeTool(sToolName, dock=isDockable) else: utils.openTool(sToolName, module=oModule) # if the module is a tool the Open/Close label must be updated bOpened = utils.isToolOpened(sToolName) if bOpened: # item.setBackground(1, QtGui.QBrush(self.closeStateColor)) item.setForeground(1, QtGui.QBrush(self.closeStateColor)) item.setIcon(1, self.toolOpenIcon) item.setText(1, "Close") else: # item.setBackground(1, QtGui.QBrush(self.openStateColor)) item.setForeground(1, QtGui.QBrush(self.foregroundColor)) item.setIcon(1, self.toolIcon) item.setText(1, "Open") elif sType == "script": utils.executeScript(sToolName, module=oModule)
def fillTree(self): # clear the tree self.ui.tr_toolsTree.clear() # get the elements for the list lElements = self.getListElements() # iterate the elements adding them to the list currentCategoriesItems = [] currentCategories = [] currentParent = self.ui.tr_toolsTree currentParentName = "" for i in range(len(lElements)): # get the type and name sElementName = os.path.splitext(ntpath.basename(lElements[i]))[0] sType = main.getPyFileType(lElements[i]) # state options if sType == "tool": bOpened = utils.isToolOpened(sElementName) if bOpened: sState = "Close" cStateColor = self.closeStateColor else: sState = "Open" cStateColor = self.openStateColor elif sType == "script": sState = "Execute" cStateColor = self.executeStateColor # list the tool/script categories lCategories = main.getPyFileCategoryTree(lElements[i]) if set(currentCategories) != set(lCategories): if len(currentCategories) == 0: currentParent = self.ui.tr_toolsTree currentParentName = "" elif listUtils.isSublist(currentCategories, lCategories) and (currentCategories[0] == lCategories[0]): lCategories = (list(set(lCategories) - set(currentCategories))) elif listUtils.isSublist(lCategories, currentCategories) and (currentCategories[0] == lCategories[0]): extra = (list(set(currentCategories) - set(lCategories))) currentCategories = currentCategories[:-len(extra)] currentCategoriesItems = currentCategoriesItems[:-len(extra)] currentParent = currentCategoriesItems[len(currentCategoriesItems)-1] currentParentName = currentCategories[len(currentCategories)-1] else: tmpCategories = lCategories while not listUtils.isSublist(tmpCategories, currentCategories) and len(tmpCategories) > 0: tmpCategories = tmpCategories[:-1] if len(tmpCategories) > 0: extra = (list(set(currentCategories) - set(tmpCategories))) currentCategories = currentCategories[:-len(extra)] currentCategoriesItems = currentCategoriesItems[:-len(extra)] currentParent = currentCategoriesItems[len(currentCategoriesItems)-1] currentParentName = currentCategories[len(currentCategories)-1] lCategories = (list(set(lCategories) - set(tmpCategories))) else: currentParent = self.ui.tr_toolsTree currentParentName = "" currentCategoriesItems = [] currentCategories = [] for cat in lCategories: item = QtGui.QTreeWidgetItem(currentParent,[cat]) item.setExpanded(True) item.setForeground(0, QtGui.QBrush(self.foregroundColor)) item.setForeground(1, QtGui.QBrush(self.foregroundColor)) item.setBackground(0, QtGui.QBrush(self.categoryColor)) item.setBackground(1, QtGui.QBrush(self.categoryColor)) item.setIcon(0, self.categoryIcon) currentParent = item currentParentName = cat currentCategories.append(cat) currentCategoriesItems.append(item) item = QtGui.QTreeWidgetItem(currentParent, [sElementName, sState, lElements[i], sType]) # item.setBackground(1, QtGui.QBrush(cStateColor)) item.setForeground(0, QtGui.QBrush(self.foregroundColor)) item.setForeground(1, QtGui.QBrush(self.foregroundColor)) item.setSizeHint(1, QtCore.QSize(-1, 20)) item.setTextAlignment(1, QtCore.Qt.AlignCenter) if sType == "tool": item.setIcon(1, self.toolIcon) else: item.setIcon(1, self.scriptIcon)