Check-in [bbb93d412c]
Overview
Comment: | Added crude support for binding internal calls `object.func()` to buttons. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
bbb93d412ca34ef650270edff7b194d1 |
User & Date: | mario on 2018-12-17 22:19:42 |
Other Links: | manifest | tags |
Context
2018-12-18
| ||
22:40 | Allow for subcategories in bookmarks. check-in: 1a034aeac0 user: mario tags: trunk | |
2018-12-17
| ||
22:19 | Added crude support for binding internal calls `object.func()` to buttons. check-in: bbb93d412c user: mario tags: trunk | |
20:32 | Add .reload_bookmarks for RT-NG check-in: 6bbc8bba7f user: mario tags: trunk | |
Changes
Modified channels/specbuttons.py from [9ee8fca8b8] to [f76050e966].
1 2 3 | # encoding: utf-8 # title: Spec buttons for apps # description: Adds configurable mini toolbar buttons | | | 1 2 3 4 5 6 7 8 9 10 11 | # encoding: utf-8 # title: Spec buttons for apps # description: Adds configurable mini toolbar buttons # version: 0.8.4 # depends: streamtuner2 >= 2.2.0 # type: feature # category: ui # config: # { name: specbutton_rows, value: 2, max: 4, type: int, description: "Number of rows to arrange buttons in." } # { name: specbuttons, type: dict, columns: "Icon,Command", description: "Icons can be `<a href='http://www.pygtk.org/pygtk2reference/gtk-stock-items.html'>gtk-xyz</a>` internal names. Else use `/usr/share/icon/*.png` file names. Icon file basenames will be expanded into full paths." } # documentation: |
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # # up amixer sset Master 5%+ # # kill pkill vlc # # Icons can be gtk-xyz icon names or /usr/share/icon/* PNG files. # Each command may use streamtuner2 placeholders like %g or %url and $title. import os.path import subprocess import math import re from config import conf, log, plugin_meta | > > > > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # # up amixer sset Master 5%+ # # kill pkill vlc # # Icons can be gtk-xyz icon names or /usr/share/icon/* PNG files. # Each command may use streamtuner2 placeholders like %g or %url and $title. # # Internal functions can be bound now as well, for example: # # find search.menu_search(1) # # disk exportcat.savewindow(1) # import os.path import subprocess import math import re from config import conf, log, plugin_meta |
︙ | ︙ | |||
124 125 126 127 128 129 130 131 132 133 134 135 136 | log.WARN("Extra button icon '%s' could not be found" % btn) r[btn] = cmd conf.specbuttons = r self.update_buttons(self.parent) # Button callback, allow for %url/%title placeholders def action(self, cmd): if re.search("[%$]", cmd): row = self.parent.channel().row() action.run_fmt_url(row=row, add_default=False, cmd=cmd) else: action.run(cmd) | > > > > > > > > > | 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | log.WARN("Extra button icon '%s' could not be found" % btn) r[btn] = cmd conf.specbuttons = r self.update_buttons(self.parent) # Button callback, allow for %url/%title placeholders def action(self, cmd): # code hooks (`search.menu_search(0)`) internal = re.match("^(\w+)\.(\w+)\((.*)\)$", cmd) if internal: feature, func, args = internal.groups() if self.parent.__getattr__(feature): func = getattr(self.parent.__getattr__(feature), func) if func: return func(*(args.split())) # external commands if re.search("[%$]", cmd): row = self.parent.channel().row() action.run_fmt_url(row=row, add_default=False, cmd=cmd) else: action.run(cmd) |