[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 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.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 file_handler import FileHandler, ItemDescriptor
from plot_screen import PlotScreen from plot_screen import PlotScreen
import communicator as comm import communicator as comm
import constants as cnst import constants as cnst
from tree_model import NixTreeItem, TagTreeItem, TreeModel, TreeType from tree_model import NixTreeView, TreeModel, TreeType
class CentralWidget(QWidget): class CentralWidget(QWidget):
@ -42,7 +42,6 @@ class CentralWidget(QWidget):
class FileView(QWidget): class FileView(QWidget):
icon_size = QSize(30, 30)
def __init__(self, parent=None) -> None: def __init__(self, parent=None) -> None:
super().__init__(parent=parent) super().__init__(parent=parent)
self._file_handler = FileHandler() self._file_handler = FileHandler()
@ -56,20 +55,7 @@ class FileView(QWidget):
self._info = EntityInfo(self) self._info = EntityInfo(self)
main_splitter.addWidget(self._info) main_splitter.addWidget(self._info)
self._data_tree = QTreeView(self) self._data_tree = NixTreeView(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._tree_type_combo = QComboBox() self._tree_type_combo = QComboBox()
self._tree_type_combo.adjustSize() self._tree_type_combo.adjustSize()
@ -92,12 +78,6 @@ class FileView(QWidget):
main_splitter.setSizes([200, 600]) main_splitter.setSizes([200, 600])
vbox.addWidget(main_splitter) 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): def dataTreeSelection(self, current_index, last_index):
if not current_index.isValid(): if not current_index.isValid():
return return
@ -128,25 +108,13 @@ class FileView(QWidget):
class EntityInfo(QWidget): class EntityInfo(QWidget):
icon_size = QSize(30, 30)
def __init__(self, parent): def __init__(self, parent):
super().__init__(parent=parent) super().__init__(parent=parent)
self._file_handler = FileHandler() self._file_handler = FileHandler()
self.setLayout(QHBoxLayout()) self.setLayout(QHBoxLayout())
self._metadata_tree = QTreeView() self._metadata_tree = NixTreeView()
# 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)
mdata_grp = QGroupBox("Metadata") mdata_grp = QGroupBox("Metadata")
mdata_grp.setLayout(QVBoxLayout()) mdata_grp.setLayout(QVBoxLayout())