Exemplo n.º 1
0
	def addItems(self, parentNode):
		for element in parentNode:
			if element.tag and element.tag == "item":
				itemLevel = int(element.get("level", 0))
				if itemLevel > config.usage.setup_level.index:  # The item is higher than the current setup level.
					continue
				requires = element.get("requires")
				if requires:
					negate = requires.startswith("!")
					if negate:
						requires = requires[1:]
					if requires.startswith("config."):
						item = eval(requires)
						SystemInfo[requires] = True if item.value and item.value not in ("0", "False", "false") else False
						clean = True
					else:
						clean = False
					result = bool(SystemInfo.get(requires, False))
					if clean:
						SystemInfo.pop(requires, None)
					if requires and negate == result:  # The item requirements are not met.
						continue
				conditional = element.get("conditional")
				if conditional and not eval(conditional):  # The item conditions are not met.
					continue
				if self.PluginLanguageDomain:
					itemText = dgettext(self.PluginLanguageDomain, element.get("text", "??").encode("UTF-8"))
					itemDescription = dgettext(self.PluginLanguageDomain, element.get("description", " ").encode("UTF-8"))
				else:
					itemText = _(element.get("text", "??").encode("UTF-8"))
					itemDescription = _(element.get("description", " ").encode("UTF-8"))
				itemText = itemText.replace("%s %s", "%s %s" % (SystemInfo["MachineBrand"], SystemInfo["MachineName"]))
				itemDescription = itemDescription.replace("%s %s", "%s %s" % (SystemInfo["MachineBrand"], SystemInfo["MachineName"]))
				item = eval(element.text or "")
				if item != "" and not isinstance(item, ConfigNothing):
					itemDefault = "(Default: %s)" % item.toDisplayString(item.default)
					itemDescription = "%s  %s" % (itemDescription, itemDefault) if itemDescription and itemDescription != " " else itemDefault
					self.list.append((itemText, item, itemDescription))  # Add the item to the config list.
				if item is config.usage.boolean_graphic:
					self.switch = True