Check-in [cdafbe23ce]
Overview
Comment: | Typecast plugin options on initialization. Use SpinButton for `int` options instead of text label. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cdafbe23ce0b3ea9906e167a4be6f892 |
User & Date: | mario on 2015-05-17 19:12:35 |
Other Links: | manifest | tags |
Context
2015-05-17
| ||
19:13 | Remove stray `print` statement check-in: d10f61093f user: mario tags: trunk | |
19:12 | Typecast plugin options on initialization. Use SpinButton for `int` options instead of text label. check-in: cdafbe23ce user: mario tags: trunk | |
19:11 | Introduce new hooks["switch"] for update_title(). Used by new `Channel homepage link` plugin, which brings back streamtuner1-style service homepage. check-in: f992b0792a user: mario tags: trunk | |
Changes
Modified channels/configwin.py from [3a18900ebe] to [e39ea3ed2b].
︙ | ︙ | |||
50 51 52 53 54 55 56 | # Load values from conf. store into gtk widgets def load_config(self, config, prefix="config_"): for key,val in config.items(): w = self.main.get_widget(prefix + key) if w: # input field | | | | > > > | | | | > > > | | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | # Load values from conf. store into gtk widgets def load_config(self, config, prefix="config_"): for key,val in config.items(): w = self.main.get_widget(prefix + key) if w: # input field if isinstance(w, gtk.Entry): w.set_text(str(val)) # checkmark elif isinstance(w, gtk.CheckButton): w.set_active(bool(val)) # dropdown elif isinstance(w, ComboBoxText): w.set_default(val) # number elif isinstance(w, gtk.SpinButton): w.set_value(int(val)) # list elif isinstance(w, gtk.ListStore): w.clear() for k,v in val.items(): w.append([k, v, True, self.app_bin_check(v)]) w.append(["", "", True, gtk.STOCK_NEW]) #log.CONF("config load", prefix+key, val, type(w)) # Store gtk widget valus back into conf. dict def save_config(self, config, prefix="config_", save=0): for key,val in config.items(): w = self.main.get_widget(prefix + key) if w: # text if isinstance(w, gtk.Entry): config[key] = w.get_text() # pre-defined text elif isinstance(w, ComboBoxText): config[key] = w.get_active_text() # boolean elif isinstance(w, gtk.CheckButton): config[key] = w.get_active() # int elif isinstance(w, gtk.SpinButton): config[key] = int(w.get_value(val)) # dict elif isinstance(w, gtk.ListStore): config[key] = {} for row in w: if row[0] and row[1]: config[key][row[0]] = row[1] log.CONF("config save", prefix+key, val) |
︙ | ︙ | |||
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | cb.set_tooltip_text(self._tooltip(meta)) add_( "config_plugins_"+name, cb, color=meta.get("color"), image=meta.get("png"), align=0) # Default values are already in conf[] dict # (now done in conf.add_plugin_defaults) for opt in meta["config"]: color = opt.get("color", None) # hidden if opt.get("hidden"): continue # display checkbox elif opt["type"] in ("bool", "boolean"): cb = gtk.CheckButton(opt["description"]) | > > | | > > > > | > > | | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | cb.set_tooltip_text(self._tooltip(meta)) add_( "config_plugins_"+name, cb, color=meta.get("color"), image=meta.get("png"), align=0) # Default values are already in conf[] dict # (now done in conf.add_plugin_defaults) for opt in meta["config"]: color = opt.get("color", None) type = opt.get("type", "str") description = opt.get("description", "./.") # hidden if opt.get("hidden"): continue # display checkbox elif opt["type"] in ("bool", "boolean"): cb = gtk.CheckButton(opt["description"]) description = None # drop down list elif opt["type"] in ("select", "choose", "options"): cb = ComboBoxText(ComboBoxText.parse_options(opt["select"])) # custom uikit widget # numeric elif opt["type"] in ("int", "integer", "numeric"): adj = gtk.Adjustment(0, 0, 5000, 1, 10, 0) cb = gtk.SpinButton(adj, 1.0, 0) # text field else: cb = gtk.Entry() add_( "config_"+opt["name"], cb, description, color ) # Spacer between plugins add_( None, gtk.HSeparator() ) # Reformat `doc` linebreaks for gtk.tooltip def _tooltip(self, meta): doc = meta.get("doc", "").strip() |
︙ | ︙ |
Modified pluginconf.py from [33b1fa968d] to [d5e7efa673].
︙ | ︙ | |||
466 467 468 469 470 471 472 | # def add_plugin_defaults(conf_options, conf_plugins, meta={}, module=""): # Option defaults, if not yet defined for opt in meta.get("config", []): if "name" in opt and "value" in opt: if opt["name"] not in conf_options: | > > > > > > > | | 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 | # def add_plugin_defaults(conf_options, conf_plugins, meta={}, module=""): # Option defaults, if not yet defined for opt in meta.get("config", []): if "name" in opt and "value" in opt: if opt["name"] not in conf_options: # typemap "bool" and "int" here if opt["type"] in ("bool", "boolean"): val = bool(opt["value"]) elif opt["type"] in ("int", "integer", "numeric"): val = int(opt["value"]) else: val = str(opt["value"]) conf_options[opt["name"]] = val # Initial plugin activation status if module and module not in conf_plugins: conf_plugins[module] = meta.get("priority") in ("core", "builtin", "always", "default", "standard") |