Example #1
0
	def onShowPresetsMenu(self, event):
		"""
		show a menu with preloaded presets for different tasks
		"""
		if not self.presetMenu:
			self.presetMenu = wx.Menu()
			addId = wx.NewId()
			addItem = wx.MenuItem(self.presetMenu, addId, "Save as preset...")
			self.presetMenu.AppendItem(addItem)
			self.presetMenu.AppendSeparator()
			self.Bind(wx.EVT_MENU, self.onSavePreset, id = addId)
			
			presetDir = scripting.get_preset_dir()
			presetFiles = os.path.join(presetDir,"*.bxp")
			files = glob.glob(presetFiles)
			for filenm in files:
				name = ".".join(os.path.basename(filenm).split(".")[:-1])
				fileId = wx.NewId()
				fileItem = wx.MenuItem(self.presetMenu, fileId, name)
				filenm = filenm.replace("\\", "\\\\")
				if platform.system == "Windows":
					filenm = filenm.encode('mbcs')
				do_cmd = "%s.loadPreset('%s')" % (self.scriptingId, filenm)
			   
				cmd = lib.Command.Command(lib.Command.GUI_CMD, None, None, do_cmd, "", \
											desc = "Load preset %s" % name)
				f = lambda evt, c = cmd: c.run()
				self.Bind(wx.EVT_MENU, f, id = fileId)
				self.presetMenu.AppendItem(fileItem)
				
		self.presetBtn.PopupMenu(self.presetMenu, event.GetPosition())
Example #2
0
	def saveAsPreset(self, name):
		"""
		save the procedure list as preset
		"""
		parser = ConfigParser.RawConfigParser()
		parser.optionxform = str
		self.filterList.writeOut(parser)

		presetDir = scripting.get_preset_dir()
		if platform.system() == "Windows":
			try:
				name = name.encode('mbcs')
			except:
				Logging.error("Preset saving error", 'Only ascii characters (a-z,0-9,-,_) can be used in preset name in Windows')

		if not os.access(presetDir, os.F_OK):
			os.mkdir(presetDir)
		filename = os.path.join(presetDir, name + ".bxp")
		parser.write(open(filename,"w"))