[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
|
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.QtGui import QPixmap
|
||||||
from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, QSize, pyqtSignal
|
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
|
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 TreeModel, TreeType
|
from tree_model import NixTreeItem, TagTreeItem, TreeModel, TreeType
|
||||||
|
|
||||||
class CentralWidget(QWidget):
|
class CentralWidget(QWidget):
|
||||||
|
|
||||||
@ -49,25 +49,12 @@ class FileView(QWidget):
|
|||||||
|
|
||||||
vbox = QVBoxLayout()
|
vbox = QVBoxLayout()
|
||||||
self.setLayout(vbox)
|
self.setLayout(vbox)
|
||||||
splitter = QSplitter(Qt.Horizontal)
|
|
||||||
|
|
||||||
self._mdata_tree = QTreeView(self)
|
main_splitter = QSplitter(Qt.Vertical)
|
||||||
self._mdata_tree.expanded.connect(self.metadataTreeResize)
|
self.layout().addWidget(main_splitter)
|
||||||
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)
|
|
||||||
|
|
||||||
mdata_group = QGroupBox("Metadata")
|
self._info = EntityInfo(self)
|
||||||
mdata_group.setLayout(QVBoxLayout())
|
main_splitter.addWidget(self._info)
|
||||||
mdata_group.layout().setContentsMargins(2, 10, 2, 2)
|
|
||||||
mdata_group.layout().addWidget(self._mdata_tree)
|
|
||||||
|
|
||||||
self._data_tree = QTreeView(self)
|
self._data_tree = QTreeView(self)
|
||||||
self._data_tree.expanded.connect(self.dataTreeResize)
|
self._data_tree.expanded.connect(self.dataTreeResize)
|
||||||
@ -84,15 +71,26 @@ class FileView(QWidget):
|
|||||||
header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
|
header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
|
||||||
header.setSectionResizeMode(0, QHeaderView.Stretch)
|
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_group = QGroupBox("Data")
|
||||||
data_vbox = QVBoxLayout()
|
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_vbox.addWidget(self._data_tree)
|
||||||
data_group.setLayout(data_vbox)
|
data_group.setLayout(data_vbox)
|
||||||
|
|
||||||
splitter.insertWidget(0, mdata_group)
|
main_splitter.addWidget(data_group)
|
||||||
splitter.insertWidget(1, data_group)
|
main_splitter.setSizes([200, 600])
|
||||||
vbox.addWidget(splitter)
|
vbox.addWidget(main_splitter)
|
||||||
|
|
||||||
def metadataTreeResize(self, index):
|
def metadataTreeResize(self, index):
|
||||||
self._mdata_tree.resizeColumnToContents(index.column())
|
self._mdata_tree.resizeColumnToContents(index.column())
|
||||||
@ -107,16 +105,23 @@ class FileView(QWidget):
|
|||||||
comm.communicator.item_selected.emit(item)
|
comm.communicator.item_selected.emit(item)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
data_model = TreeModel(self._file_handler, TreeType.Data)
|
tt = TreeType.Data
|
||||||
metadata_model = TreeModel(self._file_handler, TreeType.Metadata)
|
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)
|
self._data_tree.setModel(data_model)
|
||||||
selection_model = QItemSelectionModel(data_model)
|
selection_model = QItemSelectionModel(data_model)
|
||||||
self._data_tree.setSelectionModel(selection_model)
|
self._data_tree.setSelectionModel(selection_model)
|
||||||
selection_model.currentChanged.connect(self.dataTreeSelection)
|
selection_model.currentChanged.connect(self.dataTreeSelection)
|
||||||
self._mdata_tree.setModel(metadata_model)
|
|
||||||
for i in range(data_model.columnCount(None)):
|
for i in range(data_model.columnCount(None)):
|
||||||
self._data_tree.resizeColumnToContents(i)
|
self._data_tree.resizeColumnToContents(i)
|
||||||
self._mdata_tree.resizeColumnToContents(i)
|
self._info.setFileInfo(self._file_handler.file_descriptor)
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
pass
|
pass
|
||||||
|
Loading…
Reference in New Issue
Block a user