013c92f930a3575017011cdfd95b289e4092b8ca
[mussorgsky] / src / mussorgsky.py
1 #!/usr/bin/env python2.5
2 import hildon
3 import gtk, gobject
4 from tracker_backend import TrackerBackend
5 from album_art_panel import MussorgskyAlbumArtPanel
6 from browse_panel import MussorgskyBrowsePanel
7 from fancy_button import FancyButton
8
9 class MussorgskyMainWindow (hildon.StackableWindow):
10
11     def __init__ (self):
12         hildon.StackableWindow.__init__ (self)
13         self.tracker = TrackerBackend ()
14         self.set_title ("MussOrgsky")
15         self.set_border_width (12)
16         self.connect ("destroy", gtk.main_quit)
17         self.__create_view ()
18         self.show_all ()
19         
20     def show_edit_panel (self, songs):
21         panel = MussorgskyBrowsePanel (songs)
22         panel.show_all ()
23
24     def broken_files_clicked (self, widget):
25         list_songs = self.tracker.get_all_broken_songs ()
26         self.show_edit_panel (list_songs)
27
28     def browse_clicked (self, widget):
29         list_songs = self.tracker.get_all_songs ()
30         self.show_edit_panel (list_songs)
31
32     def album_art_clicked (self, widget):
33         album_artists = self.tracker.get_all_pairs_album_artist ()
34         panel = MussorgskyAlbumArtPanel (album_artists)
35         panel.show_all ()
36
37     def __create_view (self):
38
39         image1 = gtk.Image ()
40         # "app_install_applications" "app_install_browse"
41         image1.set_from_icon_name ("app_install_applications", gtk.ICON_SIZE_MENU)
42         image1.set_pixel_size (164)
43
44         image2 = gtk.Image ()
45         image2.set_from_icon_name ("app_install_browse", gtk.ICON_SIZE_MENU)
46         image2.set_pixel_size (164)
47
48         hbox = gtk.HBox ()
49
50         align1 = gtk.Alignment (xalign=0.5, yalign=0.5)
51         button1 = FancyButton (image2, "Browse metadata")
52         button1.connect ("clicked", self.browse_clicked)
53         align1.add (button1)
54         hbox.pack_start (align1)
55
56         align2 = gtk.Alignment (xalign=0.5, yalign=0.5)
57         button2 = FancyButton(image1, "Album art")
58         button2.connect ("clicked", self.album_art_clicked)
59         align2.add (button2)
60         hbox.pack_start (align2)
61
62         self.add (hbox)
63
64
65 if __name__ == "__main__":
66
67     try:
68         window = MussorgskyMainWindow ()
69         gtk.main ()
70     except Exception, e:
71         dialog = gtk.MessageDialog (None,
72                                     gtk.DIALOG_DESTROY_WITH_PARENT,
73                                     gtk.MESSAGE_ERROR,
74                                     gtk.BUTTONS_CLOSE,
75                                     "Error (%s)" % str(e));
76         dialog.run ()
77