From: Ivan Frade Date: Tue, 8 Sep 2009 14:07:53 +0000 (+0300) Subject: Set all columns in the model so the view is updated X-Git-Tag: mussorgsky-0.3-1~5^2~2 X-Git-Url: http://vcs.maemo.org/git/?p=mussorgsky;a=commitdiff_plain;h=654e75f473965500db9456e184502954a45cad18 Set all columns in the model so the view is updated Use the same keys as in browse panel --- diff --git a/src/edit_panel_tm.py b/src/edit_panel_tm.py index 7646f72..10f9444 100644 --- a/src/edit_panel_tm.py +++ b/src/edit_panel_tm.py @@ -3,15 +3,19 @@ import hildon import gtk, gobject from mutagen_backend import MutagenBackend from player_backend import MediaPlayer +from utils import escape_html import album_art_spec import os # Fields in the tuple! -FILE_URI = 0 -ARTIST_KEY = 2 -TITLE_KEY = 3 -ALBUM_KEY = 4 -MIME_KEY = 5 +# Shared with browse_panel +URI_COLUMN = 0 +ARTIST_COLUMN = 2 +TITLE_COLUMN = 3 +ALBUM_COLUMN = 4 +MIME_COLUMN = 5 +UI_COLUMN = 6 +SEARCH_COLUMN = 7 class MussorgskyEditPanel (hildon.StackableWindow): @@ -122,7 +126,6 @@ class MussorgskyEditPanel (hildon.StackableWindow): self.current = self.model.iter_next (self.current) if (not self.current): - print "Destroy" self.destroy () else: self.set_data_in_view (self.get_current_row ()) @@ -137,7 +140,6 @@ class MussorgskyEditPanel (hildon.StackableWindow): # 1 - "Music" -> doesn't change # 5 - mimetype -> doesn't change if (type (self.model) == gtk.TreeModelFilter): - print "Ye un filtered" m = self.model.get_model () c = self.model.convert_iter_to_child_iter (self.current) else: @@ -145,14 +147,23 @@ class MussorgskyEditPanel (hildon.StackableWindow): m = self.model c = self.current + artist = self.artist_button.get_value () + title = self.title_entry.get_text () + album = self.album_button.get_value () + text = "%s\n%s" % (escape_html (title), + escape_html (artist) + " / " + escape_html (album)) + search_str = artist.lower () + " " + title.lower () + " " + album.lower () + m.set (c, - 2, self.artist_button.get_value (), - 3, self.title_entry.get_text (), - 4, self.album_button.get_value ()) + ARTIST_COLUMN, artist, + TITLE_COLUMN, title, + ALBUM_COLUMN, album, + UI_COLUMN, text, + SEARCH_COLUMN, search_str) new_song = self.get_current_row () try: - self.writer.save_metadata_on_file (new_song[FILE_URI], - new_song[MIME_KEY], + self.writer.save_metadata_on_file (new_song[URI_COLUMN], + new_song[MIME_COLUMN], self.artist_button.get_value (), self.title_entry.get_text (), self.album_button.get_value ()) @@ -174,10 +185,10 @@ class MussorgskyEditPanel (hildon.StackableWindow): """ song = self.get_current_row () - return not (self.filename_data.get_text() == song[FILE_URI] and - self.artist_button.get_value () == song[ARTIST_KEY] and - self.title_entry.get_text () == song[TITLE_KEY] and - self.album_button.get_value () == song[ALBUM_KEY] ) + return not (self.filename_data.get_text() == song[URI_COLUMN] and + self.artist_button.get_value () == song[ARTIST_COLUMN] and + self.title_entry.get_text () == song[TITLE_COLUMN] and + self.album_button.get_value () == song[ALBUM_COLUMN] ) def __create_view (self): @@ -263,8 +274,8 @@ class MussorgskyEditPanel (hildon.StackableWindow): """ assert len (song) == 6 - self.filename_data.set_markup ("" + song[FILE_URI] + "") - self.title_entry.set_text (song[TITLE_KEY]) + self.filename_data.set_markup ("" + song[URI_COLUMN] + "") + self.title_entry.set_text (song[TITLE_COLUMN]) # Disconnect the value-change signal to avoid extra album art retrievals @@ -276,17 +287,17 @@ class MussorgskyEditPanel (hildon.StackableWindow): # Set values in the picker buttons try: - self.artist_button.set_active (self.artists_list.index(song[ARTIST_KEY])) + self.artist_button.set_active (self.artists_list.index(song[ARTIST_COLUMN])) except ValueError: - print "'%s' not in artist list!?" % (song[ARTIST_KEY]) + print "'%s' not in artist list!?" % (song[ARTIST_COLUMN]) self.artist_button.set_value ("") except AttributeError: print "WARNING: Use set_artist_alternatives method to set a list of artists" try: - self.album_button.set_active (self.albums_list.index (song[ALBUM_KEY])) + self.album_button.set_active (self.albums_list.index (song[ALBUM_COLUMN])) except ValueError: - print "'%s' is not in the album list!?" % (song[ALBUM_KEY]) + print "'%s' is not in the album list!?" % (song[ALBUM_COLUMN]) self.album_button.set_value ("") except AttributeError: print "WARNING: Use set_album_alternatives method to set a list of artists" @@ -299,9 +310,9 @@ class MussorgskyEditPanel (hildon.StackableWindow): self.artist_selection_cb) # Set the album art given the current data - self.set_album_art (song[ALBUM_KEY]) + self.set_album_art (song[ALBUM_COLUMN]) - if (not song[MIME_KEY] in self.writer.get_supported_mimes ()): + if (not song[MIME_COLUMN] in self.writer.get_supported_mimes ()): self.artist_button.set_sensitive (False) self.album_button.set_sensitive (False) self.title_entry.set_sensitive (False) @@ -328,7 +339,7 @@ class MussorgskyEditPanel (hildon.StackableWindow): self.player.stop () else: song = self.songs_list [self.song_counter] - self.player.play ("file://" + song[FILE_URI]) + self.player.play ("file://" + song[URI_COLUMN]) def album_selection_cb (self, widget): """