eric6/WebBrowser/Bookmarks/BookmarksModel.py

changeset 7268
a28338eaf694
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7267:aedc309827c7 7268:a28338eaf694
6 """ 6 """
7 Module implementing the bookmark model class. 7 Module implementing the bookmark model class.
8 """ 8 """
9 9
10 10
11 from PyQt5.QtCore import Qt, QAbstractItemModel, QModelIndex, QUrl, \ 11 from PyQt5.QtCore import (
12 QByteArray, QDataStream, QIODevice, QBuffer, QMimeData 12 Qt, QAbstractItemModel, QModelIndex, QUrl, QByteArray, QDataStream,
13 QIODevice, QBuffer, QMimeData
14 )
13 15
14 import UI.PixmapCache 16 import UI.PixmapCache
15 17
16 18
17 class BookmarksModel(QAbstractItemModel): 19 class BookmarksModel(QAbstractItemModel):
124 return False 126 return False
125 127
126 bookmarkNode = self.node(parent) 128 bookmarkNode = self.node(parent)
127 children = bookmarkNode.children()[row:(row + count)] 129 children = bookmarkNode.children()[row:(row + count)]
128 for node in children: 130 for node in children:
129 if node == self.__bookmarksManager.menu() or \ 131 if (
130 node == self.__bookmarksManager.toolbar(): 132 node == self.__bookmarksManager.menu() or
133 node == self.__bookmarksManager.toolbar()
134 ):
131 continue 135 continue
132 self.__bookmarksManager.removeBookmark(node) 136 self.__bookmarksManager.removeBookmark(node)
133 137
134 if self.__endMacro: 138 if self.__endMacro:
135 self.__bookmarksManager.undoRedoStack().endMacro() 139 self.__bookmarksManager.undoRedoStack().endMacro()
248 @return index (QModelIndex) 252 @return index (QModelIndex)
249 """ 253 """
250 if parent is None: 254 if parent is None:
251 parent = QModelIndex() 255 parent = QModelIndex()
252 256
253 if row < 0 or column < 0 or \ 257 if (
254 row >= self.rowCount(parent) or column >= self.columnCount(parent): 258 row < 0 or
259 column < 0 or
260 row >= self.rowCount(parent) or
261 column >= self.columnCount(parent)
262 ):
255 return QModelIndex() 263 return QModelIndex()
256 264
257 parentNode = self.node(parent) 265 parentNode = self.node(parent)
258 return self.createIndex(row, column, parentNode.children()[row]) 266 return self.createIndex(row, column, parentNode.children()[row])
259 267
274 if itemNode is None: 282 if itemNode is None:
275 parentNode = None 283 parentNode = None
276 else: 284 else:
277 parentNode = itemNode.parent() 285 parentNode = itemNode.parent()
278 286
279 if parentNode is None or \ 287 if (
280 parentNode == self.__bookmarksManager.bookmarks(): 288 parentNode is None or
289 parentNode == self.__bookmarksManager.bookmarks()
290 ):
281 return QModelIndex() 291 return QModelIndex()
282 292
283 # get the parent's row 293 # get the parent's row
284 grandParentNode = parentNode.parent() 294 grandParentNode = parentNode.parent()
285 parentRow = grandParentNode.children().index(parentNode) 295 parentRow = grandParentNode.children().index(parentNode)
317 flags = Qt.ItemIsSelectable | Qt.ItemIsEnabled 327 flags = Qt.ItemIsSelectable | Qt.ItemIsEnabled
318 328
319 if self.hasChildren(index): 329 if self.hasChildren(index):
320 flags |= Qt.ItemIsDropEnabled 330 flags |= Qt.ItemIsDropEnabled
321 331
322 if node == self.__bookmarksManager.menu() or \ 332 if (
323 node == self.__bookmarksManager.toolbar(): 333 node == self.__bookmarksManager.menu() or
334 node == self.__bookmarksManager.toolbar()
335 ):
324 return flags 336 return flags
325 337
326 flags |= Qt.ItemIsDragEnabled 338 flags |= Qt.ItemIsDragEnabled
327 339
328 from .BookmarkNode import BookmarkNode 340 from .BookmarkNode import BookmarkNode
329 if (index.column() == 0 and type_ != BookmarkNode.Separator) or \ 341 if (
330 (index.column() == 1 and type_ == BookmarkNode.Bookmark): 342 (index.column() == 0 and type_ != BookmarkNode.Separator) or
343 (index.column() == 1 and type_ == BookmarkNode.Bookmark)
344 ):
331 flags |= Qt.ItemIsEditable 345 flags |= Qt.ItemIsEditable
332 346
333 return flags 347 return flags
334 348
335 def supportedDropActions(self): 349 def supportedDropActions(self):

eric ide

mercurial