⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progwindow.py

📁 XOT: XBMC Online TV Framework
💻 PY
📖 第 1 页 / 共 2 页
字号:
                # if mainlist is not empty, then the episodewindow should be dispalyed
                elif controlID == controls.PR_LIST and self.mainlistItems != []:
                    selectedPosition = self.getControl(controls.PR_LIST).getSelectedPosition()
                    if self.listMode == 2:
                        if selectedPosition > len(self.favoriteItems):
                            logFile.error("Favorites list does not have %s items, so item %s cannot be selected",selectedPosition,selectedPosition)
                            return
                        selectedUrl = self.favoriteItems[selectedPosition].url
                    else: 
                        selectedUrl = self.mainlistItems[selectedPosition].url
                    logFile.info('opening episode list GUI with uri=%s',selectedUrl)
                    self.activeChannelGUI.ShowEpisodeWindow(selectedUrl)
                
                
                #===============================================================================
                # check if a button that was registered was pressed!
                #===============================================================================
                elif controlID in self.channelButtonRegister:
                    # set the active channel in case no up/down was done!
                    self.selectedChannelIndex = self.channelButtonRegister.index(controlID)
                    self.activeChannelGUI = self.channelGUIs[self.selectedChannelIndex]
                
                    self.getControl(controls.PR_LIST).reset()
                    self.ChannelListVisible(False)
                    
                    # Get MainlistItems
                    self.mainlistItems = self.activeChannelGUI.ParseMainList()
                    
                    for m in self.mainlistItems:
                        self.getControl(controls.PR_LIST).addItem(xbmcgui.ListItem(m.name,"",m.icon, m.icon))
               
        except:
            logFile.critical("OnAction Error", exc_info=True)
            self.close()
    #===============================================================================
    def onClick(self, controlID):
        try:
            pass
            # Not used because of bug in wraplist
            
        except:
            logFile.critical("Error handling onClick on controlID=%s", controlID, exc_info=True)
    #===============================================================================
    def onFocus(self, controlID):
        """"
            onFocus(self, int controlID)
            This function has been implemented and works
        """
    #===============================================================================
    # Fill the channels
    #===============================================================================
    def DisplayGUIs(self):
         self.clearList()
         for channelGUI in self.channelGUIs:
            tmp = xbmcgui.ListItem(channelGUI.channelName,"" , channelGUI.icon , channelGUI.iconLarge)
            logFile.debug("Adding %s", channelGUI.channelName)
            self.addItem(tmp)
    
    #==============================================================================
    def ShowListItems(self, items):
        self.getControl(controls.PR_LIST).reset()
                    
        if len(items)==0:
            # add dummy item
            tmp = common.clistItem("No Files","")
            tmp.complete = True
            items.append(tmp)
        
        for m in items:
            self.getControl(controls.PR_LIST).addItem(xbmcgui.ListItem(m.name,m.date,m.icon, m.icon))

    #============================================================================== 
    def DoActionFromContextMenu(self, selectedIndex):
        if self.contextMenu is False:
            return None
        logFile.info("Showing Context Menu")
        
        if (self.listMode == 1):
            # build menuitems
            menuItems = []            
            menuItems.append(contextmenu.ContextMenuItem("Show Favorites", "ShowFavorites"))
            menuItems.append(contextmenu.ContextMenuItem("Add to Favorites", "AddToFavorites"))
            
            contextMenu = contextmenu.GUI(config.contextMenuSkin, config.rootDir, config.skinFolder, parent=self.getFocus(), menuItems = menuItems)
            selectedItem = contextMenu.selectedItem
            del contextMenu
            
            # handle function from items
            if ( selectedItem is not None ):    
                 logFile.debug("Selection from mainlist menu was %s", selectedItem)
                 if selectedItem == 0:
                    self.listMode = 2
                    # Get Favorites
                    self.favoriteItems = settings.LoadFavorites(self.activeChannelGUI.channelName, self.activeChannelGUI.icon)
                    self.ShowListItems(self.favoriteItems)                    
                 if selectedItem == 1:
                    settings.AddToFavorites(self.mainlistItems[selectedIndex], self.activeChannelGUI.channelName)
                    return 2
                
        elif (self.listMode == 2):
            # build menuitems
            menuItems = []            
            menuItems.append(contextmenu.ContextMenuItem("Hide Favorites", "HideFavorites"))
            menuItems.append(contextmenu.ContextMenuItem("Remove from Favorites", "RemoveFromFavorites"))
            contextMenu = contextmenu.GUI(config.contextMenuSkin, config.rootDir, config.skinFolder, parent=self.getFocus(), menuItems = menuItems)
            selectedItem = contextMenu.selectedItem
            del contextMenu
            
            # handle function from items
            if ( selectedItem is not None ):    
                 logFile.debug("Selection from favorites menu was %s", selectedItem)
                 if selectedItem == 0:
                    self.listMode = 1
                    self.ShowListItems(self.mainlistItems)                    
                 if selectedItem == 1:
                    settings.RemoveFromFavorites(self.favoriteItems[selectedIndex], self.activeChannelGUI.channelName)
                    
                    #reload the items
                    self.favoriteItems = settings.LoadFavorites(self.activeChannelGUI.channelName, self.activeChannelGUI.icon)
                    self.ShowListItems(self.favoriteItems)
                    return 2
                
        return None
    
    #===============================================================================
    def ChannelListVisible(self, visibility):
        if visibility:
            self.getControl(controls.PR_LIST_WRAPPER).setVisible(False)
            self.getControl(controls.CH_LIST_WRAPPER).setVisible(True)
            self.setFocusId(controls.CH_LIST_WRAPPER)
        else:
            self.getControl(controls.CH_LIST_WRAPPER).setVisible(False)
            self.getControl(controls.PR_LIST_WRAPPER).setVisible(True)
            self.setFocusId(controls.PR_LIST)
        return
    
    #============================================================================== 
    def ShowChannelInfo(self):
        imageHolder = self.getControl(controls.PL_LARGE_ICON)
        imageHolder.setImage(self.activeChannelGUI.iconLarge)
        self.getControl(controls.PL_CHANNEL_NAME).setLabel(self.activeChannelGUI.channelName)
        self.getControl(controls.PL_CHANNEL_DESCRIPTION).setText(self.activeChannelGUI.channelDescription)
        return
    
    #==============================================================================
    def sortChannel(self, channel1, channel2):
        try:
            compVal = cmp(channel1.sortOrder, channel2.sortOrder)
            if compVal == 0:
                compVal = cmp(channel1.channelName, channel2.channelName)
            #logFile.debug("Ordering %s (%s) and %s (%s): %s", channel1.channelName, channel1.sortOrder, channel2.channelName, channel2.sortOrder, compVal)
        except:
            logFile.debug("Error Comparing", exc_info=True)
            compVal == 0
        return compVal

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -