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