From 1718fd89ca2053e81cd85476484c6fdb7bd1b6f1 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan.grewe@g-node.org>
Date: Wed, 6 Jan 2021 23:13:42 +0100
Subject: [PATCH] [central view] renaming and some minor cleanup

---
 central_widget.py | 51 +++++++++++++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 19 deletions(-)

diff --git a/central_widget.py b/central_widget.py
index d995ded..0ded8eb 100644
--- a/central_widget.py
+++ b/central_widget.py
@@ -103,17 +103,17 @@ class FileView(QWidget):
             return
         item = current_index.internalPointer()
         comm.communicator.item_selected.emit(item)
+        self._info.setEntityInfo(item.node_descriptor)
 
     def update(self):
         tt = TreeType.Data
         if self._tree_type_combo.currentText() == TreeType.Data.value:
-            print("Data")
             tt = TreeType.Data
         elif self._tree_type_combo.currentText() == TreeType.Full.value:
             tt = TreeType.Full
         elif self._tree_type_combo.currentText() == TreeType.Metadata.value:
             tt = TreeType.Metadata
-        
+        self._info.setEntityInfo(None)
         data_model = TreeModel(self._file_handler, tt)
         self._data_tree.setModel(data_model)
         selection_model = QItemSelectionModel(data_model)
@@ -129,8 +129,10 @@ class FileView(QWidget):
 
 class EntityInfo(QWidget):
     icon_size = QSize(30, 30)
+
     def __init__(self, parent):
         super().__init__(parent=parent)
+        self._file_handler = FileHandler()
         self.setLayout(QHBoxLayout())
         
         self._metadata_tree = QTreeView()
@@ -154,7 +156,7 @@ class EntityInfo(QWidget):
         file_info_grp = QGroupBox("File info")
         file_info_grp.setLayout(QVBoxLayout())
         file_info_grp.layout().setContentsMargins(1, 10, 1, 1)
-        self._file_info = QTextEdit("File infomation")
+        self._file_info = QTextEdit("File information")
         self._file_info.setEnabled(True)
         self._file_info.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse)
         self._file_info.setFrameShape(QFrame.NoFrame)
@@ -164,30 +166,42 @@ class EntityInfo(QWidget):
         entity_info_grp = QGroupBox("Entity info")
         entity_info_grp.setLayout(QVBoxLayout())
         entity_info_grp.layout().setContentsMargins(1, 10, 1, 1)
-        self._entity_info = QTextEdit("<h3>Entity Information</h3>")
-        self._entity_info.setEnabled(False)
+        self._entity_info = QTextEdit("Entity information")
+        self._file_info.setEnabled(True)
+        self._file_info.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse)
+        self._file_info.setFrameShape(QFrame.NoFrame)
+        self._file_info.setLineWrapMode(QTextEdit.WidgetWidth)
         entity_info_grp.layout().addWidget(self._entity_info)
  
-        splitter = QSplitter(Qt.Horizontal)
-        splitter.addWidget(file_info_grp)
-        splitter.addWidget(entity_info_grp)
-        splitter.addWidget(mdata_grp)
-        splitter.setSizes([200, 400, 0])
-        splitter.setStretchFactor(0, 0)
-        splitter.setStretchFactor(1, 1)
-        splitter.setStretchFactor(2, 1)
+        self._splitter = QSplitter(Qt.Horizontal)
+        self._splitter.addWidget(file_info_grp)
+        self._splitter.addWidget(entity_info_grp)
+        self._splitter.addWidget(mdata_grp)
+        self._splitter.setSizes([200, 400, 0])
+        self._splitter.setStretchFactor(0, 0)
+        self._splitter.setStretchFactor(1, 1)
+        self._splitter.setStretchFactor(2, 1)
         
-        self.layout().addWidget(splitter)
+        self.layout().addWidget(self._splitter)
         
 
     def setFileInfo(self, file_info):
         if file_info is not None:
             self._file_info.setText(file_info.toHtml())
             
-    def setEntityInfo(self, entityInfo):
-        if not isinstance(entityInfo, ItemDescriptor):
-            print("Meh! wrong item")
-        metadata_model = TreeModel(self._file_handler, TreeType.Metadata)
+    def setEntityInfo(self, entity_info):
+        if entity_info is None or not isinstance(entity_info, ItemDescriptor):
+            self._splitter.setSizes([200, 400, 0])
+            self._entity_info.setText("")
+            self._metadata_tree.setModel(None)
+            return
+
+        if entity_info.metadata_id is not None:
+            self._splitter.setSizes([200, 400, 400])
+        else:
+            self._splitter.setSizes([200, 400, 0])
+        self._entity_info.setText(entity_info.to_html())
+        metadata_model = TreeModel(self._file_handler, TreeType.Metadata, root_section_id=entity_info.metadata_id)
         self._metadata_tree.setModel(metadata_model)
         for i in range(metadata_model.columnCount(None)):
             self._metadata_tree.resizeColumnToContents(i)
@@ -268,6 +282,5 @@ class SplashScreen(QWidget):
 
     def _on_key_pressed(self, key):
         item = self._file_list.currentItem()
-        print(item)
         if item is not None and key == Qt.Key_Return:
             comm.communicator.open_recent.emit(self._file_map[item.text()])