summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuo Jinghua <sunmoon1997@gmail.com>2009-12-25 01:12:40 +0800
committerLuo Jinghua <sunmoon1997@gmail.com>2009-12-25 01:12:40 +0800
commitc2122eb186592b5256a1050ad8f2281f2a52971f (patch)
tree744d240e559243770a0e64ae6b815e7b96bf09a2
parent61a26646906da9770082bfbf3c14a360955087df (diff)
totem: page navigating works now
-rw-r--r--totem/plugin/ppstream.py86
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)