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 |
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 |