def do_repeaterbook_proximity_prompt(self):
default_band = "--All--"
try:
code = int(CONF.get("band", "repeaterbook"))
for k, v in RB_BANDS.items():
if code == v:
default_band = k
break
except:
pass
fields = {"1Location": (gtk.Entry(), lambda x: x.get_text()),
"2Distance": (gtk.Entry(), lambda x: x.get_text()),
"3Band": (miscwidgets.make_choice(
sorted(RB_BANDS.keys(), key=key_bands),
False, default_band),
lambda x: RB_BANDS[x.get_active_text()]),
}
d = inputdialog.FieldDialog(title=_("RepeaterBook Query"),
parent=self)
for k in sorted(fields.keys()):
d.add_field(k[1:], fields[k][0])
if isinstance(fields[k][0], gtk.Entry):
fields[k][0].set_text(
CONF.get(k[1:].lower(), "repeaterbook") or "")
while d.run() == gtk.RESPONSE_OK:
valid = True
for k, (widget, fn) in fields.items():
try:
CONF.set(k[1:].lower(), str(fn(widget)), "repeaterbook")
continue
except:
pass
common.show_error("Invalid value for %s" % k[1:])
valid = False
break
if valid:
d.destroy()
return True
d.destroy()
return False
评论列表
文章目录