[central view] add comboBox for tree type selection, remove metadata tree
This commit is contained in:
parent
8147a43753
commit
ab94435a82
@ -1,13 +1,13 @@
|
||||
import os
|
||||
from PyQt5.QtWidgets import QFrame, QGroupBox, QLabel, QLayout, QListWidget, QListWidgetItem, QSplitter, QStackedLayout, QAbstractItemView, QVBoxLayout, QWidget, QGridLayout, QTreeView, QHeaderView
|
||||
from PyQt5.QtWidgets import QComboBox, QFrame, QGroupBox, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QSpacerItem, QSplitter, QStackedLayout, QAbstractItemView, QTextEdit, QVBoxLayout, QWidget, QGridLayout, QTreeView, QHeaderView
|
||||
from PyQt5.QtGui import QPixmap
|
||||
from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, QSize, pyqtSignal
|
||||
|
||||
from file_handler import FileHandler
|
||||
from file_handler import FileHandler, ItemDescriptor
|
||||
from plot_screen import PlotScreen
|
||||
import communicator as comm
|
||||
import constants as cnst
|
||||
from tree_model import TreeModel, TreeType
|
||||
from tree_model import NixTreeItem, TagTreeItem, TreeModel, TreeType
|
||||
|
||||
class CentralWidget(QWidget):
|
||||
|
||||
@ -49,25 +49,12 @@ class FileView(QWidget):
|
||||
|
||||
vbox = QVBoxLayout()
|
||||
self.setLayout(vbox)
|
||||
splitter = QSplitter(Qt.Horizontal)
|
||||
|
||||
self._mdata_tree = QTreeView(self)
|
||||
self._mdata_tree.expanded.connect(self.metadataTreeResize)
|
||||
self._mdata_tree.collapsed.connect(self.metadataTreeResize)
|
||||
self._mdata_tree.setAlternatingRowColors(True)
|
||||
self._mdata_tree.setUniformRowHeights(True) # Allows for scrolling optimizations.
|
||||
self._mdata_tree.setWindowTitle("Metadata Tree")
|
||||
self._mdata_tree.setIconSize(self.icon_size)
|
||||
mheader = self._mdata_tree.header()
|
||||
mheader.setStretchLastSection(False)
|
||||
mheader.setSectionResizeMode(1, QHeaderView.ResizeToContents)
|
||||
mheader.setSectionResizeMode(2, QHeaderView.ResizeToContents)
|
||||
mheader.setSectionResizeMode(0, QHeaderView.Stretch)
|
||||
main_splitter = QSplitter(Qt.Vertical)
|
||||
self.layout().addWidget(main_splitter)
|
||||
|
||||
mdata_group = QGroupBox("Metadata")
|
||||
mdata_group.setLayout(QVBoxLayout())
|
||||
mdata_group.layout().setContentsMargins(2, 10, 2, 2)
|
||||
mdata_group.layout().addWidget(self._mdata_tree)
|
||||
self._info = EntityInfo(self)
|
||||
main_splitter.addWidget(self._info)
|
||||
|
||||
self._data_tree = QTreeView(self)
|
||||
self._data_tree.expanded.connect(self.dataTreeResize)
|
||||
@ -84,15 +71,26 @@ class FileView(QWidget):
|
||||
header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
|
||||
header.setSectionResizeMode(0, QHeaderView.Stretch)
|
||||
|
||||
self._tree_type_combo = QComboBox()
|
||||
self._tree_type_combo.adjustSize()
|
||||
self._tree_type_combo.addItems([TreeType.Data.value, TreeType.Full.value, TreeType.Metadata.value])
|
||||
self._tree_type_combo.currentTextChanged.connect(self.update)
|
||||
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addWidget(QLabel("Tree type:"))
|
||||
hbox.addWidget(self._tree_type_combo)
|
||||
hbox.addStretch()
|
||||
data_group = QGroupBox("Data")
|
||||
data_vbox = QVBoxLayout()
|
||||
data_vbox.setContentsMargins(2, 10, 2, 2)
|
||||
data_vbox.setContentsMargins(1, 10, 1, 1)
|
||||
|
||||
data_vbox.addLayout(hbox)
|
||||
data_vbox.addWidget(self._data_tree)
|
||||
data_group.setLayout(data_vbox)
|
||||
|
||||
splitter.insertWidget(0, mdata_group)
|
||||
splitter.insertWidget(1, data_group)
|
||||
vbox.addWidget(splitter)
|
||||
|
||||
main_splitter.addWidget(data_group)
|
||||
main_splitter.setSizes([200, 600])
|
||||
vbox.addWidget(main_splitter)
|
||||
|
||||
def metadataTreeResize(self, index):
|
||||
self._mdata_tree.resizeColumnToContents(index.column())
|
||||
@ -107,16 +105,23 @@ class FileView(QWidget):
|
||||
comm.communicator.item_selected.emit(item)
|
||||
|
||||
def update(self):
|
||||
data_model = TreeModel(self._file_handler, TreeType.Data)
|
||||
metadata_model = TreeModel(self._file_handler, TreeType.Metadata)
|
||||
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
|
||||
|
||||
data_model = TreeModel(self._file_handler, tt)
|
||||
self._data_tree.setModel(data_model)
|
||||
selection_model = QItemSelectionModel(data_model)
|
||||
self._data_tree.setSelectionModel(selection_model)
|
||||
selection_model.currentChanged.connect(self.dataTreeSelection)
|
||||
self._mdata_tree.setModel(metadata_model)
|
||||
for i in range(data_model.columnCount(None)):
|
||||
self._data_tree.resizeColumnToContents(i)
|
||||
self._mdata_tree.resizeColumnToContents(i)
|
||||
self._info.setFileInfo(self._file_handler.file_descriptor)
|
||||
|
||||
def reset(self):
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user