Construct movie list window with source
authorPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 19 Nov 2009 14:05:03 +0000 (15:05 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 19 Nov 2009 16:22:03 +0000 (17:22 +0100)
As the movie list window's source won't change anymore over its lifetime,
drop the property and set the source during construction.

src/movie-list-window.vala
src/source-list-window.vala

index 73937bf..e545244 100644 (file)
@@ -31,9 +31,12 @@ public class MovieListWindow : StackableWindow {
        private Label no_movies;
        private bool search_bar_visible;
 
-       construct {
+       public MovieListWindow (MovieSource source) {
+               set_title (source.get_description ());
+
                // View menu
                menu = new MovieListMenu (this);
+               menu.source = source;
 
                set_main_menu (menu);
 
@@ -57,6 +60,7 @@ public class MovieListWindow : StackableWindow {
                movie_list = new MovieListView ();
                menu.sortable = movie_list.sorted_store;
                store = movie_list.store;
+               store.source = source;
 
                no_movies = new Label (_("No movies"));
                Hildon.helper_set_logical_font (no_movies, "LargeSystemFont");
@@ -91,23 +95,14 @@ public class MovieListWindow : StackableWindow {
                edit_toolbar.hide ();
                search_bar_visible = false;
                search_bar.hide ();
-               movie_list.hide ();
 
                filter = new MovieFilter ();
                menu.filter = filter;
-       }
-
-       public MovieSource source {
-               get { return store.source; }
-               set {
-                       store.source = value;
-                       menu.source = value;
-                       set_title (value.get_description ());
-                       filter.title = search_field.get_text ();
-                       if (store.start_search (filter)) {
-                               movie_list.show ();
-                               no_movies.hide ();
-                       }
+               filter.title = "";
+               if (store.start_search (filter)) {
+                       no_movies.hide ();
+               } else {
+                       movie_list.hide ();
                }
        }
 
index 9736fb8..2e3eb3b 100644 (file)
@@ -42,7 +42,6 @@ public class SourceListWindow : StackableWindow {
        }
 
        private void on_source_activated (MovieSource source) {
-               var window = new MovieListWindow ();
-               window.source = source;
+               var window = new MovieListWindow (source);
        }
 }