14 |
14 |
15 from collections import Counter |
15 from collections import Counter |
16 from operator import attrgetter |
16 from operator import attrgetter |
17 |
17 |
18 from PyQt6.QtCore import ( |
18 from PyQt6.QtCore import ( |
19 pyqtSignal, |
|
20 pyqtSlot, |
|
21 Qt, |
|
22 QAbstractItemModel, |
19 QAbstractItemModel, |
23 QCoreApplication, |
20 QCoreApplication, |
24 QModelIndex, |
21 QModelIndex, |
25 QPoint, |
22 QPoint, |
|
23 Qt, |
|
24 pyqtSignal, |
|
25 pyqtSlot, |
26 ) |
26 ) |
27 from PyQt6.QtGui import QBrush, QColor |
27 from PyQt6.QtGui import QBrush, QColor |
28 from PyQt6.QtWidgets import QMenu, QTreeView |
28 from PyQt6.QtWidgets import QMenu, QTreeView |
29 |
29 |
|
30 from eric7 import Preferences |
30 from eric7.EricWidgets.EricApplication import ericApp |
31 from eric7.EricWidgets.EricApplication import ericApp |
31 |
|
32 from eric7 import Preferences |
|
33 |
32 |
34 from .Interfaces.TestExecutorBase import TestResultCategory |
33 from .Interfaces.TestExecutorBase import TestResultCategory |
35 |
34 |
36 TopLevelId = 2**32 - 1 |
35 TopLevelId = 2**32 - 1 |
37 |
36 |
145 return ( |
144 return ( |
146 "" |
145 "" |
147 if duration is None |
146 if duration is None |
148 else locale.format_string("%.2f", duration, grouping=True) |
147 else locale.format_string("%.2f", duration, grouping=True) |
149 ) |
148 ) |
150 elif role == Qt.ItemDataRole.ToolTipRole: |
149 elif ( |
151 if idx == TopLevelId and column == TestResultsModel.NameColumn: |
150 role == Qt.ItemDataRole.ToolTipRole |
152 return self.__testResults[row].name |
151 and idx == TopLevelId |
153 elif role == Qt.ItemDataRole.FontRole: |
152 and column == TestResultsModel.NameColumn |
154 if idx != TopLevelId: |
153 ): |
155 return Preferences.getEditorOtherFonts("MonospacedFont") |
154 return self.__testResults[row].name |
156 elif role == Qt.ItemDataRole.BackgroundRole: |
155 elif role == Qt.ItemDataRole.FontRole and idx != TopLevelId: |
157 if idx == TopLevelId: |
156 return Preferences.getEditorOtherFonts("MonospacedFont") |
158 testResult = self.__testResults[row] |
157 elif role == Qt.ItemDataRole.BackgroundRole and idx == TopLevelId: |
159 with contextlib.suppress(KeyError): |
158 testResult = self.__testResults[row] |
160 return self.__backgroundColors[testResult.category] |
159 with contextlib.suppress(KeyError): |
161 elif role == Qt.ItemDataRole.TextAlignmentRole: |
160 return self.__backgroundColors[testResult.category] |
162 if idx == TopLevelId and column == TestResultsModel.DurationColumn: |
161 elif ( |
163 return Qt.AlignmentFlag.AlignRight.value |
162 role == Qt.ItemDataRole.TextAlignmentRole |
164 elif role == Qt.ItemDataRole.UserRole: # __IGNORE_WARNING_Y102__ |
163 and idx == TopLevelId |
165 if idx == TopLevelId: |
164 and column == TestResultsModel.DurationColumn |
166 testresult = self.__testResults[row] |
165 ): |
167 return (testresult.filename, testresult.lineno) |
166 return Qt.AlignmentFlag.AlignRight.value |
|
167 elif role == Qt.ItemDataRole.UserRole and idx == TopLevelId: |
|
168 testresult = self.__testResults[row] |
|
169 return (testresult.filename, testresult.lineno) |
168 |
170 |
169 return None |
171 return None |
170 |
172 |
171 def headerData(self, section, orientation, role=Qt.ItemDataRole.DisplayRole): |
173 def headerData(self, section, orientation, role=Qt.ItemDataRole.DisplayRole): |
172 """ |
174 """ |