tasks widget have ability to create different tasks model

This commit is contained in:
iLLiCiTiT 2022-01-04 10:59:57 +01:00
parent 03fa4e7443
commit e389067ed2

View file

@ -194,6 +194,8 @@ class TasksWidget(QtWidgets.QWidget):
task_changed = QtCore.Signal()
def __init__(self, dbcon, parent=None):
self._dbcon = dbcon
super(TasksWidget, self).__init__(parent)
tasks_view = DeselectableTreeView(self)
@ -204,9 +206,8 @@ class TasksWidget(QtWidgets.QWidget):
header_view = tasks_view.header()
header_view.setSortIndicator(0, QtCore.Qt.AscendingOrder)
tasks_model = TasksModel(dbcon)
tasks_proxy = TasksProxyModel()
tasks_proxy.setSourceModel(tasks_model)
tasks_model = self._create_source_model()
tasks_proxy = self._create_proxy_model(tasks_model)
tasks_view.setModel(tasks_proxy)
layout = QtWidgets.QVBoxLayout(self)
@ -222,6 +223,19 @@ class TasksWidget(QtWidgets.QWidget):
self._last_selected_task_name = None
def _create_source_model(self):
"""Create source model of tasks widget.
Model must have available 'refresh' method and 'set_asset_id' to change
context of asset.
"""
return TasksModel(self._dbcon)
def _create_proxy_model(self, source_model):
proxy = TasksProxyModel()
proxy.setSourceModel(source_model)
return proxy
def refresh(self):
self._tasks_model.refresh()