Check-in [1a034aeac0]
Comment: | Allow for subcategories in bookmarks. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1a034aeac0f9eebffa8bcc00a831d28c |
User & Date: | mario on 2018-12-18 22:40:04 |
Other Links: | manifest | tags |
2018-12-18
| ||
22:40 | Optional toolbar button for search dialog. check-in: 4beef0ad4d user: mario tags: trunk | |
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 | |
Modified channels/bookmarks.py from [557d39309e] to [0b438ee149].
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 47 48 49 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 | + + - + - + + + + - | "search": [], "scripts": [], "timer": [], "history": [] } default = "favourite" fixed_size = [32,24] reserved_names = ["favourite", "radiotray", "scripts", "search", "timer", "history", "links", "themes"] #+ self.parent.features.keys() # cache list, to determine if a PLS url is bookmarked urls = [] def gui(self, parent): parent.notebook_channels.set_menu_label_text(parent.v_bookmarks, "bookmarks") self.update_categories() GenericChannel.gui(self, parent) uikit.tree_column(self.gtk_cat, "Group") |
102 103 104 105 106 107 108 | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | - + - + | if (not self.urls): self.urls = [str(row.get("url","urn:x-streamtuner2:no")) for row in self.streams["favourite"]] return str(url) in self.urls # called from main window / menu / context menu, # when bookmark is to be added for a selected stream entry |
Added contrib/new_favourite_cat.py version [f1bb6d76fa].
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 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 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | # encoding: utf-8 # api: streamtuner2 # title: New favourite category # description: Introduces new bookmarks categories # version: 0.2 # type: feature # category: ui # config: - # priority: optional # # Adds a "New favourite category..." under Station > Extensions menu. # New categories will show up in the bookmarks channel under favourite. # from uikit import * from config import * # class new_favourite_cat (object): plugin = "new_favourite_cat" meta = plugin_meta() parent = None w = None # hook up menu entry def __init__(self, parent): self.parent = parent uikit.add_menu([parent.extensions], "New favourite category…", self.win, insert=3) self.create_submenu(parent) self.update_submenu() # show input window def win(self, *w): w = self.w = gtk.Dialog( 'New bookmark category', self.parent.win_streamtuner2, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_OK, gtk.RESPONSE_APPLY) ) input = gtk.Entry(35) w.vbox.pack_start(input) log.UI(w.vbox.get_children()) w.show_all() self.add(self.w, w.run(), input.get_text()) # add category def add(self, w, r, title): bm = self.parent.bookmarks have = bm.streams.has_key(title) w.destroy() if r == gtk.RESPONSE_APPLY: log.NEW(title) if not have: bm.streams[title] = {} if r == gtk.RESPONSE_DELETE_EVENT: if have: bm.streams.remove(title) self.update_submenu() bm.update_categories() bm.display_categories() # introduce MenuItem+Menu def create_submenu(self, parent): self.submenu = gtk.Menu() for title, target, i in [("Bookmark to", parent.streammenu, 1), ("Add bookmark to", parent.streamactions, 3)]: mi = gtk.ImageMenuItem(gtk.STOCK_INDENT) mi.set_submenu(self.submenu) mi.set_label(title) mi.show_all() target.insert(mi, i) # bookmark to > … submenu w/ custom categories def update_submenu(self): bmc = self.parent.bookmarks.categories [self.submenu.remove(w) for w in self.submenu.get_children()] if len(bmc) >= 2 and type(bmc[1]) is list: for label in bmc[1]: uikit.add_menu([self.submenu], label, lambda w,target=label: self.parent.bookmark(w, target)) self.submenu.show_all() |
Modified gtk3.xml.gz from [22b92b2dc9] to [1691d2599f].
cannot compute difference between binary files
Modified st2.py from [9e34a20f96] to [0aae622bbd].
1 2 3 4 5 6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | - + | #!/usr/bin/env python # encoding: UTF-8 # api: python # type: application # title: streamtuner2 # description: Directory browser for internet radio, audio and video streams |
319 320 321 322 323 324 325 | 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 | - - + + | def on_category_clicked(self, widget, event, *more): category = self.channel().currentcat() log.UI("on_category_clicked", category, self.current_channel) self.on_reload_clicked(None, reload=0) pass # Add current selection to bookmark store |