Movie list window: keep movie count, show "No movies" label if emptied
authorPhilipp Zabel <philipp.zabel@gmail.com>
Sun, 11 Jul 2010 10:43:08 +0000 (12:43 +0200)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Sun, 11 Jul 2010 10:43:08 +0000 (12:43 +0200)
src/movie-list-window.vala

index bc415e1..d5b6b4f 100644 (file)
@@ -32,6 +32,7 @@ public class MovieListWindow : StackableWindow {
        private bool search_bar_visible;
        private MovieWindow movie_window;
        private Alignment alignment;
+       private int count;
 
        public MovieListWindow (MovieSource source) {
                set_title (source.get_description ());
@@ -98,6 +99,8 @@ public class MovieListWindow : StackableWindow {
                close_button.clicked.connect (on_close_button_clicked);
                key_press_event.connect (on_key_press_event);
                movie_list.movie_activated.connect (on_movie_activated);
+               store.row_deleted.connect (on_row_deleted);
+               store.row_inserted.connect (on_row_inserted);
                store.search_finished.connect (on_search_finished);
 
                store.notify["update-running"].connect (on_update_running_changed);
@@ -242,6 +245,20 @@ public class MovieListWindow : StackableWindow {
                movie_window.show ();
        }
 
+       private void on_row_deleted (TreePath path) {
+               if (--count == 0) {
+                       no_movies.show ();
+                       movie_list.hide ();
+               }
+       }
+
+       private void on_row_inserted (TreePath path, TreeIter iter) {
+               if (count++ == 0) {
+                       no_movies.hide ();
+                       movie_list.show ();
+               }
+       }
+
        private void on_update_running_changed (GLib.Object source, ParamSpec spec) {
                TreeIter iter;