eric6/WebBrowser/History/HistoryMenu.py

changeset 7268
a28338eaf694
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7267:aedc309827c7 7268:a28338eaf694
8 """ 8 """
9 9
10 10
11 import sys 11 import sys
12 12
13 from PyQt5.QtCore import pyqtSignal, Qt, QMimeData, QUrl, QModelIndex, \ 13 from PyQt5.QtCore import (
14 QSortFilterProxyModel, QAbstractProxyModel 14 pyqtSignal, Qt, QMimeData, QUrl, QModelIndex, QSortFilterProxyModel,
15 QAbstractProxyModel
16 )
15 from PyQt5.QtWidgets import QMenu 17 from PyQt5.QtWidgets import QMenu
16 18
17 from E5Gui.E5ModelMenu import E5ModelMenu 19 from E5Gui.E5ModelMenu import E5ModelMenu
18 from E5Gui import E5MessageBox 20 from E5Gui import E5MessageBox
19 21
80 return 0 82 return 0
81 83
82 if not parent.isValid(): 84 if not parent.isValid():
83 folders = self.sourceModel().rowCount() 85 folders = self.sourceModel().rowCount()
84 bumpedItems = self.bumpedRows() 86 bumpedItems = self.bumpedRows()
85 if bumpedItems <= self.MOVEDROWS and \ 87 if (
86 bumpedItems == self.sourceModel().rowCount( 88 bumpedItems <= self.MOVEDROWS and
87 self.sourceModel().index(0, 0)): 89 bumpedItems == self.sourceModel().rowCount(
90 self.sourceModel().index(0, 0))
91 ):
88 folders -= 1 92 folders -= 1
89 return bumpedItems + folders 93 return bumpedItems + folders
90 94
91 if parent.internalId() == sys.maxsize: 95 if parent.internalId() == sys.maxsize:
92 if parent.row() < self.bumpedRows(): 96 if parent.row() < self.bumpedRows():
124 bumpedItems = self.bumpedRows() 128 bumpedItems = self.bumpedRows()
125 if proxyIndex.row() < bumpedItems: 129 if proxyIndex.row() < bumpedItems:
126 return self.__treeModel.index( 130 return self.__treeModel.index(
127 proxyIndex.row(), proxyIndex.column(), 131 proxyIndex.row(), proxyIndex.column(),
128 self.__treeModel.index(0, 0)) 132 self.__treeModel.index(0, 0))
129 if bumpedItems <= self.MOVEDROWS and \ 133 if (
130 bumpedItems == self.sourceModel().rowCount( 134 bumpedItems <= self.MOVEDROWS and
131 self.__treeModel.index(0, 0)): 135 bumpedItems == self.sourceModel().rowCount(
136 self.__treeModel.index(0, 0))
137 ):
132 bumpedItems -= 1 138 bumpedItems -= 1
133 return self.__treeModel.index(proxyIndex.row() - bumpedItems, 139 return self.__treeModel.index(proxyIndex.row() - bumpedItems,
134 proxyIndex.column()) 140 proxyIndex.column())
135 141
136 historyIndex = self.__treeModel.sourceModel()\ 142 historyIndex = self.__treeModel.sourceModel().index(
137 .index(proxyIndex.internalId(), proxyIndex.column()) 143 proxyIndex.internalId(), proxyIndex.column())
138 treeIndex = self.__treeModel.mapFromSource(historyIndex) 144 treeIndex = self.__treeModel.mapFromSource(historyIndex)
139 return treeIndex 145 return treeIndex
140 146
141 def index(self, row, column, parent=None): 147 def index(self, row, column, parent=None):
142 """ 148 """
148 @return requested index (QModelIndex) 154 @return requested index (QModelIndex)
149 """ 155 """
150 if parent is None: 156 if parent is None:
151 parent = QModelIndex() 157 parent = QModelIndex()
152 158
153 if row < 0 or \ 159 if (
154 column < 0 or \ 160 row < 0 or
155 column >= self.columnCount(parent) or \ 161 column < 0 or
156 parent.column() > 0: 162 column >= self.columnCount(parent) or
163 parent.column() > 0
164 ):
157 return QModelIndex() 165 return QModelIndex()
158 166
159 if not parent.isValid(): 167 if not parent.isValid():
160 return self.createIndex(row, column, sys.maxsize) 168 return self.createIndex(row, column, sys.maxsize)
161 169
188 treeIndex = self.__treeModel.mapFromSource(historyIndex) 196 treeIndex = self.__treeModel.mapFromSource(historyIndex)
189 treeIndexParent = treeIndex.parent() 197 treeIndexParent = treeIndex.parent()
190 198
191 sourceRow = self.sourceModel().mapToSource(treeIndexParent).row() 199 sourceRow = self.sourceModel().mapToSource(treeIndexParent).row()
192 bumpedItems = self.bumpedRows() 200 bumpedItems = self.bumpedRows()
193 if bumpedItems <= self.MOVEDROWS and \ 201 if (
194 bumpedItems == self.sourceModel().rowCount( 202 bumpedItems <= self.MOVEDROWS and
195 self.sourceModel().index(0, 0)): 203 bumpedItems == self.sourceModel().rowCount(
204 self.sourceModel().index(0, 0))
205 ):
196 bumpedItems -= 1 206 bumpedItems -= 1
197 207
198 return self.createIndex(bumpedItems + treeIndexParent.row(), 208 return self.createIndex(bumpedItems + treeIndexParent.row(),
199 treeIndexParent.column(), 209 treeIndexParent.column(),
200 sourceRow) 210 sourceRow)
239 @param left index of left item (QModelIndex) 249 @param left index of left item (QModelIndex)
240 @param right index of right item (QModelIndex) 250 @param right index of right item (QModelIndex)
241 @return true, if left is less than right (boolean) 251 @return true, if left is less than right (boolean)
242 """ 252 """
243 from .HistoryFilterModel import HistoryFilterModel 253 from .HistoryFilterModel import HistoryFilterModel
244 frequency_L = \ 254 frequency_L = self.sourceModel().data(
245 self.sourceModel().data(left, HistoryFilterModel.FrequencyRole) 255 left, HistoryFilterModel.FrequencyRole)
246 dateTime_L = \ 256 dateTime_L = self.sourceModel().data(
247 self.sourceModel().data(left, HistoryModel.DateTimeRole) 257 left, HistoryModel.DateTimeRole)
248 frequency_R = \ 258 frequency_R = self.sourceModel().data(
249 self.sourceModel().data(right, HistoryFilterModel.FrequencyRole) 259 right, HistoryFilterModel.FrequencyRole)
250 dateTime_R = \ 260 dateTime_R = self.sourceModel().data(
251 self.sourceModel().data(right, HistoryModel.DateTimeRole) 261 right, HistoryModel.DateTimeRole)
252 262
253 # Sort results in descending frequency-derived score. If frequencies 263 # Sort results in descending frequency-derived score. If frequencies
254 # are equal, sort on most recently viewed 264 # are equal, sort on most recently viewed
255 if frequency_R == frequency_L: 265 if frequency_R == frequency_L:
256 return dateTime_R < dateTime_L 266 return dateTime_R < dateTime_L

eric ide

mercurial