From b569231b47643366d437c0f5c5e7356410f88541 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan.grewe@g-node.org>
Date: Wed, 30 Dec 2020 16:32:06 +0100
Subject: [PATCH] [central widget] add tree view

---
 central_widget.py | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/central_widget.py b/central_widget.py
index 91d7931..92038f5 100644
--- a/central_widget.py
+++ b/central_widget.py
@@ -1,11 +1,12 @@
 import os
-from PyQt5.QtWidgets import QFrame, QLabel, QListWidget, QListWidgetItem, QStackedLayout, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy
+from PyQt5.QtWidgets import QFrame, QLabel, QListWidget, QListWidgetItem, QStackedLayout, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy, QTreeView, QHeaderView
 from PyQt5.QtGui import QPixmap
 from PyQt5.QtCore import Qt, QSettings
 
 from file_handler import FileHandler
 import communicator as comm
 import constants as cnst
+from tree_model import TreeModel
 
 class CentralWidget(QWidget):
     
@@ -22,6 +23,7 @@ class CentralWidget(QWidget):
 
     def show_file_content(self):
         self._stack.setCurrentIndex(1)
+        self._file_view.update()
 
     def reset(self):
         self._file_view.reset()
@@ -33,10 +35,27 @@ class FileView(QWidget):
     
     def __init__(self, parent=None) -> None:
         super().__init__(parent=parent)
-        self.setLayout(QVBoxLayout())
-        self.layout().addWidget(QLabel("FileView"))
         self._file_handler = FileHandler()
 
+        grid = QGridLayout()
+        grid.addWidget(QLabel("FileView"), 0, 0, 1, 3)
+        self.setLayout(grid)
+   
+        self._view = QTreeView()
+        self._view.setAlternatingRowColors(True)
+        self._view.setUniformRowHeights(True)  # Allows for scrolling optimizations.
+        self._view.setWindowTitle("Simple Tree Model")
+        header = self._view.header()
+        header.setStretchLastSection(False)
+        header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
+        header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
+        header.setSectionResizeMode(0, QHeaderView.Stretch)
+        grid.addWidget(self._view, 1, 0, 3, 3)
+
+    def update(self):
+        model = TreeModel(self._file_handler)
+        self._view.setModel(model)
+        
     def reset(self):
         print("FileView ", self._file_handler.is_valid)
         pass