Preparing 0.5.2-2 release
[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, settings_changed
8
9 import i18n
10 _ = i18n.language.gettext
11
12 class MussorgskyMainWindow (hildon.StackableWindow):
13
14     def __init__ (self):
15         hildon.StackableWindow.__init__ (self)
16
17
18         
19         self.tracker = TrackerBackend ()
20         self.set_title ("MussOrgsky")
21         self.set_border_width (12)
22         self.connect ("destroy", gtk.main_quit)
23         self.__create_view ()
24         self.show_all ()
25         
26     def show_browse_panel (self, songs):
27         panel = MussorgskyBrowsePanel (songs)
28         panel.show_all ()
29
30     def broken_files_clicked (self, widget):
31         list_songs = self.tracker.get_all_broken_songs ()
32         self.show_browse_panel (list_songs)
33
34     def browse_clicked (self, widget):
35         list_songs = self.tracker.get_all_songs ()
36         self.show_browse_panel (list_songs)
37
38     def album_art_clicked (self, widget):
39         album_artists = self.tracker.get_all_pairs_album_artist ()
40         panel = MussorgskyAlbumArtPanel (album_artists)
41         panel.show_all ()
42
43     def __create_view (self):
44
45         image1 = gtk.Image ()
46         # "app_install_applications" "app_install_browse"
47         image1.set_from_icon_name ("app_install_applications", gtk.ICON_SIZE_MENU)
48         image1.set_pixel_size (164)
49
50         image2 = gtk.Image ()
51         image2.set_from_icon_name ("app_install_browse", gtk.ICON_SIZE_MENU)
52         image2.set_pixel_size (164)
53
54         hbox = gtk.HBox ()
55
56         align1 = gtk.Alignment (xalign=0.5, yalign=0.5)
57         button1 = FancyButton (image1, _("Metadata"))
58         button1.connect ("clicked", self.browse_clicked)
59         align1.add (button1)
60         hbox.pack_start (align1)
61
62         align2 = gtk.Alignment (xalign=0.5, yalign=0.5)
63         button2 = FancyButton(image2, _("Album art"))
64         button2.connect ("clicked", self.album_art_clicked)
65         align2.add (button2)
66         hbox.pack_start (align2)
67
68         self.add (hbox)
69
70
71 if __name__ == "__main__":
72
73
74     try:
75         window = MussorgskyMainWindow ()
76         
77         settings = gtk.settings_get_default ()
78         settings.connect ("notify", settings_changed)
79         settings_changed (None, None)
80
81         gtk.main ()
82     except Exception, e:
83         dialog = gtk.MessageDialog (None,
84                                     gtk.DIALOG_DESTROY_WITH_PARENT,
85                                     gtk.MESSAGE_ERROR,
86                                     gtk.BUTTONS_CLOSE,
87                                     "Error (%s)" % str(e));
88         dialog.run ()
89