def setlite(s): s.setload() FORM = appuifw.Form( [(ru('Разделитель'), 'text', s.DIVSIMVOL), (ru('Новое имя'), 'text', s.LITENEWNAME), (ru('Дополнительно'), 'combo', ([ru('Отключено'), ru('Счётчик'), ru('Время'), ru('Дата')], s.LITEADDFUNC)), (ru('Начало счётчика'), 'number', s.COUNTSTART), (ru('Шаг счётчика'), 'number', s.COUNTSTEP), (ru('Кол-во цифр в счётчике'), 'number', s.COUNTDIGITS), (ru('Расш-ие для фильтр-ии'), 'text', s.FILTEREXT)], appuifw.FFormEditModeOnly | appuifw.FFormDoubleSpaced) FORM.execute() s.DIVSIMVOL, s.LITENEWNAME, s.LITEADDFUNC, s.COUNTSTART, s.COUNTSTEP, s.COUNTDIGITS, s.FILTEREXT = FORM[ 0][2], FORM[1][2], FORM[2][2][1], FORM[3][2], FORM[4][2], FORM[5][ 2], FORM[6][2] if len(s.LITENEWNAME) == 0: s.MASKNAME = '!N' else: s.MASKNAME = s.LITENEWNAME if s.LITEADDFUNC == 1: s.MASKNAME += ',' + s.DIVSIMVOL + ',!C' elif s.LITEADDFUNC == 2: s.MASKNAME += ',' + s.DIVSIMVOL + ',!T' elif s.LITEADDFUNC == 3: s.MASKNAME += ',' + s.DIVSIMVOL + ',!D' s.MASKEXT = '!E' s.setsave()
def set_email_cb(): def save_hook(f): config.set("email","enable",int(f[0][2][1])) config.set("email","host",str(f[1][2])) config.set("email","port",int(f[2][2])) config.set("email","from",str(f[3][2])) config.set("email","to",str(f[4][2])) config.set("email","interval",int(f[5][2])) config.set("email","attach",int(f[6][2][1])) config.set("email","resolution",int(f[7][2][1])) config.save() return True image_sizes = [] for x in resolutions: image_sizes.append(u"%sx%s" % x) enable = config.get("email","enable",0) host = config.get("email","host","localhost").decode() port = config.get("email","port",25) sender = config.get("email","from","*****@*****.**").decode() targets = config.get("email","to","*****@*****.**").decode() interval = config.get("email","interval",3600) attach = config.get("email","attach",0) resolution = config.get("email","resolution",0) fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_host_smtp"),"text",host), (_("M_port"),"number",port),(_("M_sender"),"text",sender), (_("M_targets"),"text",targets),(_("M_interval"),"number",interval), (_("M_attach_img"),"combo",([_("M_no"),_("M_yes")],attach)), (_("M_resolution"),"combo",(image_sizes,resolution))] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def show_settings(): ap_list=[u'---None---'] for i in btsocket.access_points(): ap_list.append(i['name']) try: ap_default=ap_list.index(settings['default_ap']) except: ap_default=0 form=appuifw.Form( [ (u'Show read Articles','combo', ([u'No', u'Yes'],int(settings['show_read']))), (u'Default access point','combo', (ap_list,ap_default)), (u'Update feeds on open','combo', ([u'No', u'Yes'],int(settings['update_on_open']))), (u'Items to store per feed','number',settings['items_per_feed']), (u'Max chars per line','number',settings['chars_per_line']), #(u'txt','text', u'default'), #(u'number','number', 123), #(u'date','date'), #(u'time','time'), ], appuifw.FFormDoubleSpaced | appuifw.FFormEditModeOnly) form.execute() settings['show_read']=bool(form[0][2][1]) settings['default_ap']=ap_list[form[1][2][1]] settings['update_on_open']=bool(form[2][2][1]) settings['items_per_feed']=int(form[3][2]) settings['chars_per_line']=int(form[4][2])
def set_video_cb(): def save_hook(f): left,top,right,bottom = (int(f[0][2]),int(f[1][2]),int(f[2][2]),int(f[3][2])) config.set("video","left",left) config.set("video","top",top) config.set("video","right",right) config.set("video","bottom",bottom) config.set("video","thresold",int(f[4][2])) config.set("video","max_pixels",int(f[5][2])) config.set("video","step",int(f[6][2])) config.save() refresh_motion() return True left,top,right,bottom = motion.square thresold = motion.thresold max_pixels = motion.max_pixels step = motion.step fields = [(_("M_left"),"number",left),(_("M_top"),"number",top),(_("M_right"),"number",right), (_("M_bottom"),"number",bottom),(_("M_thresold"),"number",thresold), (_("M_pixels"),"number",max_pixels),(_("M_grid_size"),"number",step)] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def set_photo_cb(): def save_hook(f): config.set("photo","flash",int(f[0][2][1])) config.set("photo","zoom",int(f[1][2])) config.set("photo","exposure",int(f[2][2][1])) config.set("photo","balance",int(f[3][2][1])) config.set("photo","resolution",int(f[4][2][1])) config.save() return True flash_modes = [] for x in camera.flash_modes(): flash_modes.append(x.decode()) exposure_modes = [] for x in camera.exposure_modes(): exposure_modes.append(x.decode()) balance_modes = [] for x in camera.white_balance_modes(): balance_modes.append(x.decode()) image_sizes = [] for x in camera.image_sizes(): image_sizes.append(u"%sx%s" % x) flash = config.get("photo","flash",0) zoom = config.get("photo","zoom",0) exposure = config.get("photo","exposure",0) balance = config.get("photo","balance",0) resolution = config.get("photo","resolution",0) fields = [(_("M_flash"),"combo",(flash_modes,flash)),(_("M_zoom"),"number",zoom), (_("M_exposure"),"combo",(exposure_modes,exposure)), (_("M_balance"),"combo",(balance_modes,balance)), (_("M_resolution"),"combo",(image_sizes,resolution))] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def set_storage_cb(): def save_hook(f): config.set("storage","enable",int(f[0][2][1])) config.set("storage","directory",str(f[1][2])) config.set("storage","counter",int(f[2][2])) config.set("storage","interval",int(f[3][2])) config.set("storage","resolution",int(f[4][2][1])) config.save() return True image_sizes = [] for x in resolutions: image_sizes.append(u"%sx%s" % x) enable = config.get("storage","enable",0) directory = config.get("storage","directory","E:\\Images").decode() counter = config.get("storage","counter",0) interval = config.get("storage","interval",60) resolution = config.get("storage","resolution",0) fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_directory"),"text",directory), (_("M_counter"),"number",counter),(_("M_interval"),"number",interval), (_("M_resolution"),"combo",(image_sizes,resolution))] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def advancedsettings(self): current = self.on('get_settings') fields = [(u'Bytes per chunk', 'number', current['chunkbytes'])] f = appuifw.Form(fields, appuifw.FFormDoubleSpaced | appuifw.FFormEditModeOnly) f.save_hook = self.saveadvsettings f.execute()
def create_form(self, flags = None): # Set the view/edit mode of the form if not flags: flags = appuifw.FFormEditModeOnly + appuifw.FFormDoubleSpaced form_fields = self.create_form_fields() # Creates the form self.form = appuifw.Form(form_fields, flags) self.form.save_hook = self.save_hook
def test_form_type(): fields = [(u"Text", "text", u"Check that this line is wrapped and " + "that it spans more than a line. "), (u"Integer", 'number', 12), (u"Date - 2009-05-18 10:10:00", 'date', 1242641400.0), (u"Time - 10:00", 'time', float(10 * 60 * 60)), (u"Combo", 'combo', ([u"1", u"2", u"3"], 0)), (u"Float", 'float', 0.12345)] f = appuifw.Form(fields, appuifw.FFormEditModeOnly) f.execute()
def handle_add(self): new_entry = SportsDiaryEntry() data = new_entry.get_form() flags = appuifw.FFormEditModeOnly f = appuifw.Form(data, flags) f.execute() new_entry.set_from_form(f) self.sports_diary.add(new_entry) self.lock.signal()
def form(self,items,flags=0,save=None,menu=None): f=appuifw.Form(items,flags) if menu is not None: f.menu=menu if save is not None: f.save_hook=save f.execute() if save is None: return f
def saveAs(self): fields=[(u'File Name','text',unicode(self.name)),(u'Encoding','combo',([u'UTF-8',u'UTF-16'],0))] form=appuifw.Form(fields,17) form.execute() namefield=form[0] if not len(namefield)==3:return encoding=form[1][2][0][form[1][2][1]] self.type=encoding.replace('-','').lower() self.on('saveas',namefield[2],self.saveText()) self.orig=self.getText()
def editcon(self): name=self.interface[app.body.current()] if self.get_db('mode')=='flatfile':f=open(self.get_db('account_dir')+'\\'+name+'.acc');data=f.read();f.close();data=data.split('\n') elif self.get_db('mode')=='SQL':data=self.get_db('acc_'+name, 'list') if data[5]=='true':p=0 else: p=1 form=self.form([u(name),u(data[0]),int(float(data[1])),u(data[2]),u(self.decodestring(data[3],self.get_db('a'))),u(data[4]),p]) f=ui.Form(form, 17) f.execute() self.savecon(f)
def show_prefs(): if appuifw.app.title.find("Updating") != -1: return form = appuifw.Form([(u"Location", "text", prefs.get("Location", u"")), (u"Keywords", "text", prefs.get("Keywords", u"")), (u"When", "combo", (WHEN, 3)), (u"Sort_order", "combo", (ORDER, 0))], appuifw.FFormEditModeOnly) form.menu = [] form.save_hook = save_prefs form.execute()
def create_form(self, flags=None): # Set the view/edit mode of the form if not flags: flags = appuifw.FFormEditModeOnly + appuifw.FFormDoubleSpaced form_fields = self.create_form_fields() # Creates the form self.form = appuifw.Form(form_fields, flags) self.form.save_hook = self.save_hook self.form.menu = [(u'Apply Picture', self.apply_picture_filename), (u'View Picture', self.view_picture_filename)] return self.form
def test_form_flags(): flags = [FFormEditModeOnly, FFormViewModeOnly, FFormAutoLabelEdit, FFormAutoFormEdit, FFormDoubleSpaced] options = [u'EditModeOnly', u'ViewModeOnly', u'AutoLabelEdit', u'AutoFormEdit', u'DoubleSpaced'] item_index = 0 while item_index is not None: item_index = appuifw.selection_list(options) if item_index is not None: f = appuifw.Form(get_simple_form(), flags[item_index]) f.execute()
def sett(self, tpye='read'): #处理设置读取和保存 import os, sys path = os.path.split(sys.argv[0])[0] + '\\set.ini' if tpye == 'read': try: f = open(path) s = f.read() l = s.split(';') f.close() for i in range(len(self.setting)): self.setting[i] = cn(l[i]) except: #如果读取配置出错,将删除配置。恢复默认配置 if os.path.exists(path): os.remove(path) self.set_ap() #ui.note(cn('未设置!或读取设置出错!'),'info') elif tpye == 'set': form_list = [(cn('字体大小:'), 'number', eval(self.setting[0])), (cn('文字颜色(RGB值):'), 'text', self.setting[1]), (cn('网站LXT:'), 'text', self.setting[2]), (cn('高手论坛ID设置:'), 'text', self.setting[3]), (cn('社区论坛ID设置:'), 'text', self.setting[4]), (cn('空格替换符:'), 'text', self.setting[5]), (cn('接入点:'), 'combo', ([k['name'] for k in self.aps], eval(self.setting[6]))), (cn('自定义UC路径:'), 'text', self.setting[7])] F = ui.Form(form_list, ui.FFormDoubleSpaced) F.execute() for i in range(F.__len__()): if i == 6: self.setting[i] = unicode(F[i][2][1]) else: self.setting[i] = unicode(F[i][2]) try: f = open(path, 'w') l = ';'.join(self.setting) f.write(en(l)) f.close() self.up_setting() except: ui.note(cn('保存设置出错!'), 'info') elif tpye == 'save': try: f = open(path, 'w') l = u';'.join(self.setting) f.write(en(l)) f.close() self.up_setting() except: ui.note(cn('保存设置出错!'), 'info')
def set_audio_cb(): def save_hook(f): config.set("audio","enable",int(f[0][2][1])) config.set("audio","file",str(f[1][2])) config.save() load_sound() return True enable = config.get("audio","enable",0) aufile = config.get("audio","file","").decode() fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_file"),"text",aufile)] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def Run(self): self._IsSaved = False self._Form = ui.Form(self._Fields, ui.FFormEditModeOnly) self._Form.save_hook = self.MarkSaved #ui.app.title = u'Time Options' #appuifw.app.screen = 'normal' self._Form.execute() #appuifw.app.screen = 'full' #appuifw.app.title = u'Tracker' if self.IsSaved(): return True return False
def fParam_show(self): "Exibe o formulário de configurações do programa." # Campos para o formulário: campos = [ (u"Qt. de palavras", 'number', self.qt_artigos), ] #Create a Form object fParam = appuifw.Form(campos, flags=appuifw.FFormEditModeOnly) #Assign the save function fParam.save_hook = self.fParam_salvar #Executa o formulário e retorna 'None': fParam.execute()
def display(self): if self.unique: data = [None] * len(self._data) for label, d in self._data.iteritems(): if d[2] is not None: data[d[0]] = (label, d[1], d[2]) else: data[d[0]] = (label, d[1]) else: data = self._data print repr(data) self.f = appuifw.Form(data, self._flags) self.f.menu = self.menu._menu return self.f.execute()
def settings(): global soundflag global tuninglength state = [u'Off', u'On'] svalue = [u'1 bar',u'2 bars', u'3 bars'] data = [(u"Audible metronome",'combo',(state, soundflag)), (u'Tuning length','combo', (svalue, tuninglength))] flags = appuifw.FFormEditModeOnly+appuifw.FFormDoubleSpaced f = appuifw.Form(data, flags) # make the form visible on the UI f.execute() soundflag = int(f[0][2][1]) tuninglength = int(f[1][2][1])
def set_alarm_cb(): def save_hook(f): config.set("alarm","enable",int(f[0][2][1])) config.set("alarm","start",int(f[1][2])) config.set("alarm","stop",int(f[2][2])) config.save() return True enable = config.get("alarm","enable",0) start = float(config.get("alarm","start",0)) stop = float(config.get("alarm","stop",86399)) fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_start_time"),"time",start), (_("M_stop_time"),"time",stop)] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def set_call_cb(): def save_hook(f): config.set("call","enable",int(f[0][2][1])) config.set("call","numbers",str(f[1][2])) config.set("call","interval",int(f[2][2])) config.save() return True enable = config.get("call","enable",0) numbers = config.get("call","numbers","").decode() interval = config.get("call","interval",3600) fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_phone_numbers"),"text",numbers), (_("M_interval"),"number",interval)] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def forming(): # create a list to be used in 'combo' selection mode model = [u'6600', u'6630', u'7610', u'N90', u'N70'] # define the field list (consists of tuples: (label, type ,value)); label is a unicode string # type is one of the following strings: 'text', 'number', 'date', 'time',or 'combo' data = [(u'Mobile', 'text', u'Nokia'), (u'Model', 'combo', (model, 0)), (u'Amount', 'number', 5), (u'Date', 'date'), (u'Time', 'time')] # set the view/edit mode of the form flags = appuifw.FFormEditModeOnly # creates the form f = appuifw.Form(data, flags) # make the form visible on the UI f.execute()
def display(self): items = [] for item in self.items: items.append(item._mk_tuple()) form = appuifw.Form(items, self.flags) for i in range(self.size()): self.items[i]._form = (form, i) form.menu = self.menu form.save_hook = self._updateAndSave self.form = form self._active = True form.execute() for item in self.items: item._update(form[item._form[1]][2]) item._form = None self._active = False self.form = None
def cssSettings(self,css,save): opts=[] for k in css: opts.append((unicode(k),'text',unicode(css[k]))) # unusual bug where form.insert does not save current state f=appuifw.Form(opts, appuifw.FFormEditModeOnly |appuifw.FFormDoubleSpaced) def add(): k,v=self.availcss([str(c[0]) for c in f]) f.insert(len(f),(k,'text',v)) f.menu=[ (u'Add css',add), (u'Delete',lambda:appuifw.note(u'To delete: remove contents of field and Save afterwards')), ] f.save_hook=save f.execute()
def setfull(s): s.setload() FORM = appuifw.Form([ (ru('Маска имени'), 'text', s.MASKNAME), (ru('Маска расш-ия'), 'text', s.MASKEXT), (ru('Регистр имени'), 'combo', ([ ru('Без изменений'), ru('Всё в нижнем'), ru('Всё в ВЕРХНЕМ'), ru('Первая буква в верхнем'), ru('Начало Слов В Верхнем'), ru('Инвертировать') ], s.REGNAME)), (ru('Регистр расш-ия'), 'combo', ([ ru('Без изменений'), ru('Всё в нижнем'), ru('Всё в ВЕРХНЕМ'), ru('Первая буква в верхнем'), ru('Инвертировать') ], s.REGEXT)), (ru('Удаление пробелов'), 'combo', ([ ru('Отключено'), ru('Все'), ru('В начале'), ru('В конце'), ru('В начале и в конце') ], s.SPACE)), (ru('Найти'), 'text', s.SEARCH), (ru('Заменить на'), 'text', s.REPLACE), (ru('Начало счётчика'), 'number', s.COUNTSTART), (ru('Шаг счётчика'), 'number', s.COUNTSTEP), (ru('Кол-во цифр в счётчике'), 'number', s.COUNTDIGITS), (ru('Выравнивание'), 'combo', ([ ru('Отключено'), ru('По левому краю'), ru('По центру'), ru('По правому краю') ], s.FORMAT)), (ru('Ширина строки'), 'number', s.WIDTH), (ru('Расш-ие для фильтр-ии'), 'text', s.FILTEREXT) ], appuifw.FFormEditModeOnly | appuifw.FFormDoubleSpaced) FORM.execute() s.MASKNAME, s.MASKEXT, s.REGNAME, s.REGEXT, s.SPACE, s.SEARCH, s.REPLACE, s.COUNTSTART, s.COUNTSTEP, s.COUNTDIGITS, s.FORMAT, s.WIDTH, s.FILTEREXT = FORM[ 0][2], FORM[1][2], FORM[2][2][1], FORM[3][2][1], FORM[4][2][ 1], FORM[5][2], FORM[6][2], FORM[7][2], FORM[8][2], FORM[9][ 2], FORM[10][2][1], FORM[11][2], FORM[12][2] s.setsave()
def set_presence_cb(): def save_hook(f): config.set("presence","enable",int(f[0][2][1])) config.set("presence","start",int(f[1][2])) config.set("presence","stop",int(f[2][2])) config.set("presence","period",int(f[3][2])) config.save() return True enable = config.get("presence","enable",0) start = float(config.get("presence","start",0)) stop = float(config.get("presence","stop",86399)) period = config.get("presence","period",1200) fields = [(_("M_enable"),"combo",([_("M_no"),_("M_yes")],enable)),(_("M_start_time"),"time",start), (_("M_stop_time"),"time",stop),(_("M_period"),"number",period)] form = appuifw.Form(fields) form.save_hook = save_hook form.execute()
def show_event(): global desc if not events: return event = events[listbox.current()] form_elements = [] for field in EVENT_FIELDS: if field in event and event[field]: key = field.capitalize() value = event[field].decode("utf-8") form_elements.append((key, "text", value)) form = appuifw.Form(form_elements, appuifw.FFormViewModeOnly) if 'description' in event: desc = event['description'].decode("utf-8") form.menu = [(u"description", show_description)] form.execute()