예제 #1
0
    def __init__(self,
                 art=None,
                 viewGroup=None,
                 title1=None,
                 title2=None,
                 noHistory=False,
                 replaceParent=False,
                 disabledViewModes=None,
                 **kwargs):
        XMLContainer.__init__(self,
                              art=art,
                              title1=title1,
                              title2=title2,
                              noHistory=noHistory,
                              replaceParent=replaceParent,
                              **kwargs)
        self.addTest(**testDefaults)
        if viewGroup is not None:
            if viewGroup in Plugin.ViewGroups().keys():
                self.viewGroup = viewGroup
            else:
                PMS.Log(
                    "(Framework) Couldn't assign view group '%s' to a MediaContainer - group doesn't exist"
                    % viewGroup)

        if type(disabledViewModes).__name__ == "list":
            dvString = ""
            for view in disabledViewModes:
                if view in Plugin.ViewModes:
                    if len(dvString) > 0: dvString += ","
                    dvString += str(Plugin.ViewModes[view])
            self.disabledViewModes = dvString
예제 #2
0
    def ToElement(self):
        if self.__dict__.has_key("contextMenu"):
            __containerContextMenu = self.contextMenu
            self.contextMenu = None
        else:
            __containerContextMenu = None
        root = XMLObject.ToElement(self)
        for item in self.__items__:
            if item.__dict__.has_key("contextMenu"):
                __itemContextMenu = item.contextMenu
                item.contextMenu = None
            else:
                __itemContextMenu = None

            if item.__dict__.has_key("contextKey"):
                __itemContextKey = item.contextKey
                item.contextKey = None
            else:
                __itemContextKey = None

            if item.__dict__.has_key("contextArgs"):
                __itemContextArgs = item.contextArgs
                item.contextArgs = None
            else:
                __itemContextArgs = None

            if ObjectManager.ObjectHasBase(item, XMLObject):
                info = ItemInfoRecord()
                info.title1 = self.__valueOrNone("title1")
                info.title2 = self.__valueOrNone("title2")
                info.art = self.__valueOrNone("art")
                if item.__dict__.has_key("title"):
                    info.itemTitle = item.title
                elif item.__dict__.has_key("name"):
                    info.itemTitle = item.name
                else:
                    info.itemTitle = None

                # Add sender information to functions
                if ObjectManager.ObjectHasBase(item, Function):
                    item.AddFunctionArguments(sender=info)

                __itemElement = item.ToElement()

                # Check if there's a context menu
                if __itemContextKey:
                    __contextMenu = None
                    if __itemContextMenu: __contextMenu = __itemContextMenu
                    elif __containerContextMenu:
                        __contextMenu = __containerContextMenu
                    if __contextMenu:
                        __itemElement.append(
                            __contextMenu.ToElement(info, __itemContextKey,
                                                    **__itemContextArgs))

                root.append(__itemElement)

            item.contextMenu = __itemContextMenu
            item.contextKey = __itemContextKey
            item.contextArgs = __itemContextArgs

        root.set("size", str(len(self)))
        if self.__dict__.has_key("viewGroup"):
            root.set("viewmode",
                     str(Plugin.ViewGroups()[self.viewGroup]["ViewMode"]))
            root.set("contenttype",
                     str(Plugin.ViewGroups()[self.viewGroup]["MediaType"]))

        root.set("identifier", str(Plugin.Identifier))

        self.contextMenu = __containerContextMenu
        return root