示例#1
0
 def turn_page(self, state=None):
     """ Turn screen page
     
     :param state: button state
     """
     filelist = Page(self.episodes, MENU_ROWS_EPISODES, MENU_COLUMNS_EPISODES)
     
     if state == None:
         filelist.current_page_index = self.current_page - 1
         index = filelist.current_page_index * PAGE_SIZE_EPISODES
     else:            
         if getattr(state, "status", None) == STATUS_LOADED:
             if hasattr(state, "original_url") and len(state.original_url.strip()) > 0:
                 filelist.set_current_item_by_url(state.original_url)
             else:
                 filelist.set_current_item_by_file_name(state.file_name)
         else:
             filelist.set_current_item_by_url(state.url)
         index = filelist.current_item_index            
     
     self.current_page = filelist.current_page_index + 1
     
     page = filelist.get_current_page()
     d = self.episodes_menu.make_dict(page)
     self.episodes_menu.set_items(d, filelist.current_page_index, self.select_episode, False)
     self.set_title(self.current_page)
     self.episodes_menu.unselect()
     self.episodes_menu.select_by_index(index)
     
     self.navigator.left_button.change_label(str(filelist.get_left_items_number()))
     self.navigator.right_button.change_label(str(filelist.get_right_items_number()))
     self.episodes_menu.clean_draw_update()
     
     if hasattr(self, "update_observer"):
         self.episodes_menu.add_menu_observers(self.update_observer, self.redraw_observer)
示例#2
0
    def turn_page(self, state=None):
        """ Turn screen page
        
        :param state: button state
        """
        filelist = Page(self.episodes, MENU_ROWS_EPISODES, MENU_COLUMNS_EPISODES)
        
        if state == None:
            pass
            filelist.current_page_index = self.current_page - 1
            index = -1
        else:            
            if getattr(state, "status", None) == STATUS_LOADED:
                if hasattr(state, "original_url") and len(state.original_url.strip()) > 0:
                    filelist.set_current_item_by_url(state.original_url)
                else:
                    filelist.set_current_item_by_file_name(state.file_name)
            else:
                filelist.set_current_item_by_url(state.url)
            
            index = filelist.current_item_index            

        self.current_item = self.config[PODCASTS][PODCAST_EPISODE_NAME]        
        self.current_page = filelist.current_page_index + 1
        
        page = filelist.get_current_page()
        d = self.episodes_menu.make_dict(page)
        self.episodes_menu.set_items(d, filelist.current_page_index, self.select_episode, False)
        self.set_title(self.current_page)
        self.episodes_menu.unselect()
        self.episodes_menu.select_by_index(index)
        
        for b in self.episodes_menu.buttons.values():
            b.parent_screen = self

        self.navigator.get_button_by_name(KEY_PAGE_DOWN).change_label(str(filelist.get_left_items_number()))
        self.navigator.get_button_by_name(KEY_PAGE_UP).change_label(str(filelist.get_right_items_number()))
        self.episodes_menu.clean_draw_update()
        
        if hasattr(self, "update_observer"):
            self.episodes_menu.add_menu_observers(self.update_observer, self.redraw_observer)

        self.link_borders()

        menu_selected = self.menu.get_selected_index()
        if menu_selected == None:
            if self.current_item == None or len(self.current_item) == 0:
                self.menu.select_by_index(0)
                item = self.menu.get_selected_item()
                if item != None:
                    self.current_item = item.state.name

        for b in self.menu.buttons.values():
            b.parent_screen = self
            if self.current_item == b.state.name:
                self.menu.select_by_index(b.state.index)
                self.navigator.unselect()
                return