1 /* This file is part of Cinaest.
3 * Copyright (C) 2009 Philipp Zabel
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.
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.
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/>.
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;
30 set_title ("Cinæst");
33 var menu = new SourceListMenu (this);
37 var sources = new List<MovieSource> ();
38 source_list = new SourceListView (sources, true, this);
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;
45 alignment.add (source_list);
48 source_list.source_activated.connect (on_source_activated);
50 var gc = GConf.Client.get_default ();
52 start_movies = gc.get_bool ("/apps/cinaest/start_movies");
53 default_source = gc.get_string ("/apps/cinaest/default_source");
55 stdout.printf ("Error getting GConf option: %s\n", e.message);
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;
66 alignment.right_padding = MARGIN_DOUBLE;
68 foreach (MovieSource source in list) {
69 if (default_source == source.get_name ()) {
70 var window = new MovieListWindow (source);
78 private void on_source_activated (MovieSource source) {
79 if (list_window != null)
82 list_window = new MovieListWindow (source);
84 list_window.destroy.connect (() => { list_window = null; });