7 Module implementing the bookmark model class. |
7 Module implementing the bookmark model class. |
8 """ |
8 """ |
9 |
9 |
10 from __future__ import unicode_literals # __IGNORE_WARNING__ |
10 from __future__ import unicode_literals # __IGNORE_WARNING__ |
11 |
11 |
12 from PyQt4.QtCore import Qt, QAbstractItemModel, QModelIndex, QUrl, QByteArray, \ |
12 from PyQt4.QtCore import Qt, QAbstractItemModel, QModelIndex, QUrl, \ |
13 QDataStream, QIODevice, QBuffer, QMimeData |
13 QByteArray, QDataStream, QIODevice, QBuffer, QMimeData |
14 |
14 |
15 import UI.PixmapCache |
15 import UI.PixmapCache |
16 |
16 |
17 |
17 |
18 class BookmarksModel(QAbstractItemModel): |
18 class BookmarksModel(QAbstractItemModel): |
28 |
28 |
29 def __init__(self, manager, parent=None): |
29 def __init__(self, manager, parent=None): |
30 """ |
30 """ |
31 Constructor |
31 Constructor |
32 |
32 |
33 @param manager reference to the bookmark manager object (BookmarksManager) |
33 @param manager reference to the bookmark manager object |
|
34 (BookmarksManager) |
34 @param parent reference to the parent object (QObject) |
35 @param parent reference to the parent object (QObject) |
35 """ |
36 """ |
36 super(BookmarksModel, self).__init__(parent) |
37 super(BookmarksModel, self).__init__(parent) |
37 |
38 |
38 self.__endMacro = False |
39 self.__endMacro = False |
111 """ |
112 """ |
112 Public method to remove bookmarks from the model. |
113 Public method to remove bookmarks from the model. |
113 |
114 |
114 @param row row of the first bookmark to remove (integer) |
115 @param row row of the first bookmark to remove (integer) |
115 @param count number of bookmarks to remove (integer) |
116 @param count number of bookmarks to remove (integer) |
116 @param index of the parent bookmark node (QModelIndex) |
117 @param parent index of the parent bookmark node (QModelIndex) |
117 @return flag indicating successful removal (boolean) |
118 @return flag indicating successful removal (boolean) |
118 """ |
119 """ |
119 if row < 0 or count <= 0 or row + count > self.rowCount(parent): |
120 if row < 0 or count <= 0 or row + count > self.rowCount(parent): |
120 return False |
121 return False |
121 |
122 |
255 if itemNode is None: |
256 if itemNode is None: |
256 parentNode = None |
257 parentNode = None |
257 else: |
258 else: |
258 parentNode = itemNode.parent() |
259 parentNode = itemNode.parent() |
259 |
260 |
260 if parentNode is None or parentNode == self.__bookmarksManager.bookmarks(): |
261 if parentNode is None or \ |
|
262 parentNode == self.__bookmarksManager.bookmarks(): |
261 return QModelIndex() |
263 return QModelIndex() |
262 |
264 |
263 # get the parent's row |
265 # get the parent's row |
264 grandParentNode = parentNode.parent() |
266 grandParentNode = parentNode.parent() |
265 parentRow = grandParentNode.children().index(parentNode) |
267 parentRow = grandParentNode.children().index(parentNode) |
409 reader = XbelReader() |
411 reader = XbelReader() |
410 rootNode = reader.read(buffer) |
412 rootNode = reader.read(buffer) |
411 for bookmarkNode in rootNode.children(): |
413 for bookmarkNode in rootNode.children(): |
412 rootNode.remove(bookmarkNode) |
414 rootNode.remove(bookmarkNode) |
413 row = max(0, row) |
415 row = max(0, row) |
414 self.__bookmarksManager.addBookmark(parentNode, bookmarkNode, row) |
416 self.__bookmarksManager.addBookmark( |
|
417 parentNode, bookmarkNode, row) |
415 self.__endMacro = True |
418 self.__endMacro = True |
416 |
419 |
417 return True |
420 return True |
418 |
421 |
419 def setData(self, index, value, role=Qt.EditRole): |
422 def setData(self, index, value, role=Qt.EditRole): |