Italian translation update (via transifex.net, by mij37)
[cinaest] / src / source-list-window.vala
index 3f739d7..22d6e24 100644 (file)
@@ -20,7 +20,11 @@ using Gtk;
 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");
@@ -31,22 +35,52 @@ public class SourceListWindow : StackableWindow {
                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; });
        }
 }