[tree] include sources and groups
This commit is contained in:
parent
2fb4ab96a1
commit
ddb39146cd
@ -1,7 +1,7 @@
|
||||
import os
|
||||
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 PyQt5.QtCore import Qt, QSettings, QSize
|
||||
|
||||
from file_handler import FileHandler
|
||||
import communicator as comm
|
||||
@ -45,6 +45,7 @@ class FileView(QWidget):
|
||||
self._view.setAlternatingRowColors(True)
|
||||
self._view.setUniformRowHeights(True) # Allows for scrolling optimizations.
|
||||
self._view.setWindowTitle("Simple Tree Model")
|
||||
self._view.setIconSize(QSize(20,20))
|
||||
header = self._view.header()
|
||||
header.setStretchLastSection(False)
|
||||
header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
|
||||
|
@ -1,4 +1,5 @@
|
||||
from PyQt5.QtCore import QAbstractItemModel, QFile, QModelIndex, Qt
|
||||
from PyQt5.QtCore import QAbstractItemModel, QFile, QModelIndex, QSize, Qt
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtWidgets import QHeaderView, QTreeWidgetItem
|
||||
|
||||
from file_handler import ItemDescriptor, NodeType
|
||||
@ -7,10 +8,9 @@ from IPython import embed
|
||||
column_names = ['Name', 'Type', 'ID', 'Value', 'Description']
|
||||
|
||||
|
||||
|
||||
|
||||
class NixTreeItem():
|
||||
class NixTreeItem(QTreeWidgetItem):
|
||||
def __init__(self, node_descriptor, file_handler, parent=None):
|
||||
super().__init__(parent)
|
||||
self._node_descriptor = node_descriptor
|
||||
self._file_handler = file_handler
|
||||
|
||||
@ -85,6 +85,48 @@ class BlockTreeItem(NixTreeItem):
|
||||
|
||||
for t in self._file_handler.request_tags(self._node_descriptor.id):
|
||||
self._child_items.append(TagTreeItem(t, self._file_handler, parent=self))
|
||||
|
||||
data_frames = self._file_handler.request_data_frames(self._node_descriptor.id)
|
||||
for df in data_frames:
|
||||
self._child_items.append(DataFrameTreeItem(df, self._file_handler, parent=self))
|
||||
|
||||
sources = self._file_handler.request_sources(self._node_descriptor.id)
|
||||
for s in sources:
|
||||
self._child_items.append(SourceTreeItem(s, self._file_handler, parent=self))
|
||||
self._is_loaded = True
|
||||
|
||||
class SourceTreeItem(NixTreeItem):
|
||||
def __init__(self, node_descriptor, file_handler, parent):
|
||||
super().__init__(node_descriptor, file_handler, parent=parent)
|
||||
self._is_loaded = False
|
||||
|
||||
def load_children(self):
|
||||
sources = self._file_handler.request_sources(self._node_descriptor.block_id, self._node_descriptor.id)
|
||||
for s in sources:
|
||||
self._child_items.append(SourceTreeItem(s, self._file_handler, parent=self))
|
||||
self._is_loaded = True
|
||||
|
||||
class GroupTreeItem(NixTreeItem):
|
||||
def __init__(self, node_descriptor, file_handler, parent):
|
||||
super().__init__(node_descriptor, file_handler, parent=parent)
|
||||
self._is_loaded = False
|
||||
|
||||
def load_children(self):
|
||||
self._child_items = []
|
||||
arrays = self._file_handler.request_data_arrays(self._node_descriptor.id)
|
||||
for a in arrays:
|
||||
self._child_items.append(DataArrayTreeItem(a, self._file_handler, parent=self))
|
||||
|
||||
for t in self._file_handler.request_tags(self._node_descriptor.id):
|
||||
self._child_items.append(TagTreeItem(t, self._file_handler, parent=self))
|
||||
|
||||
data_frames = self._file_handler.request_data_frames(self._node_descriptor.id)
|
||||
for df in data_frames:
|
||||
self._child_items.append(DataFrameTreeItem(df, self._file_handler, parent=self))
|
||||
|
||||
sources = self._file_handler.request_sources(self._node_descriptor.id)
|
||||
for s in sources:
|
||||
self._child_items.append(SourceTreeItem(s, self._file_handler, parent=self))
|
||||
self._is_loaded = True
|
||||
|
||||
class DataFrameTreeItem(NixTreeItem):
|
||||
@ -177,9 +219,8 @@ class TreeModel(QAbstractItemModel):
|
||||
def data(self, index, role):
|
||||
if not index.isValid():
|
||||
return None
|
||||
|
||||
item = index.internalPointer()
|
||||
|
||||
|
||||
if role == Qt.DisplayRole:
|
||||
return item.data(index.column())
|
||||
elif role == Qt.DecorationRole and index.column() == 0:
|
||||
|
Loading…
Reference in New Issue
Block a user