Make 4.10 less likely to crash

I used it over christmas, but I didn't want it to blow up when setting
album art.
This commit is contained in:
Bryan Schumaker 2012-03-03 11:19:51 -05:00
parent 798134b910
commit a84bd85a04
5 changed files with 36 additions and 25 deletions

View File

@ -18,6 +18,9 @@ def stock_image(stock_item):
img = gtk.image_new_from_stock(stock_item, SIZE) img = gtk.image_new_from_stock(stock_item, SIZE)
return img return img
def big_image(stock_item):
return gtk.image_new_from_stock(stock_item, gtk.ICON_SIZE_DND)
def file_image(file): def file_image(file):
img = gtk.image_new_from_file(file) img = gtk.image_new_from_file(file)
return img return img
@ -43,6 +46,12 @@ def make_button(stock_item, func, tooltip, show):
default_button_attrs(b, stock_image(stock_item), tooltip, show) default_button_attrs(b, stock_image(stock_item), tooltip, show)
return b return b
def make_big_button(stock_item, func, tooltip, show):
b = gtk.Button()
b.connect("clicked", on_click, func)
default_button_attrs(b, big_image(stock_item), tooltip, show)
return b
def toggle_connect(button, func): def toggle_connect(button, func):
button.t_id = button.connect("toggled", on_toggle, func) button.t_id = button.connect("toggled", on_toggle, func)
button.t_func = func button.t_func = func
@ -61,22 +70,22 @@ def make_toggle(img_file, func, tooltip, is_active, show):
def rewind_button(show): def rewind_button(show):
return make_button(gtk.STOCK_MEDIA_REWIND, controls.seek_backward, "Rewind", show) return make_big_button(gtk.STOCK_MEDIA_REWIND, controls.seek_backward, "Rewind", show)
def forward_button(show): def forward_button(show):
return make_button(gtk.STOCK_MEDIA_FORWARD, controls.seek_forward, "Fast Forward", show) return make_big_button(gtk.STOCK_MEDIA_FORWARD, controls.seek_forward, "Fast Forward", show)
def play_button(show): def play_button(show):
return make_button(gtk.STOCK_MEDIA_PLAY, controls.play, "Play", show) return make_big_button(gtk.STOCK_MEDIA_PLAY, controls.play, "Play", show)
def pause_button(show): def pause_button(show):
return make_button(gtk.STOCK_MEDIA_PAUSE, controls.pause, "Pause", show) return make_big_button(gtk.STOCK_MEDIA_PAUSE, controls.pause, "Pause", show)
def stop_button(show): def stop_button(show):
return make_button(gtk.STOCK_MEDIA_STOP, controls.stop, "Stop", show) return make_big_button(gtk.STOCK_MEDIA_STOP, controls.stop, "Stop", show)
def next_button(show): def next_button(show):
return make_button(gtk.STOCK_MEDIA_NEXT, controls.next, "Next", show) return make_big_button(gtk.STOCK_MEDIA_NEXT, controls.next, "Next", show)
def update_button(show): def update_button(show):
return make_button(gtk.STOCK_REFRESH, sources.library.update_lib, "Update Library", show) return make_button(gtk.STOCK_REFRESH, sources.library.update_lib, "Update Library", show)

View File

@ -32,7 +32,7 @@ def slider_tooltip(slider, event):
slider.set_tooltip_text(audio.get_time_at(prcnt)) slider.set_tooltip_text(audio.get_time_at(prcnt))
slider = gtk.HScale( gtk.Adjustment(0.0, 0.0, 100.0, 0.1, 1.0, 1.0) ) slider = gtk.HScale( gtk.Adjustment(0.0, 0.0, 100.0, 0.1, 1.0, 1.0) )
slider.set_size_request(150, 20) slider.set_size_request(800, 20)
slider.set_draw_value(False) slider.set_draw_value(False)
slider.set_range(0, 101) slider.set_range(0, 101)
slider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) slider.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
@ -51,7 +51,6 @@ add_button( "PLAY", button.play_button)
add_button( "PAUSE", button.pause_button, False) add_button( "PAUSE", button.pause_button, False)
add_button( "STOP", button.stop_button) add_button( "STOP", button.stop_button)
add_button( "NEXT", button.next_button) add_button( "NEXT", button.next_button)
add_button( "DOWN", button.down_button)
action.show() action.show()
detailed.set_action_widget(action, gtk.PACK_END) detailed.set_action_widget(action, gtk.PACK_END)
@ -62,7 +61,7 @@ def set_art(path):
def update_pos(time): def update_pos(time):
slider_update(slider) slider_update(slider)
cur_pos.set_text(time) cur_pos.set_markup("<span size='x-large'>%s</span>" % time)
def on_play(): def on_play():
PLAY.hide() PLAY.hide()

View File

@ -1,12 +1,14 @@
# Bryan Schumaker (4 / 21 / 2011) # Bryan Schumaker (4 / 21 / 2011)
import gtk import gtk
import gobject
from libsaria import controls from libsaria import controls
from ocarina.body import button from ocarina.body import button
from ocarina.body import image from ocarina.body import image
page = gtk.HBox(False, 5) page = gtk.HBox(False, 5)
label = gtk.Label("Now Playing") label = gtk.Label("Now Playing")
label.set_markup("<span size='x-large'>Now Playing</span>")
ARTWORK = image.Image() ARTWORK = image.Image()
page.pack_start(ARTWORK, False, False) page.pack_start(ARTWORK, False, False)
@ -42,10 +44,6 @@ page.pack_start(attr_box)
LIKE = button.like_button(True) LIKE = button.like_button(True)
DISLIKE = button.dislike_button(True) DISLIKE = button.dislike_button(True)
buttons = gtk.HBox(True)
buttons.pack_start( LIKE, False, False)
buttons.pack_start(DISLIKE, False, False)
page.pack_start(buttons, False, False)
page.show_all() page.show_all()
label.show() label.show()
@ -57,7 +55,7 @@ def resize_art(*args):
sa_id = page.connect("size-allocate", resize_art) sa_id = page.connect("size-allocate", resize_art)
def set_art(path): def set_art(path):
ARTWORK.set_image(path, 64) ARTWORK.set_image(path, 128)
def on_like(like): def on_like(like):
def _on_like1(like): def _on_like1(like):
@ -67,12 +65,16 @@ def on_like(like):
button.toggle_call_unconnected(DISLIKE, _on_like1, like) button.toggle_call_unconnected(DISLIKE, _on_like1, like)
button.toggle_call_unconnected(LIKE, _on_like0, like) button.toggle_call_unconnected(LIKE, _on_like0, like)
def set_tag(label, text):
markup = gobject.markup_escape_text(text)
label.set_markup("<span size='xx-large'>%s</span>" % markup)
def on_load(attrs): def on_load(attrs):
TITLE.set_text(attrs["title"]) set_tag(TITLE, attrs["title"])
ARTIST.set_text("by %s" % attrs["artist"]) set_tag(ARTIST, attrs["artist"])
ALBUM.set_text("from %s" % attrs["album"]) set_tag(ALBUM, attrs["album"])
YEAR.set_text("Year: %s" % attrs["year"]) set_tag(YEAR, "Year: %s" % attrs["year"])
LENGTH.set_text("Length: %s" % attrs["lenstr"]) set_tag(LENGTH, "Length: %s" % attrs["lenstr"])
COUNT.set_text("Play count: %s" % attrs["count"]) set_tag(COUNT, "Count: %s" % attrs["count"])
set_art(attrs["art"]) set_art(attrs["art"])
on_like(attrs["like"]) on_like(attrs["like"])

View File

@ -18,16 +18,16 @@ def add_button(name, button):
header_body.pack_start(button, False, False) header_body.pack_start(button, False, False)
header_body.pack_start(entry.entry) header_body.pack_start(entry.entry)
add_button( "OPEN", button.open_button(True)) #add_button( "OPEN", button.open_button(True))
add_button( "SAVE", button.save_button(True)) #add_button( "SAVE", button.save_button(True))
add_button( "PREFS", button.prefs_button(True)) add_button( "PREFS", button.prefs_button(True))
sep = gtk.VSeparator() sep = gtk.VSeparator()
sep.show() sep.show()
header_body.pack_start(sep, False, False) header_body.pack_start(sep, False, False)
add_button("UPDATE", button.update_button(True)) #add_button("UPDATE", button.update_button(True))
add_button( "CLEAR", button.clear_button(True)) #add_button( "CLEAR", button.clear_button(True))
add_button( "GOTO", button.goto_button(True)) add_button( "GOTO", button.goto_button(True))
add_button("RANDOM", button.random_button(prefs.get("libsaria.random"), True)) add_button("RANDOM", button.random_button(prefs.get("libsaria.random"), True))
add_button("VOLUME", button.volume_button(prefs.get("libsaria.audio.volume"), True)) add_button("VOLUME", button.volume_button(prefs.get("libsaria.audio.volume"), True))

View File

@ -4,10 +4,11 @@ import gtk
attrs = ("id", "track", "title", "lenstr", "artist", "album", "year") attrs = ("id", "track", "title", "lenstr", "artist", "album", "year")
columns = ["Id", "#", "Title", "Length", "Artist", "Album", "Year"] columns = ["Id", "#", "Title", "Length", "Artist", "Album", "Year"]
col_width = [ 2, 20, 300, 60, 125, 125, 50] col_width = [ 2, 30, 500, 75, 325, 310, 30]
cell = gtk.CellRendererText() cell = gtk.CellRendererText()
cell.set_fixed_height_from_font(1) cell.set_fixed_height_from_font(1)
cell.set_property("size-points", 12)
class Column(gtk.TreeViewColumn): class Column(gtk.TreeViewColumn):
def __init__(self, index, label): def __init__(self, index, label):