def test_change_iter(full_snapshot): source_model = SnapshotModel() model = RealListModel(None, 0) model.setSourceModel(source_model) reporting_mode = qt_api.QtTest.QAbstractItemModelTester.FailureReportingMode.Warning tester = qt_api.QtTest.QAbstractItemModelTester( # noqa, prevent GC model, reporting_mode) source_model._add_snapshot(full_snapshot, 0) assert (model.index(0, 0, QModelIndex()).data(NodeRole).data["status"] == REALIZATION_STATE_UNKNOWN) source_model._add_snapshot(full_snapshot, 1) model.setIter(1) partial = partial_snapshot(full_snapshot) partial.update_real("0", Realization(status=REALIZATION_STATE_FINISHED)) source_model._add_partial_snapshot(partial, 1) assert (model.index(0, 0, QModelIndex()).data(NodeRole).data["status"] == REALIZATION_STATE_FINISHED)
def test_using_qt_model_tester(qtmodeltester, full_snapshot): partial = partial_snapshot(full_snapshot) source_model = SnapshotModel() model = RealListModel(None, 0) model.setSourceModel(source_model) reporting_mode = qt_api.QtTest.QAbstractItemModelTester.FailureReportingMode.Warning tester = qt_api.QtTest.QAbstractItemModelTester( # noqa, prevent GC model, reporting_mode) source_model._add_snapshot(full_snapshot, 0) source_model._add_snapshot(full_snapshot, 1) source_model._add_partial_snapshot(partial, 0) source_model._add_partial_snapshot(partial, 1) qtmodeltester.check(model, force_py=True)
class RealizationWidget(QWidget): def __init__(self, iter: int, parent=None) -> None: super().__init__(parent) self._iter = iter self._delegateWidth = 70 self._delegateHeight = 70 self._real_view = QListView(self) self._real_view.setViewMode(QListView.IconMode) self._real_view.setGridSize( QSize(self._delegateWidth, self._delegateHeight)) self._real_view.setItemDelegate( RealizationDelegate(self._delegateWidth, self._delegateHeight, self)) self._real_view.setSelectionMode(QAbstractItemView.SingleSelection) self._real_view.setFlow(QListView.LeftToRight) self._real_view.setWrapping(True) self._real_view.setResizeMode(QListView.Adjust) self._real_view.setUniformItemSizes(True) self._real_view.currentChanged = lambda current, _: self.currentChanged.emit( current) layout = QVBoxLayout() layout.addWidget(self._real_view) self.setLayout(layout) # Signal when the user selects another real currentChanged = Signal(QModelIndex) def setSnapshotModel(self, model) -> None: self._real_list_model = RealListModel(self, self._iter) self._real_list_model.setSourceModel(model) self._real_view.setModel(self._real_list_model) self._real_view.model().setIter(self._iter) def clearSelection(self) -> None: self._real_view.clearSelection()
def setSnapshotModel(self, model) -> None: self._real_list_model = RealListModel(self, self._iter) self._real_list_model.setSourceModel(model) self._real_view.setModel(self._real_list_model) self._real_view.model().setIter(self._iter)