--- a/Helpviewer/Bookmarks/XbelReader.py Wed Mar 21 20:14:45 2012 +0100 +++ b/Helpviewer/Bookmarks/XbelReader.py Sat Mar 24 16:10:48 2012 +0100 @@ -8,7 +8,7 @@ """ from PyQt4.QtCore import QXmlStreamReader, QXmlStreamEntityResolver, QIODevice, \ - QFile, QCoreApplication + QFile, QCoreApplication, QXmlStreamNamespaceDeclaration from .BookmarkNode import BookmarkNode @@ -125,6 +125,8 @@ self.__readBookmarkNode(folder) elif self.name() == "separator": self.__readSeparator(folder) + elif self.name() == "info": + self.__readInfo() else: self.__skipUnknownElement() @@ -157,8 +159,18 @@ @param node reference to the bookmark node the separator belongs to (BookmarkNode) """ BookmarkNode(BookmarkNode.Separator, node) + # empty elements have a start and end element - self.readNext() + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + break + + if self.isStartElement(): + if self.name() == "info": + self.__readInfo() + else: + self.__skipUnknownElement() def __readBookmarkNode(self, node): """ @@ -182,23 +194,24 @@ self.__readTitle(bookmark) elif self.name() == "desc": self.__readDescription(bookmark) + elif self.name() == "info": + self.__readInfo() else: self.__skipUnknownElement() if not bookmark.title: bookmark.title = QCoreApplication.translate("XbelReader", "Unknown title") + def __readInfo(self): + """ + Private method to read and parse an info subtree. + """ + self.addExtraNamespaceDeclaration( + QXmlStreamNamespaceDeclaration("bookmark", "http://www.python.org")) + self.skipCurrentElement() + def __skipUnknownElement(self): """ Private method to skip over all unknown elements. """ - if not self.isStartElement(): - return - - while not self.atEnd(): - self.readNext() - if self.isEndElement(): - break - - if self.isStartElement(): - self.__skipUnknownElement() + self.skipCurrentElement()