--- 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: