📄 progwindow.py
字号:
# 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 + -