Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
	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")
Exemplo n.º 3
0
	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)