6 """ |
6 """ |
7 Module implementing a class to read XBEL bookmark files. |
7 Module implementing a class to read XBEL bookmark files. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt4.QtCore import QXmlStreamReader, QXmlStreamEntityResolver, QIODevice, \ |
10 from PyQt4.QtCore import QXmlStreamReader, QXmlStreamEntityResolver, QIODevice, \ |
11 QFile, QCoreApplication, QXmlStreamNamespaceDeclaration |
11 QFile, QCoreApplication, QXmlStreamNamespaceDeclaration, QDateTime, Qt |
12 |
12 |
13 from .BookmarkNode import BookmarkNode |
13 from .BookmarkNode import BookmarkNode |
14 |
14 |
15 |
15 |
16 class XmlEntityResolver(QXmlStreamEntityResolver): |
16 class XmlEntityResolver(QXmlStreamEntityResolver): |
106 if not self.isStartElement() and self.name() != "folder": |
106 if not self.isStartElement() and self.name() != "folder": |
107 return |
107 return |
108 |
108 |
109 folder = BookmarkNode(BookmarkNode.Folder, node) |
109 folder = BookmarkNode(BookmarkNode.Folder, node) |
110 folder.expanded = self.attributes().value("folded") == "no" |
110 folder.expanded = self.attributes().value("folded") == "no" |
|
111 folder.added = QDateTime.fromString(self.attributes().value("added"), Qt.ISODate) |
111 |
112 |
112 while not self.atEnd(): |
113 while not self.atEnd(): |
113 self.readNext() |
114 self.readNext() |
114 if self.isEndElement(): |
115 if self.isEndElement(): |
115 break |
116 break |
156 """ |
157 """ |
157 Private method to read a separator element. |
158 Private method to read a separator element. |
158 |
159 |
159 @param node reference to the bookmark node the separator belongs to (BookmarkNode) |
160 @param node reference to the bookmark node the separator belongs to (BookmarkNode) |
160 """ |
161 """ |
161 BookmarkNode(BookmarkNode.Separator, node) |
162 sep = BookmarkNode(BookmarkNode.Separator, node) |
|
163 sep.added = QDateTime.fromString(self.attributes().value("added"), Qt.ISODate) |
162 |
164 |
163 # empty elements have a start and end element |
165 # empty elements have a start and end element |
164 while not self.atEnd(): |
166 while not self.atEnd(): |
165 self.readNext() |
167 self.readNext() |
166 if self.isEndElement(): |
168 if self.isEndElement(): |
181 if not self.isStartElement() and self.name() != "bookmark": |
183 if not self.isStartElement() and self.name() != "bookmark": |
182 return |
184 return |
183 |
185 |
184 bookmark = BookmarkNode(BookmarkNode.Bookmark, node) |
186 bookmark = BookmarkNode(BookmarkNode.Bookmark, node) |
185 bookmark.url = self.attributes().value("href") |
187 bookmark.url = self.attributes().value("href") |
|
188 bookmark.added = QDateTime.fromString( |
|
189 self.attributes().value("added"), Qt.ISODate) |
|
190 bookmark.modified = QDateTime.fromString( |
|
191 self.attributes().value("modified"), Qt.ISODate) |
|
192 bookmark.visited = QDateTime.fromString( |
|
193 self.attributes().value("visited"), Qt.ISODate) |
186 |
194 |
187 while not self.atEnd(): |
195 while not self.atEnd(): |
188 self.readNext() |
196 self.readNext() |
189 if self.isEndElement(): |
197 if self.isEndElement(): |
190 break |
198 break |