Czech translation update (via transifex.net)
[cinaest] / src / source-list-window.vala
1 /* This file is part of Cinaest.
2  *
3  * Copyright (C) 2009 Philipp Zabel
4  *
5  * Cinaest is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * Cinaest is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with Cinaest. If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 using Gtk;
20 using Hildon;
21
22 public class SourceListWindow : StackableWindow {
23         private SourceListView source_list;
24         private bool start_movies;
25         private string default_source;
26         private MovieListWindow list_window;
27         private Alignment alignment;
28
29         construct {
30                 set_title ("Cinæst");
31
32                 // View menu
33                 var menu = new SourceListMenu (this);
34
35                 set_main_menu (menu);
36
37                 var sources = new List<MovieSource> ();
38                 source_list = new SourceListView (sources, true, this);
39
40                 alignment = new Alignment (0.0f, 0.0f, 1.0f, 1.0f);
41                 alignment.top_padding = MARGIN_HALF;
42                 alignment.left_padding = MARGIN_DOUBLE;
43                 alignment.right_padding = MARGIN_DOUBLE;
44
45                 alignment.add (source_list);
46                 add (alignment);
47
48                 source_list.source_activated.connect (on_source_activated);
49
50                 var gc = GConf.Client.get_default ();
51                 try {
52                         start_movies = gc.get_bool ("/apps/cinaest/start_movies");
53                         default_source = gc.get_string ("/apps/cinaest/default_source");
54                 } catch (Error e) {
55                         stdout.printf ("Error getting GConf option: %s\n", e.message);
56                 }
57
58                 show_all ();
59         }
60
61         public void add_sources (List<MovieSource> list) {
62                 source_list.add_sources (list);
63                 if (source_list.length () > 6)
64                         alignment.right_padding = MARGIN_DEFAULT;
65                 else
66                         alignment.right_padding = MARGIN_DOUBLE;
67                 if (start_movies) {
68                         foreach (MovieSource source in list) {
69                                 if (default_source == source.get_name ()) {
70                                         var window = new MovieListWindow (source);
71                                         window.show ();
72                                         break;
73                                 }
74                         }
75                 }
76         }
77
78         private void on_source_activated (MovieSource source) {
79                 if (list_window != null)
80                         return;
81
82                 list_window = new MovieListWindow (source);
83                 list_window.show ();
84                 list_window.destroy.connect (() => { list_window = null; });
85         }
86 }