Helpviewer/Bookmarks/BookmarksModel.py

changeset 945
8cd4d08fa9f6
parent 791
9ec2ac20e54e
child 1112
8a7d1b9d18db
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
14 from .XbelReader import XbelReader 14 from .XbelReader import XbelReader
15 15
16 import Helpviewer.HelpWindow 16 import Helpviewer.HelpWindow
17 17
18 import UI.PixmapCache 18 import UI.PixmapCache
19
19 20
20 class BookmarksModel(QAbstractItemModel): 21 class BookmarksModel(QAbstractItemModel):
21 """ 22 """
22 Class implementing the bookmark model. 23 Class implementing the bookmark model.
23 """ 24 """
24 TypeRole = Qt.UserRole + 1 25 TypeRole = Qt.UserRole + 1
25 UrlRole = Qt.UserRole + 2 26 UrlRole = Qt.UserRole + 2
26 UrlStringRole = Qt.UserRole + 3 27 UrlStringRole = Qt.UserRole + 3
27 SeparatorRole = Qt.UserRole + 4 28 SeparatorRole = Qt.UserRole + 4
28 29
29 MIMETYPE = "application/bookmarks.xbel" 30 MIMETYPE = "application/bookmarks.xbel"
30 31
31 def __init__(self, manager, parent = None): 32 def __init__(self, manager, parent=None):
32 """ 33 """
33 Constructor 34 Constructor
34 35
35 @param manager reference to the bookmark manager object (BookmarksManager) 36 @param manager reference to the bookmark manager object (BookmarksManager)
36 @param parent reference to the parent object (QObject) 37 @param parent reference to the parent object (QObject)
43 manager.entryAdded.connect(self.entryAdded) 44 manager.entryAdded.connect(self.entryAdded)
44 manager.entryRemoved.connect(self.entryRemoved) 45 manager.entryRemoved.connect(self.entryRemoved)
45 manager.entryChanged.connect(self.entryChanged) 46 manager.entryChanged.connect(self.entryChanged)
46 47
47 self.__headers = [ 48 self.__headers = [
48 self.trUtf8("Title"), 49 self.trUtf8("Title"),
49 self.trUtf8("Address"), 50 self.trUtf8("Address"),
50 ] 51 ]
51 52
52 def bookmarksManager(self): 53 def bookmarksManager(self):
53 """ 54 """
54 Public method to get a reference to the bookmarks manager. 55 Public method to get a reference to the bookmarks manager.
107 @param node reference to the bookmark node to change (BookmarkNode) 108 @param node reference to the bookmark node to change (BookmarkNode)
108 """ 109 """
109 idx = self.nodeIndex(node) 110 idx = self.nodeIndex(node)
110 self.dataChanged.emit(idx, idx) 111 self.dataChanged.emit(idx, idx)
111 112
112 def removeRows(self, row, count, parent = QModelIndex()): 113 def removeRows(self, row, count, parent=QModelIndex()):
113 """ 114 """
114 Public method to remove bookmarks from the model. 115 Public method to remove bookmarks from the model.
115 116
116 @param row row of the first bookmark to remove (integer) 117 @param row row of the first bookmark to remove (integer)
117 @param count number of bookmarks to remove (integer) 118 @param count number of bookmarks to remove (integer)
133 self.__bookmarksManager.undoRedoStack().endMacro() 134 self.__bookmarksManager.undoRedoStack().endMacro()
134 self.__endMacro = False 135 self.__endMacro = False
135 136
136 return True 137 return True
137 138
138 def headerData(self, section, orientation, role = Qt.DisplayRole): 139 def headerData(self, section, orientation, role=Qt.DisplayRole):
139 """ 140 """
140 Public method to get the header data. 141 Public method to get the header data.
141 142
142 @param section section number (integer) 143 @param section section number (integer)
143 @param orientation header orientation (Qt.Orientation) 144 @param orientation header orientation (Qt.Orientation)
149 return self.__headers[section] 150 return self.__headers[section]
150 except IndexError: 151 except IndexError:
151 pass 152 pass
152 return QAbstractItemModel.headerData(self, section, orientation, role) 153 return QAbstractItemModel.headerData(self, section, orientation, role)
153 154
154 def data(self, index, role = Qt.DisplayRole): 155 def data(self, index, role=Qt.DisplayRole):
155 """ 156 """
156 Public method to get data from the model. 157 Public method to get data from the model.
157 158
158 @param index index of bookmark to get data for (QModelIndex) 159 @param index index of bookmark to get data for (QModelIndex)
159 @param role data role (integer) 160 @param role data role (integer)
194 return Helpviewer.HelpWindow.HelpWindow.icon( 195 return Helpviewer.HelpWindow.HelpWindow.icon(
195 QUrl(bookmarkNode.url)) 196 QUrl(bookmarkNode.url))
196 197
197 return None 198 return None
198 199
199 def columnCount(self, parent = QModelIndex()): 200 def columnCount(self, parent=QModelIndex()):
200 """ 201 """
201 Public method to get the number of columns. 202 Public method to get the number of columns.
202 203
203 @param parent index of parent (QModelIndex) 204 @param parent index of parent (QModelIndex)
204 @return number of columns (integer) 205 @return number of columns (integer)
206 if parent.column() > 0: 207 if parent.column() > 0:
207 return 0 208 return 0
208 else: 209 else:
209 return len(self.__headers) 210 return len(self.__headers)
210 211
211 def rowCount(self, parent = QModelIndex()): 212 def rowCount(self, parent=QModelIndex()):
212 """ 213 """
213 Public method to determine the number of rows. 214 Public method to determine the number of rows.
214 215
215 @param parent index of parent (QModelIndex) 216 @param parent index of parent (QModelIndex)
216 @return number of rows (integer) 217 @return number of rows (integer)
222 return len(self.__bookmarksManager.bookmarks().children()) 223 return len(self.__bookmarksManager.bookmarks().children())
223 224
224 itm = parent.internalPointer() 225 itm = parent.internalPointer()
225 return len(itm.children()) 226 return len(itm.children())
226 227
227 def index(self, row, column, parent = QModelIndex()): 228 def index(self, row, column, parent=QModelIndex()):
228 """ 229 """
229 Public method to get a model index for a node cell. 230 Public method to get a model index for a node cell.
230 231
231 @param row row number (integer) 232 @param row row number (integer)
232 @param column column number (integer) 233 @param column column number (integer)
238 return QModelIndex() 239 return QModelIndex()
239 240
240 parentNode = self.node(parent) 241 parentNode = self.node(parent)
241 return self.createIndex(row, column, parentNode.children()[row]) 242 return self.createIndex(row, column, parentNode.children()[row])
242 243
243 def parent(self, index = QModelIndex()): 244 def parent(self, index=QModelIndex()):
244 """ 245 """
245 Public method to get the index of the parent node. 246 Public method to get the index of the parent node.
246 247
247 @param index index of the child node (QModelIndex) 248 @param index index of the child node (QModelIndex)
248 @return index of the parent node (QModelIndex) 249 @return index of the parent node (QModelIndex)
262 # get the parent's row 263 # get the parent's row
263 grandParentNode = parentNode.parent() 264 grandParentNode = parentNode.parent()
264 parentRow = grandParentNode.children().index(parentNode) 265 parentRow = grandParentNode.children().index(parentNode)
265 return self.createIndex(parentRow, 0, parentNode) 266 return self.createIndex(parentRow, 0, parentNode)
266 267
267 def hasChildren(self, parent = QModelIndex()): 268 def hasChildren(self, parent=QModelIndex()):
268 """ 269 """
269 Public method to check, if a parent node has some children. 270 Public method to check, if a parent node has some children.
270 271
271 @param parent index of the parent node (QModelIndex) 272 @param parent index of the parent node (QModelIndex)
272 @return flag indicating the presence of children (boolean) 273 @return flag indicating the presence of children (boolean)
407 self.__bookmarksManager.addBookmark(parentNode, bookmarkNode, row) 408 self.__bookmarksManager.addBookmark(parentNode, bookmarkNode, row)
408 self.__endMacro = True 409 self.__endMacro = True
409 410
410 return True 411 return True
411 412
412 def setData(self, index, value, role = Qt.EditRole): 413 def setData(self, index, value, role=Qt.EditRole):
413 """ 414 """
414 Public method to set the data of a node cell. 415 Public method to set the data of a node cell.
415 416
416 @param index index of the node cell (QModelIndex) 417 @param index index of the node cell (QModelIndex)
417 @param value value to be set 418 @param value value to be set

eric ide

mercurial