Helpviewer/Bookmarks/BookmarksModel.py

changeset 7
c679fb30c8f3
parent 0
de9c2efb9d02
child 12
1d8dd9706f46
equal deleted inserted replaced
6:52e8c820d0dd 7:c679fb30c8f3
147 Public method to get the header data. 147 Public method to get the header data.
148 148
149 @param section section number (integer) 149 @param section section number (integer)
150 @param orientation header orientation (Qt.Orientation) 150 @param orientation header orientation (Qt.Orientation)
151 @param role data role (integer) 151 @param role data role (integer)
152 @return header data (QVariant) 152 @return header data
153 """ 153 """
154 if orientation == Qt.Horizontal and role == Qt.DisplayRole: 154 if orientation == Qt.Horizontal and role == Qt.DisplayRole:
155 try: 155 try:
156 return QVariant(self.__headers[section]) 156 return self.__headers[section]
157 except IndexError: 157 except IndexError:
158 pass 158 pass
159 return QAbstractItemModel.headerData(self, section, orientation, role) 159 return QAbstractItemModel.headerData(self, section, orientation, role)
160 160
161 def data(self, index, role = Qt.DisplayRole): 161 def data(self, index, role = Qt.DisplayRole):
162 """ 162 """
163 Public method to get data from the model. 163 Public method to get data from the model.
164 164
165 @param index index of bookmark to get data for (QModelIndex) 165 @param index index of bookmark to get data for (QModelIndex)
166 @param role data role (integer) 166 @param role data role (integer)
167 @return bookmark data (QVariant) 167 @return bookmark data
168 """ 168 """
169 if not index.isValid() or index.model() != self: 169 if not index.isValid() or index.model() != self:
170 return QVariant() 170 return None
171 171
172 bookmarkNode = self.node(index) 172 bookmarkNode = self.node(index)
173 if role in [Qt.EditRole, Qt.DisplayRole]: 173 if role in [Qt.EditRole, Qt.DisplayRole]:
174 if bookmarkNode.type() == BookmarkNode.Separator: 174 if bookmarkNode.type() == BookmarkNode.Separator:
175 if index.column() == 0: 175 if index.column() == 0:
176 return QVariant(50 * '\xB7') 176 return 50 * '\xB7'
177 elif index.column() == 1: 177 elif index.column() == 1:
178 return QVariant("") 178 return ""
179 179
180 if index.column() == 0: 180 if index.column() == 0:
181 return QVariant(bookmarkNode.title) 181 return bookmarkNode.title
182 elif index.column() == 1: 182 elif index.column() == 1:
183 return QVariant(bookmarkNode.url) 183 return bookmarkNode.url
184 184
185 elif role == self.UrlRole: 185 elif role == self.UrlRole:
186 return QVariant(QUrl(bookmarkNode.url)) 186 return QUrl(bookmarkNode.url)
187 187
188 elif role == self.UrlStringRole: 188 elif role == self.UrlStringRole:
189 return QVariant(bookmarkNode.url) 189 return bookmarkNode.url
190 190
191 elif role == self.TypeRole: 191 elif role == self.TypeRole:
192 return QVariant(bookmarkNode.type()) 192 return bookmarkNode.type()
193 193
194 elif role == self.SeparatorRole: 194 elif role == self.SeparatorRole:
195 return QVariant(bookmarkNode.type() == BookmarkNode.Separator) 195 return bookmarkNode.type() == BookmarkNode.Separator
196 196
197 elif role == Qt.DecorationRole: 197 elif role == Qt.DecorationRole:
198 if index.column() == 0: 198 if index.column() == 0:
199 if bookmarkNode.type() == BookmarkNode.Folder: 199 if bookmarkNode.type() == BookmarkNode.Folder:
200 return QVariant(UI.PixmapCache.getIcon("dirOpen.png")) 200 return UI.PixmapCache.getIcon("dirOpen.png")
201 return QVariant(Helpviewer.HelpWindow.HelpWindow.icon( 201 return Helpviewer.HelpWindow.HelpWindow.icon(
202 QUrl(bookmarkNode.url))) 202 QUrl(bookmarkNode.url))
203 203
204 return QVariant() 204 return None
205 205
206 def columnCount(self, parent = QModelIndex()): 206 def columnCount(self, parent = QModelIndex()):
207 """ 207 """
208 Public method to get the number of columns. 208 Public method to get the number of columns.
209 209
349 buffer.open(QIODevice.ReadWrite) 349 buffer.open(QIODevice.ReadWrite)
350 writer = XbelWriter() 350 writer = XbelWriter()
351 parentNode = self.node(index) 351 parentNode = self.node(index)
352 writer.write(buffer, parentNode) 352 writer.write(buffer, parentNode)
353 stream << encodedData 353 stream << encodedData
354 urls.append(index.data(self.UrlRole).toUrl()) 354 urls.append(index.data(self.UrlRole))
355 355
356 mdata = QMimeData() 356 mdata = QMimeData()
357 mdata.setData(self.MIMETYPE, data) 357 mdata.setData(self.MIMETYPE, data)
358 mdata.setUrls(urls) 358 mdata.setUrls(urls)
359 return mdata 359 return mdata
419 def setData(self, index, value, role = Qt.EditRole): 419 def setData(self, index, value, role = Qt.EditRole):
420 """ 420 """
421 Public method to set the data of a node cell. 421 Public method to set the data of a node cell.
422 422
423 @param index index of the node cell (QModelIndex) 423 @param index index of the node cell (QModelIndex)
424 @param value value to be set (QVariant) 424 @param value value to be set
425 @param role role of the data (integer) 425 @param role role of the data (integer)
426 @return flag indicating success (boolean) 426 @return flag indicating success (boolean)
427 """ 427 """
428 if not index.isValid() or (self.flags(index) & Qt.ItemIsEditable) == 0: 428 if not index.isValid() or (self.flags(index) & Qt.ItemIsEditable) == 0:
429 return False 429 return False
430 430
431 item = self.node(index) 431 item = self.node(index)
432 432
433 if role in (Qt.EditRole, Qt.DisplayRole): 433 if role in (Qt.EditRole, Qt.DisplayRole):
434 if index.column() == 0: 434 if index.column() == 0:
435 self.__bookmarksManager.setTitle(item, value.toString()) 435 self.__bookmarksManager.setTitle(item, value)
436 elif index.column() == 1: 436 elif index.column() == 1:
437 self.__bookmarksManager.setUrl(item, value.toString()) 437 self.__bookmarksManager.setUrl(item, value)
438 else: 438 else:
439 return False 439 return False
440 440
441 elif role == BookmarksModel.UrlRole: 441 elif role == BookmarksModel.UrlRole:
442 self.__bookmarksManager.setUrl(item, value.toUrl().toString()) 442 self.__bookmarksManager.setUrl(item, value.toString())
443 443
444 elif role == BookmarksModel.UrlStringRole: 444 elif role == BookmarksModel.UrlStringRole:
445 self.__bookmarksManager.setUrl(item, value.toString()) 445 self.__bookmarksManager.setUrl(item, value)
446 446
447 else: 447 else:
448 return False 448 return False
449 449
450 return True 450 return True

eric ide

mercurial