예제 #1
0
	def load_progression(self, prog_str):
		p = str(prog_str)
		parts = p.split(" ")
		if len(parts) == 0:
			return 

		if len(parts) == 1 and p in Options.get_available_progressions():
			x = Options.progression_to_string(getattr(Progressions, p))
			return self.load_progression("%s %s" % (p, x))

		self.ui.progressionname.setText(parts[0])
		if len(parts) > 3:
			params = parts[2:-1]
			for x in params:
				r = x.split("*")
				if len(r) == 2:
					self.ui.progressionsequence.addItem("%d %s" % (int(r[0]), r[1]))
				if len(r) == 1 and x != "":
					self.ui.progressionsequence.addItem("0 %s" % r[0])
예제 #2
0
	def get_Progressions(self, only_defaults = False, parse_content = True):
		defaults = {"Empty": ""}

		# Gather default (builtin) progressions.
		for x in Options.get_available_progressions():
			prog = Options.progression_to_string(getattr(Progressions, x))[1:-1]
			if not parse_content:
				defaults[x] = "%s { %s }" % (x, prog)
			else:
				defaults[x] = prog

		if only_defaults:
			return defaults
		res = {}

		for x in self.progressions:
			if not res.has_key(x[2]):
				res[x[2]] = {}

			# Parse progressions in x[5]
			for p in x[5].split(","):
				if not res[x[2]].has_key(x[3]):
					res[x[2]][x[3]] = ""
				if parse_content:
					params = p.split(" ")
					name = params[0]
					params = " ".join(params[1:])[1:-1]
					res[x[2]][x[3]] += params
				else:
					res[x[2]][x[3]] += p + ","

			# Remove comma
			if not parse_content:
				res[x[2]][x[3]] = res[x[2]][x[3]][:-1]



		res['Default'] = defaults
		return res