[central view] use own NixTreeView class

This commit is contained in:
Jan Grewe 2021-01-06 23:29:23 +01:00
parent a2a4baf5e1
commit be118dbee0

View File

@ -1,13 +1,13 @@
import os
from PyQt5.QtWidgets import QComboBox, QFrame, QGroupBox, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QSpacerItem, QSplitter, QStackedLayout, QAbstractItemView, QTextEdit, QVBoxLayout, QWidget, QGridLayout, QTreeView, QHeaderView
from PyQt5.QtWidgets import QComboBox, QFrame, QGroupBox, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QSplitter, QStackedLayout, QAbstractItemView, QTextEdit, QVBoxLayout, QWidget, QGridLayout
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, QSize, pyqtSignal
from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, pyqtSignal
from file_handler import FileHandler, ItemDescriptor
from plot_screen import PlotScreen
import communicator as comm
import constants as cnst
from tree_model import NixTreeItem, TagTreeItem, TreeModel, TreeType
from tree_model import NixTreeView, TreeModel, TreeType
class CentralWidget(QWidget):
@ -42,7 +42,6 @@ class CentralWidget(QWidget):
class FileView(QWidget):
icon_size = QSize(30, 30)
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
self._file_handler = FileHandler()
@ -56,21 +55,8 @@ class FileView(QWidget):
self._info = EntityInfo(self)
main_splitter.addWidget(self._info)
self._data_tree = QTreeView(self)
self._data_tree.expanded.connect(self.dataTreeResize)
self._data_tree.collapsed.connect(self.dataTreeResize)
self._data_tree.setAlternatingRowColors(True)
self._data_tree.setUniformRowHeights(True) # Allows for scrolling optimizations.
self._data_tree.setWindowTitle("Data Tree")
self._data_tree.setIconSize(self.icon_size)
self._data_tree.setSelectionBehavior(QAbstractItemView.SelectItems)
self._data_tree.setSelectionMode(QAbstractItemView.SingleSelection)
header = self._data_tree.header()
header.setStretchLastSection(False)
header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
header.setSectionResizeMode(0, QHeaderView.Stretch)
self._data_tree = NixTreeView(self)
self._tree_type_combo = QComboBox()
self._tree_type_combo.adjustSize()
self._tree_type_combo.addItems([TreeType.Data.value, TreeType.Full.value, TreeType.Metadata.value])
@ -92,12 +78,6 @@ class FileView(QWidget):
main_splitter.setSizes([200, 600])
vbox.addWidget(main_splitter)
def metadataTreeResize(self, index):
self._mdata_tree.resizeColumnToContents(index.column())
def dataTreeResize(self, index):
self._data_tree.resizeColumnToContents(index.column())
def dataTreeSelection(self, current_index, last_index):
if not current_index.isValid():
return
@ -128,26 +108,14 @@ 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()
# self._metadata_tree.expanded.connect(self.metadataTreeResize)
# self._metadata_tree.collapsed.connect(self.metadataTreeResize)
self._metadata_tree.setAlternatingRowColors(True)
self._metadata_tree.setUniformRowHeights(True) # Allows for scrolling optimizations.
self._metadata_tree.setWindowTitle("Metadata Tree")
self._metadata_tree.setIconSize(self.icon_size)
mheader = self._metadata_tree.header()
mheader.setStretchLastSection(False)
mheader.setSectionResizeMode(1, QHeaderView.ResizeToContents)
mheader.setSectionResizeMode(2, QHeaderView.ResizeToContents)
mheader.setSectionResizeMode(0, QHeaderView.Stretch)
self._metadata_tree = NixTreeView()
mdata_grp = QGroupBox("Metadata")
mdata_grp.setLayout(QVBoxLayout())
mdata_grp.layout().setContentsMargins(1, 10, 1, 1)