[svn] Doesn't select the current song automatically and remove the now immsview
authorfabien
Fri, 13 Feb 2004 13:07:37 -0500
branchimmsview
changeset 37 efa8fbc7b3a3
parent 36 e648d6852983
child 38 785c66feccd3
[svn] Doesn't select the current song automatically and remove the now useless sleeptime for next and previous.
immsview
--- a/immsview	Thu Feb 12 09:43:48 2004 -0500
+++ b/immsview	Fri Feb 13 13:07:37 2004 -0500
@@ -20,9 +20,13 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-_version_ = "$Id: immsview 1721 2004-02-12 14:43:48Z fabien $"
+_version_ = "$Id: immsview 1722 2004-02-13 18:07:37Z fabien $"
 
 # $Log$
+# Revision 1.33  2004/02/13 18:07:37  fabien
+# Doesn't select the current song automatically and remove the now
+# useless sleeptime for next and previous.
+#
 # Revision 1.32  2004/02/12 14:43:48  fabien
 # Better OO approach.
 #
@@ -252,14 +256,14 @@
         self.curtime = time
         self.curtime = time.time()
         col, order = self.get_sort_column_id()
-	if col:
-        	self.set_sort_column_id(-1, gtk.SORT_ASCENDING)
+        if col:
+                self.set_sort_column_id(-1, gtk.SORT_ASCENDING)
         tunes = self.db.get_ratings_and_paths()
-	print >> stderr, time.ctime(time.time()) + ": inserting"
+        print >> stderr, time.ctime(time.time()) + ": inserting"
         self._update_me(tunes)
-	print time.ctime(time.time()) + ": end insert"
-	if col:
-        	self.set_sort_column_id(col, order)
+        print time.ctime(time.time()) + ": end insert"
+        if col:
+                self.set_sort_column_id(col, order)
     def replace(self, tunes):
         "replace simply replace all giter with new one"
         self.clear()
@@ -300,7 +304,7 @@
             tunes = self.db.get_ratings_and_paths([uid])
             if tunes > 0:
                 giter = self.tune_to_giter(uid, tunes[uid], song)
-	else:
+        else:
             giter = self.update_giter(giter, song)
         return giter
     def get_ratings(self):
@@ -342,11 +346,11 @@
         self.gnuplot.flush()
 
 class IMMSView(gtk.TreeView):
-	def __init__(self, model, xmms):
+        def __init__(self, model, xmms):
             gtk.TreeView.__init__(self, model)
             self.xmms = xmms
             self.create_widgets()
-	def create_widgets(self):
+        def create_widgets(self):
             renderer = gtk.CellRendererText()
             renderer.set_property('weight', 700)
             renderer.set_property('background-set', gtk.TRUE)
@@ -378,11 +382,15 @@
             model = self.get_model()
             giter = model.find_selected_giter()
             if giter:
-	    	model.update_giter(giter)
+                model.update_giter(giter)
                 model.set_value(giter, IMMSStore.COL_SELECT, gtk.FALSE)
             giter = model.find_giter_from_path(song)
             if giter:
                 model.set_value(giter, IMMSStore.COL_SELECT, gtk.TRUE)
+        def select_current_song(self):
+            model = self.get_model()
+            giter = model.find_selected_giter()
+            if giter:
                 self.set_cursor(model.get_path(giter))
         def get_filename(self, giter):
             model = self.get_model()
@@ -413,7 +421,6 @@
 
 
 class IMMSToolbar(gtk.Toolbar):
-    _SLEEP_TIME = 5
     def __init__(self, iview, xmms, plotter):
         gtk.Toolbar.__init__(self)
         self.iview = iview
@@ -439,7 +446,7 @@
     def do_refresh(self, dummy = None):
         self.iview.get_model().update()
         self.current_song = ''
-    def do_get_current(self, dummy = None):
+    def refresh_current(self):
         song = self.xmms.get_current_file()
         if song != self.current_song:
             try:
@@ -447,32 +454,21 @@
                 self.current_song = song
             except Exception, e:
                 print >> stderr, e
+        return gtk.TRUE
+    def do_get_current(self, dummy = None):
+        self.refresh_current()
+        self.iview.select_current_song()
     def do_play(self, dummy = None):
         fn = self.iview.get_file_selected()
         if fn:
             self.xmms.play_file(fn)
-        self.sleep(self._SLEEP_TIME)
-        self.do_get_current(dummy)
     def do_play_prev(self, dummy = None):
         self.xmms.playlist_prev()
-        self.sleep(self._SLEEP_TIME)
-        self.do_get_current(dummy)
     def do_play_next(self, dummy = None):
         self.xmms.playlist_next()
-        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;
-
+ 
 class Application:
     REFRESH_RATE = 5000
-    def refresh_current(self):
-        self.toolbar.do_get_current()
-        return gtk.TRUE
     def __init__(self):
         self.xmms = XMMSControl()
         self.db = IMMSDb()
@@ -494,13 +490,17 @@
         iview.show()
         scroll.show()
         plotter = IMMSPlot(self.model)
-        self.toolbar = IMMSToolbar(iview, self.xmms, plotter)
-        vbox.pack_start(self.toolbar, expand = gtk.FALSE)
-        self.toolbar.show()
+        toolbar = IMMSToolbar(iview, self.xmms, plotter)
+        vbox.pack_start(toolbar, expand = gtk.FALSE)
+        toolbar.show()
         root.show()
-        self.toolbar.do_refresh(None)
-        gtk.timeout_add(self.REFRESH_RATE, Application.refresh_current, self)
+        toolbar.do_refresh()
+        gtk.timeout_add(self.REFRESH_RATE,
+                IMMSToolbar.refresh_current,
+                toolbar)
 
 if __name__ == '__main__':
     app = Application()
     app.main()
+
+# vim:et:ts=4: