diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2009-12-25 01:12:40 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2009-12-25 01:12:40 +0800 |
commit | c2122eb186592b5256a1050ad8f2281f2a52971f (patch) | |
tree | 744d240e559243770a0e64ae6b815e7b96bf09a2 | |
parent | 61a26646906da9770082bfbf3c14a360955087df (diff) |
totem: page navigating works now
-rw-r--r-- | totem/plugin/ppstream.py | 86 |
1 files changed, 78 insertions, 8 deletions
diff --git a/totem/plugin/ppstream.py b/totem/plugin/ppstream.py index 554c865..7642f72 100644 --- a/totem/plugin/ppstream.py +++ b/totem/plugin/ppstream.py @@ -607,6 +607,7 @@ class PPStream (totem.Plugin): ## for film in result: ## print film self.fill_films (result, clsid, subclsid) + self.set_page_max(subcls.getMaxPage()) def parse_class (self, res): self.ppslist.updateClasses(self.ppslist.parseClasses(res)) @@ -811,6 +812,7 @@ class PPStream (totem.Plugin): subclassid = model.get_value (iter, 2) #print title, classid, subclassid + self.films_page = 0 self.show_films (classid, subclassid) self.notebook.set_current_page (1) @@ -1227,9 +1229,12 @@ class PPStream (totem.Plugin): cls, subcls = self.get_class_pair (clsid, subclsid) if not subcls: subcls = cls + + self.set_page_max(subcls.getMaxPage()) + treeview_name = 'films' liststore = self.liststore[treeview_name] - for film in subcls.getMovies(): + for film in subcls.getPage(self.films_page): self.storelist_append_film (liststore, film, clsid, subclsid) treeview_name = 'categories' @@ -1274,7 +1279,6 @@ class PPStream (totem.Plugin): cls, subcls = self.get_class_pair (*self.films_ids) subcls = cls subcls.fetching_films = False - self.films_page = 0 self.films_ids = (clsid, subclsid) @@ -1288,12 +1292,12 @@ class PPStream (totem.Plugin): if force and (clsid, subclsid) != (0, 0): subcls.resetMovies() subcls.films_fetched = False - subcls.last_films = '' if cancel or (not subcls.fetching_films and not self.retrieveimage.is_busy ()): self.add_progress_callback (clsid, subclsid, self.films_count) ### fill all loaded films + self.set_current_page(self.films_page + 1) self.fill_all_films (clsid, subclsid) if not len(subcls.getPage(self.films_page)): subcls.fetching_films = False @@ -1578,19 +1582,77 @@ class PPStream (totem.Plugin): self.add_to_favorites_button.set_sensitive(all_files_fetched) def on_first_page_clicked(self, *args): - pass + if self.films_ids == (): + return + + cls, subcls = self.get_class_pair(*self.films_ids) + if not subcls: + subcls = cls + if self.films_page == 0: + return + self.films_page = 0 + + films_ids = self.films_ids + self.films_ids = () + self.show_films(*films_ids) def on_prev_page_clicked(self, *args): - pass + if self.films_ids == (): + return + if self.films_page < 1: + return + self.films_page -= 1 + + films_ids = self.films_ids + self.films_ids = () + self.show_films(*films_ids) def on_next_page_clicked(self, *args): - pass + if self.films_ids == (): + return + cls, subcls = self.get_class_pair(*self.films_ids) + if not subcls: + subcls = cls + + if self.films_page >= subcls.getMaxPage() - 1: + return + self.films_page += 1 + + films_ids = self.films_ids + self.films_ids = () + self.show_films(*films_ids) def on_last_page_clicked(self, *args): - pass + if self.films_ids == (): + return + cls, subcls = self.get_class_pair(*self.films_ids) + if not subcls: + subcls = cls + if self.films_page == subcls.getMaxPage() - 1: + return + self.films_page = subcls.getMaxPage() -1 + + films_ids = self.films_ids + self.films_ids = () + self.show_films(*films_ids) def on_goto_page_clicked(self, *args): - pass + if self.films_ids == (): + return + + cls, subcls = self.get_class_pair(*self.films_ids) + if not subcls: + subcls = cls + + page = self.which_page_button.get_value_as_int() - 1 + if page >= subcls.getMaxPage(): + return + if page == self.films_page: + return + self.films_page = page + films_ids = self.films_ids + self.films_ids = () + self.show_films(*films_ids) def set_page_max(self, max_page): adjustment = self.which_page_button.get_adjustment() @@ -1616,12 +1678,19 @@ class PPStream (totem.Plugin): adjustment.set_upper(1) adjustment.set_value(1) + self.first_page_button.connect('clicked', self.on_first_page_clicked) + self.prev_page_button.connect('clicked', self.on_prev_page_clicked) + self.next_page_button.connect('clicked', self.on_next_page_clicked) + self.last_page_button.connect('clicked', self.on_last_page_clicked) + self.goto_page_button.connect('clicked', self.on_goto_page_clicked) + def on_notebook_page_changed (self, notebook, notebook_page, page_num): self.current_treeview_name = self.notebook_pages[page_num] self.add_to_favorites_button.set_sensitive (False) self.remove_from_favorites_button.set_sensitive (False) if self.current_treeview_name == 'files': self.refresh_button.set_sensitive (False) + self.page_hbox.set_sensitive (False) self.update_progress_bar () elif self.current_treeview_name == 'films': if self.films_ids == (): @@ -1634,6 +1703,7 @@ class PPStream (totem.Plugin): self.page_hbox.set_sensitive (True) self.update_progress_bar () else: + self.page_hbox.set_sensitive (False) self.refresh_button.set_sensitive (True) self.update_categories_progress (self.categories_count) |