adde ProjectHelper which helps to keep track with project document

This commit is contained in:
iLLiCiTiT 2021-05-06 14:07:34 +02:00
parent 550945972a
commit 16f7bd9ec1
2 changed files with 26 additions and 3 deletions

View file

@ -15,6 +15,22 @@ class NumberDef:
self.decimals = 0 if decimals is None else decimals
class ProjectHelper:
def __init__(self, dbcon):
self.dbcon = dbcon
self.project_doc = None
def set_project(self, project_name):
self.project_doc = None
if not project_name:
return
self.project_doc = self.dbcon.database[project_name].find_one(
{"type": "project"}
)
class HierarchyView(QtWidgets.QTreeView):
"""A tree view that deselects on clicking on an empty area in the view"""
column_delegate_defs = {
@ -44,10 +60,12 @@ class HierarchyView(QtWidgets.QTreeView):
"pixelAspect"
]
def __init__(self, source_model, *args, **kwargs):
def __init__(self, dbcon, source_model, *args, **kwargs):
super(HierarchyView, self).__init__(*args, **kwargs)
self._source_model = source_model
project_helper = ProjectHelper(dbcon)
main_delegate = QtWidgets.QStyledItemDelegate()
self.setItemDelegate(main_delegate)
self.setAlternatingRowColors(True)
@ -72,10 +90,15 @@ class HierarchyView(QtWidgets.QTreeView):
source_model.index_moved.connect(self._on_rows_moved)
self._project_helper = project_helper
self._delegate = main_delegate
self._column_delegates = column_delegates
self._column_key_to_index = column_key_to_index
def set_project(self, project_name):
self._source_model.set_project(project_name)
self._project_helper.set_project(project_name)
def _on_rows_moved(self, index):
parent_index = index.parent()
if not self.isExpanded(parent_index):

View file

@ -36,7 +36,7 @@ class Window(QtWidgets.QWidget):
hierarchy_model = HierarchyModel(dbcon)
hierarchy_view = HierarchyView(hierarchy_model, self)
hierarchy_view = HierarchyView(dbcon, hierarchy_model, self)
hierarchy_view.setModel(hierarchy_model)
_selection_model = HierarchySelectionModel()
_selection_model.setModel(hierarchy_view.model())
@ -66,7 +66,7 @@ class Window(QtWidgets.QWidget):
self.refresh_projects()
def _set_project(self, project_name=None):
self.hierarchy_model.set_project(project_name)
self.hierarchy_view.set_project(project_name)
def refresh_projects(self):
current_project = None