Check-in [964bb06ce1]
Overview
| Comment: | Moved load_theme() into uikit. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
964bb06ce11de4235aa51994ac02a20e |
| User & Date: | mario on 2015-03-31 19:24:10 |
| Other Links: | manifest | tags |
Context
|
2015-03-31
| ||
| 19:25 | Made RadioTray fallback `play` available as option instead of bookmarking. check-in: b8fcd3c3e0 user: mario tags: trunk | |
| 19:24 | Moved load_theme() into uikit. check-in: 964bb06ce1 user: mario tags: trunk | |
| 16:23 | Example for embedding PNG resource in plugin meta data (favicon for notebook tabs). check-in: 04f6353b54 user: mario tags: trunk | |
Changes
Modified st2.py from [1a108a0e92] to [df1a1ff19b].
| ︙ | ︙ | |||
16 17 18 19 20 21 22 | # category: sound # depends: pygtk | gi, threading, requests, pyquery, lxml # id: streamtuner2 # pack: *.py, gtk*.xml, st2.py=/usr/bin/streamtuner2, channels/__init__.py, bundle/*.py, # streamtuner2.desktop=/usr/share/applications/, README=/usr/share/doc/streamtuner2/, # NEWS.gz=/usr/share/doc/streamtuner2/changelog.gz, help/streamtuner2.1=/usr/share/man/man1/, # help/*page=/usr/share/doc/streamtuner2/help/, help/img/*=/usr/share/doc/streamtuner2/help/img/, | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # category: sound # depends: pygtk | gi, threading, requests, pyquery, lxml # id: streamtuner2 # pack: *.py, gtk*.xml, st2.py=/usr/bin/streamtuner2, channels/__init__.py, bundle/*.py, # streamtuner2.desktop=/usr/share/applications/, README=/usr/share/doc/streamtuner2/, # NEWS.gz=/usr/share/doc/streamtuner2/changelog.gz, help/streamtuner2.1=/usr/share/man/man1/, # help/*page=/usr/share/doc/streamtuner2/help/, help/img/*=/usr/share/doc/streamtuner2/help/img/, # logo.png=/usr/share/pixmaps/streamtuner2.png, # architecture: all # # Streamtuner2 is a GUI for browsing internet radio directories, music # collections, and video services - grouped by genres or categories. # It runs your preferred audio player, and streamripper for recording. # # It's an independent rewrite of streamtuner1. Being written in Python, |
| ︙ | ︙ | |||
91 92 93 94 95 96 97 |
current_channel = "bookmarks" # currently selected channel name (as index in self.channels{})
# constructor
def __init__(self):
# Load stylesheet, instantiate GtkBuilder in self, menu and logo hooks
| | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
current_channel = "bookmarks" # currently selected channel name (as index in self.channels{})
# constructor
def __init__(self):
# Load stylesheet, instantiate GtkBuilder in self, menu and logo hooks
gui_startup(0/20.0), uikit.load_theme(conf.get("theme"))
gui_startup(1/20.0), gtk.Builder.__init__(self)
gui_startup(1/20.0), gtk.Builder.add_from_string(self, ui_xml)
gui_startup(3/20.0), self.extensionsCTM.set_submenu(self.extensions) # duplicates Station>Extension menu into stream context menu
self.img_logo.set_from_pixbuf(uikit.pixbuf(logo.png))
# initialize built-in plugins
self.channels = {
|
| ︙ | ︙ | |||
453 454 455 456 457 458 459 |
# object vars
channelopts = {} #dict([(id, {"current":self.channels[id].current}) for id in self.channel_names])
for id in self.channels.keys():
if (self.channels[id]):
channelopts[id] = {"current":self.channels[id].current}
conf.save("state", channelopts, nice=1)
| < < < < < < < < < < | 453 454 455 456 457 458 459 460 461 462 463 464 465 466 |
# object vars
channelopts = {} #dict([(id, {"current":self.channels[id].current}) for id in self.channel_names])
for id in self.channels.keys():
if (self.channels[id]):
channelopts[id] = {"current":self.channels[id].current}
conf.save("state", channelopts, nice=1)
# end application and gtk+ main loop
def gtk_main_quit(self, widget, *x):
if conf.auto_save_appstate:
try: # doesn't work with gtk3 yet (probably just hooking at the wrong time)
self.app_state(widget)
except:
|
| ︙ | ︙ |
Modified uikit.py from [a2be3b7a05] to [cbea8fe804].
| ︙ | ︙ | |||
436 437 438 439 440 441 442 443 444 445 446 447 448 449 |
# gtk.messagebox
@staticmethod
def msg(text, style=gtk.MESSAGE_INFO, buttons=gtk.BUTTONS_CLOSE):
m = gtk.MessageDialog(None, 0, style, buttons, message_format=text)
m.show()
m.connect("response", lambda *w: m.destroy())
# Pixbug loader (from inline string, as in `logo.png`)
@staticmethod
def pixbuf(buf, fmt="png"):
p = GdkPixbuf.PixbufLoader(fmt)
try: # inline encoding
buf = base64.b64decode(buf)
| > > > > > > > > > > > | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 |
# gtk.messagebox
@staticmethod
def msg(text, style=gtk.MESSAGE_INFO, buttons=gtk.BUTTONS_CLOSE):
m = gtk.MessageDialog(None, 0, style, buttons, message_format=text)
m.show()
m.connect("response", lambda *w: m.destroy())
# apply gtkrc stylesheet
@staticmethod
def load_theme(theme=None):
if theme:
for dir in (conf.dir, conf.share, "/usr/share"):
f = dir + "/themes/" + theme + "/gtk-2.0/gtkrc"
if os.path.exists(f):
gtk.rc_parse(f)
pass
# Pixbug loader (from inline string, as in `logo.png`)
@staticmethod
def pixbuf(buf, fmt="png"):
p = GdkPixbuf.PixbufLoader(fmt)
try: # inline encoding
buf = base64.b64decode(buf)
|
| ︙ | ︙ |