using Hildon;
public class SourceListWindow : StackableWindow {
- SourceListView source_list;
+ private SourceListView source_list;
+ private bool start_movies;
+ private string default_source;
+ private MovieListWindow list_window;
+ private Alignment alignment;
construct {
set_title ("Cinæst");
set_main_menu (menu);
var sources = new List<MovieSource> ();
- source_list = new SourceListView (sources);
+ source_list = new SourceListView (sources, true, this);
- var hbox = new HBox (true, 0);
- hbox.pack_start (source_list, true, true, MARGIN_DOUBLE);
- add (hbox);
+ alignment = new Alignment (0.0f, 0.0f, 1.0f, 1.0f);
+ alignment.top_padding = MARGIN_HALF;
+ alignment.left_padding = MARGIN_DOUBLE;
+ alignment.right_padding = MARGIN_DOUBLE;
+
+ alignment.add (source_list);
+ add (alignment);
source_list.source_activated.connect (on_source_activated);
+ var gc = GConf.Client.get_default ();
+ try {
+ start_movies = gc.get_bool ("/apps/cinaest/start_movies");
+ default_source = gc.get_string ("/apps/cinaest/default_source");
+ } catch (Error e) {
+ stdout.printf ("Error getting GConf option: %s\n", e.message);
+ }
+
show_all ();
}
public void add_sources (List<MovieSource> list) {
source_list.add_sources (list);
+ if (source_list.length () > 6)
+ alignment.right_padding = MARGIN_DEFAULT;
+ else
+ alignment.right_padding = MARGIN_DOUBLE;
+ if (start_movies) {
+ foreach (MovieSource source in list) {
+ if (default_source == source.get_name ()) {
+ var window = new MovieListWindow (source);
+ window.show ();
+ break;
+ }
+ }
+ }
}
private void on_source_activated (MovieSource source) {
- var window = new MovieListWindow (source);
+ if (list_window != null)
+ return;
+
+ list_window = new MovieListWindow (source);
+ list_window.show ();
+ list_window.destroy.connect (() => { list_window = null; });
}
}