def _init(self, data): self._choice = miscwidgets.make_choice([str(x) for x in data], False, str(self._mem_value())) self._widget = self._choice.widget self._widget.connect("changed", self.changed)
def __make_vendor(self, modelbox): vendors = collections.defaultdict(list) for name, rclass in sorted(directory.DRV_TO_RADIO.items()): if not issubclass(rclass, chirp_common.CloneModeRadio) and \ not issubclass(rclass, chirp_common.LiveRadio): continue vendors[rclass.VENDOR].append(rclass) for alias in rclass.ALIASES: vendors[alias.VENDOR].append(alias) self.__vendors = vendors conf = config.get("state") if not conf.get("last_vendor"): conf.set("last_vendor", sorted(vendors.keys())[0]) last_vendor = conf.get("last_vendor") if last_vendor not in list(vendors.keys()): last_vendor = list(vendors.keys())[0] v = miscwidgets.make_choice(sorted(vendors.keys()), False, last_vendor) def _changed(box, vendors, boxes): (vendorbox, modelbox) = boxes models = vendors[vendorbox.value] added_models = [] model_store = modelbox.get_model() model_store.clear() for rclass in sorted(models, key=lambda c: c.__name__): if rclass.MODEL not in added_models: model_store.append([rclass.MODEL]) added_models.append(rclass.MODEL) if vendorbox.value in detect.DETECT_FUNCTIONS: model_store.append([_("Detect")]) added_models.insert(0, _("Detect")) model_names = [x.MODEL for x in models] if conf.get("last_model") in model_names: modelbox.value = conf.get("last_model") elif added_models: modelbox.value = added_models[0] v.widget.connect("changed", _changed, vendors, (v, modelbox)) _changed(v, vendors, (v, modelbox)) return v
def __make_vendor(self, model): vendors = {} for rclass in sorted(directory.DRV_TO_RADIO.values()): if not issubclass(rclass, chirp_common.CloneModeRadio) and \ not issubclass(rclass, chirp_common.LiveRadio): continue if rclass.VENDOR not in vendors: vendors[rclass.VENDOR] = [] vendors[rclass.VENDOR].append(rclass) self.__vendors = vendors conf = config.get("state") if not conf.get("last_vendor"): conf.set("last_vendor", sorted(vendors.keys())[0]) last_vendor = conf.get("last_vendor") if last_vendor not in vendors.keys(): last_vendor = vendors.keys()[0] v = miscwidgets.make_choice(sorted(vendors.keys()), False, last_vendor) def _changed(box, vendors, model): models = vendors[box.get_active_text()] added_models = [] model.get_model().clear() for rclass in sorted(models, key=lambda c: c.__name__): if rclass.MODEL not in added_models: model.append_text(rclass.MODEL) added_models.append(rclass.MODEL) if box.get_active_text() in detect.DETECT_FUNCTIONS: model.insert_text(0, _("Detect")) added_models.insert(0, _("Detect")) model_names = [x.MODEL for x in models] if conf.get("last_model") in model_names: model.set_active(added_models.index(conf.get("last_model"))) else: model.set_active(0) v.connect("changed", _changed, vendors, model) _changed(v, vendors, model) return v
def __make_port(self, port): conf = config.get("state") ports = platform.get_platform().list_serial_ports() if not port: if conf.get("last_port"): port = conf.get("last_port") elif ports: port = ports[0] else: port = "" if port not in ports: ports.insert(0, port) return miscwidgets.make_choice(ports, True, port)
def __make_vendor(self, model): vendors = collections.defaultdict(list) for rclass in sorted(directory.DRV_TO_RADIO.values()): if not issubclass(rclass, chirp_common.CloneModeRadio) and \ not issubclass(rclass, chirp_common.LiveRadio): continue vendors[rclass.VENDOR].append(rclass) for alias in rclass.ALIASES: vendors[alias.VENDOR].append(alias) self.__vendors = vendors conf = config.get("state") if not conf.get("last_vendor"): conf.set("last_vendor", sorted(vendors.keys())[0]) last_vendor = conf.get("last_vendor") if last_vendor not in vendors.keys(): last_vendor = vendors.keys()[0] v = miscwidgets.make_choice(sorted(vendors.keys()), False, last_vendor) def _changed(box, vendors, model): models = vendors[box.get_active_text()] added_models = [] model.get_model().clear() for rclass in sorted(models, key=lambda c: c.__name__): if rclass.MODEL not in added_models: model.append_text(rclass.MODEL) added_models.append(rclass.MODEL) if box.get_active_text() in detect.DETECT_FUNCTIONS: model.insert_text(0, _("Detect")) added_models.insert(0, _("Detect")) model_names = [x.MODEL for x in models] if conf.get("last_model") in model_names: model.set_active(added_models.index(conf.get("last_model"))) else: model.set_active(0) v.connect("changed", _changed, vendors, model) _changed(v, vendors, model) return v
def __init__(self, choices, **args): buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) gtk.Dialog.__init__(self, buttons=buttons, **args) self.label = gtk.Label() self.label.set_size_request(300, 100) # pylint: disable-msg=E1101 self.vbox.pack_start(self.label, 1, 1, 0) self.label.show() try: default = choices[0] except IndexError: default = None self.choice = make_choice(sorted(choices), self.editable, default) # pylint: disable-msg=E1101 self.vbox.pack_start(self.choice, 1, 1, 0) self.choice.show() self.set_default_response(gtk.RESPONSE_OK)
def __make_model(self): return miscwidgets.make_choice([], False)
self.__fields[label] = widget def get_field(self, label): return self.__fields.get(label, None) class OverwriteDialog(gtk.MessageDialog): def __init__(self, filename): gtk.Dialog.__init__(self, buttons=(_("Overwrite"), gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.set_property("text", _("File Exists")) text = \ _("The file {name} already exists. " "Do you want to overwrite it?").format(name=filename) self.format_secondary_text(text) if __name__ == "__main__": # pylint: disable-msg=C0103 d = FieldDialog(buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK)) d.add_field("Foo", gtk.Entry()) d.add_field("Bar", make_choice(["A", "B"])) d.run() gtk.main() d.destroy()
def _build_ui_tab(self, group): # The scrolled window sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) sw.show() # Notebook tab tab = self._notebook.append_page(sw, gtk.Label(_(group.get_name()))) # Settings table table = gtk.Table(len(group), 2, False) table.set_resize_mode(gtk.RESIZE_IMMEDIATE) table.show() sw.add_with_viewport(table) row = 0 for element in group: if not isinstance(element, settings.RadioSetting): continue # Label label = gtk.Label(element.get_shortname() + ":") label.set_alignment(0.0, 0.5) label.show() table.attach(label, 0, 1, row, row + 1, xoptions=gtk.FILL, yoptions=0, xpadding=6, ypadding=3) if isinstance(element.value, list) and \ isinstance(element.value[0], settings.RadioSettingValueInteger): box = gtk.HBox(True) else: box = gtk.VBox(True) # Widget container box.show() table.attach(box, 1, 2, row, row + 1, xoptions=gtk.FILL, yoptions=0, xpadding=12, ypadding=3) for i in element.keys(): value = element[i] if isinstance(value, settings.RadioSettingValueInteger): widget = gtk.SpinButton() adj = widget.get_adjustment() adj.configure(value.get_value(), value.get_min(), value.get_max(), value.get_step(), 1, 0) widget.connect("value-changed", self._save_setting, value) elif isinstance(value, settings.RadioSettingValueFloat): widget = gtk.Entry() widget.set_width_chars(16) widget.set_text(value.format()) widget.connect("focus-out-event", lambda w, e, v: self._save_setting(w, v), value) elif isinstance(value, settings.RadioSettingValueBoolean): widget = gtk.CheckButton(_("Enabled")) widget.set_active(value.get_value()) widget.connect("toggled", self._save_setting, value) elif isinstance(value, settings.RadioSettingValueList): widget = miscwidgets.make_choice([], editable=False) model = widget.get_model() model.clear() for option in value.get_options(): widget.append_text(option) current = value.get_value() index = value.get_options().index(current) widget.set_active(index) widget.connect("changed", self._save_setting, value) elif isinstance(value, settings.RadioSettingValueString): widget = gtk.Entry() widget.set_width_chars(32) widget.set_text(str(value).rstrip()) widget.connect("focus-out-event", lambda w, e, v: self._save_setting(w, v), value) else: LOG.error("Unsupported widget type: %s" % value.__class__) widget.set_sensitive(value.get_mutable()) label.set_mnemonic_widget(widget) widget.get_accessible().set_name(element.get_shortname()) widget.show() box.pack_start(widget, 1, 1, 1) row += 1 return tab
def _init(self, data): self._widget = miscwidgets.make_choice([str(x) for x in data], False, str(self._mem_value())) self._widget.connect("changed", self.changed)