1 #!/usr/bin/env python2.5
4 from tracker_backend import TrackerBackend
5 from edit_panel import MussorgskyEditPanel
8 class MussorgskyMainWindow (hildon.StackableWindow):
11 hildon.StackableWindow.__init__ (self)
12 self.tracker = TrackerBackend ()
13 self.set_title ("Mussorgsky")
14 self.connect ("destroy", gtk.main_quit)
15 main_view_box = self.create_main_view ()
16 self.add (main_view_box)
17 self.update_values (None)
20 def show_edit_panel (self, songs, albums, artists):
21 panel = MussorgskyEditPanel (songs, albums, artists)
22 panel.connect ("destroy", self.back_to_main_view)
25 def back_to_main_view (self, widget):
26 print "Waiting to update"
27 gobject.timeout_add_seconds (3, self.update_values, None)
29 def artists_clicked (self, widget):
30 list_songs = self.tracker.get_songs_without_artist ()
31 list_albums = self.tracker.get_list_of_known_albums ()
32 list_artists = self.tracker.get_list_of_known_artists ()
33 self.show_edit_panel (list_songs, list_albums, list_artists)
35 def titles_clicked (self, widget):
36 list_songs = self.tracker.get_songs_without_title ()
37 list_albums = self.tracker.get_list_of_known_albums ()
38 list_artists = self.tracker.get_list_of_known_artists ()
39 self.show_edit_panel (list_songs, list_albums, list_artists)
41 def albums_clicked (self, widget):
42 list_songs = self.tracker.get_songs_without_album ()
43 list_albums = self.tracker.get_list_of_known_albums ()
44 list_artists = self.tracker.get_list_of_known_artists ()
45 self.show_edit_panel (list_songs, list_albums, list_artists)
47 def update_values (self, user_data):
48 print "Updating labels"
49 self.label_no_artist.set_text ("%s songs without artist" %
50 self.tracker.count_songs_wo_artist ())
51 self.label_no_title.set_text ("%s songs without title" %
52 self.tracker.count_songs_wo_title ())
53 self.label_no_album.set_text ("%s songs without album" %
54 self.tracker.count_songs_wo_album ())
57 def browse_clicked (self, widget):
58 list_songs = self.tracker.get_all_songs ()
59 list_albums = self.tracker.get_list_of_known_albums ()
60 list_artists = self.tracker.get_list_of_known_artists ()
61 self.show_edit_panel (list_songs, list_albums, list_artists)
63 def create_main_view (self):
67 artist_row = gtk.HBox (homogeneous=True)
68 self.label_no_artist = gtk.Label ("")
69 artist_row.add (self.label_no_artist)
70 button_artists = gtk.Button ("Fix empty artists!")
71 button_artists.connect ("clicked", self.artists_clicked)
72 artist_row.add (button_artists)
77 title_row = gtk.HBox (homogeneous=True)
78 self.label_no_title = gtk.Label ("")
79 title_row.add (self.label_no_title)
80 button_titles = gtk.Button ("Fix empty titles!")
81 button_titles.connect ("clicked", self.titles_clicked)
82 title_row.add (button_titles)
87 album_row = gtk.HBox (homogeneous=True)
88 self.label_no_album = gtk.Label ("")
89 album_row.add (self.label_no_album)
90 button_albums = gtk.Button ("Fix empty albums!")
91 button_albums.connect ("clicked", self.albums_clicked)
92 album_row.add (button_albums)
97 all_songs_row = hildon.Button (hildon.BUTTON_STYLE_NORMAL, hildon.BUTTON_ARRANGEMENT_HORIZONTAL)
98 all_songs_row.set_title ("Browse the music collection")
99 all_songs_row.connect ("clicked", self.browse_clicked)
100 vbox.add (all_songs_row)
104 if __name__ == "__main__":
107 window = MussorgskyMainWindow ()
110 dialog = gtk.MessageDialog (None,
111 gtk.DIALOG_DESTROY_WITH_PARENT,
114 "Error (%s)" % str(e));