--- 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"))