--- a/immsview Wed Feb 04 15:20:40 2004 -0500
+++ b/immsview Wed Feb 04 16:31:45 2004 -0500
@@ -20,9 +20,14 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-_immsview_version = "$Id: immsview 1697 2004-02-04 20:20:40Z fabien $"
+_immsview_version = "$Id: immsview 1698 2004-02-04 21:31:45Z fabien $"
# $Log$
+# Revision 1.17 2004/02/04 21:31:45 fabien
+# Update the current song. This slow down thing a bit (any querying
+# take one to 2 seconds... That's pity!) but it make sure that at least
+# this song is correct.
+#
# Revision 1.16 2004/02/04 20:20:40 fabien
# Used the default sort function (return 0).
#
@@ -179,7 +184,7 @@
cu = self.cx.cursor()
cu.execute("""SELECT Library.uid FROM Library
WHERE Library.path = '%s';""" % quote_sql(path))
- return cu.fetchall()
+ return map(lambda x: x[0], cu.fetchall())
def get_ratings_and_info(self, uids = None):
print time.ctime(time.time()) + ": querying"
cu = self.cx.cursor()
@@ -202,7 +207,7 @@
tune = cu.fetchone()
while tune:
try:
- tmp = {'uid' : tune[0],
+ tmp = {'uid' : int(tune[0]),
'rating' : int(tune[1]),
'path' : tune[2].decode('utf-8', 'replace'),
'last' : int(tune[3])}
@@ -229,6 +234,7 @@
gobject.TYPE_INT)
self.db = db
self.set_default_sort_func(self.default_sort)
+ self.set_sort_column_id(-1, 0)
def default_sort(self, a, b, dummy):
return 0
def tune_to_giter(self, tune, giter = None, curtime = 0):
@@ -251,14 +257,16 @@
# however, have no consequences AFAIK.
# The doc permit it normally, even without default sort,
# elsewhere
- self.set_sort_column_id(-1, 0)
+ if col:
+ self.set_sort_column_id(-1, 0)
tunes = self.db.get_ratings_and_info()
self.clear()
print time.ctime(time.time()) + ": inserting"
for tune in tunes:
self.tune_to_giter(tune, curtime = curtime)
print time.ctime(time.time()) + ": end insert"
- self.set_sort_column_id(col, order)
+ if col:
+ self.set_sort_column_id(col, order)
def find_selected_giter(self):
giter = self.get_iter_first()
while giter:
@@ -278,13 +286,15 @@
if len(uids) == 0:
return None
uid = uids[0]
- giter = self.find_giter_from_uid(uid[0])
+ giter = self.find_giter_from_uid(uid)
if not giter:
tunes = self.db.get_ratings_and_info(uids)
if len(tunes) > 0:
giter = self.tune_to_giter(tunes[0])
+ else:
+ giter = self.update_giter(giter)
return giter
- def update_iter(self, giter):
+ def update_giter(self, giter):
uid = self.get_value(giter, IMMSStore.COL_UID)
tunes = self.db.get_ratings_and_info([uid,])
if len(tunes) > 0:
@@ -322,6 +332,7 @@
model = self.get_model()
giter = model.find_selected_giter()
if giter:
+ model.update_giter(giter)
model.set_value(giter, IMMSStore.COL_SELECT, gtk.FALSE)
giter = model.find_giter_from_path(song)
if giter:
@@ -329,7 +340,7 @@
self.set_cursor(model.get_path(giter))
def get_filename(self, giter):
model = self.get_model()
- fn = model.get_value(model.update_iter(giter), IMMSStore.COL_PATH)
+ fn = model.get_value(model.update_giter(giter), IMMSStore.COL_PATH)
try:
os.stat(fn)
except OSError: