# HG changeset patch # User fabien # Date 1075964858 18000 # Node ID cce22ab553d16ff0b0eacb1860a0e7b071d32cdb # Parent bef598558a5b30b9ed4e7d6f920ceb3892f51f79 [svn] Add some colors related to the rating. diff -r bef598558a5b -r cce22ab553d1 immsview --- a/immsview Wed Feb 04 17:21:47 2004 -0500 +++ b/immsview Thu Feb 05 02:07:38 2004 -0500 @@ -20,9 +20,12 @@ # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. -_immsview_version = "$Id: immsview 1699 2004-02-04 22:21:47Z fabien $" +_immsview_version = "$Id: immsview 1700 2004-02-05 07:07:38Z fabien $" # $Log$ +# Revision 1.19 2004/02/05 07:07:38 fabien +# Add some colors related to the rating. +# # Revision 1.18 2004/02/04 22:21:47 fabien # Try to update the Last string dynamically... doesn't seem to work. # @@ -220,6 +223,17 @@ tune = cu.fetchone() return results +def rating_to_color(rate): + if rate < 85: + return "red" + if rate < 95: + return "orange" + if rate < 110: + return "yellow" + if rate < 130: + return "green" + return "cyan" + class IMMSStore(gtk.ListStore): COL_RATING = 0 COL_PATH = 1 @@ -227,6 +241,7 @@ COL_LAST = 3 COL_SELECT = 4 COL_UID = 5 + COL_RATING_COLOR = 6 def __init__(self, db): gtk.ListStore.__init__(self, gobject.TYPE_INT, @@ -234,7 +249,9 @@ gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_BOOLEAN, - gobject.TYPE_INT) + gobject.TYPE_INT, + gobject.TYPE_STRING, + ) self.db = db self.set_default_sort_func(self.default_sort) self.set_sort_column_id(-1, 0) @@ -249,6 +266,7 @@ IMMSStore.COL_PATH, tune['path'], IMMSStore.COL_LAST, tune['last'], IMMSStore.COL_LAST_STR, strtime(time.time()-tune['last']), + IMMSStore.COL_RATING_COLOR, rating_to_color(tune['rating']), IMMSStore.COL_SELECT, gtk.FALSE) return giter def refresh(self): @@ -297,12 +315,12 @@ return self.tune_to_giter(tunes[0], giter) return giter ## def get_value(self, giter, col): -## # sniff! doesn't seem to work! :( +## # sniff! Can't override built-ins ## if col == IMMSStore.COL_LAST_STR: -## print "translate" -## return strtime(time.time() - self.get_value(giter, IMMSStore.COL_LAST)) +## return strtime(time.time() - +## self.get_value(giter, IMMSStore.COL_LAST)) ## else: -## gtk.ListStore.get_value(self, giter, col) +## return gtk.ListStore.get_value(self, giter, col) class IMMSView(gtk.TreeView): def __init__(self, model, xmms): @@ -312,11 +330,17 @@ def create_widgets(self): renderer = gtk.CellRendererText() renderer.set_property('weight', 700) + renderer.set_property('background-set', gtk.TRUE) column = gtk.TreeViewColumn(_("Rating"), renderer, weight_set = IMMSStore.COL_SELECT, + background = IMMSStore.COL_RATING_COLOR, text = IMMSStore.COL_RATING) column.set_sort_column_id(IMMSStore.COL_RATING) self.append_column(column) + + renderer = gtk.CellRendererText() + renderer.set_property('weight', 700) + # renderer.set_property('background-set', gtk.FALSE) column = gtk.TreeViewColumn(_("Last"), renderer, weight_set = IMMSStore.COL_SELECT, text = IMMSStore.COL_LAST_STR) @@ -365,7 +389,7 @@ class IMMSToolbar(gtk.Toolbar): # _IMMSPLOT_COMMAND = 'immsplot &' _IMMSPLOT_COMMAND = '/home/fabien/bin/immsplot &' - _SLEEP_TIME = 1 + _SLEEP_TIME = 5 def __init__(self, iview, xmms): gtk.Toolbar.__init__(self) self.iview = iview @@ -395,16 +419,22 @@ fn = self.iview.get_file_selected() if fn: self.xmms.play_file(fn) - time.sleep(self._SLEEP_TIME) + self.sleep(self._SLEEP_TIME) self.do_get_current(dummy) def do_play_prev(self, dummy): self.xmms.playlist_prev() - time.sleep(self._SLEEP_TIME) + self.sleep(self._SLEEP_TIME) self.do_get_current(dummy) def do_play_next(self, dummy): self.xmms.playlist_next() - time.sleep(self._SLEEP_TIME) + self.sleep(self._SLEEP_TIME) self.do_get_current(dummy) + def sleep(self, secs): + start = time.time() + while (time.time() - start) < secs: + time.sleep(0.2) + if gtk.main_iteration_do(gtk.FALSE): + break; root = gtk.Window() root.set_title(_("IMMSView"))