diff --git a/central_widget.py b/central_widget.py index d995ded..0ded8eb 100644 --- a/central_widget.py +++ b/central_widget.py @@ -103,17 +103,17 @@ class FileView(QWidget): return item = current_index.internalPointer() comm.communicator.item_selected.emit(item) + self._info.setEntityInfo(item.node_descriptor) def update(self): 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 - + self._info.setEntityInfo(None) data_model = TreeModel(self._file_handler, tt) self._data_tree.setModel(data_model) selection_model = QItemSelectionModel(data_model) @@ -129,8 +129,10 @@ class FileView(QWidget): class EntityInfo(QWidget): icon_size = QSize(30, 30) + def __init__(self, parent): super().__init__(parent=parent) + self._file_handler = FileHandler() self.setLayout(QHBoxLayout()) self._metadata_tree = QTreeView() @@ -154,7 +156,7 @@ class EntityInfo(QWidget): file_info_grp = QGroupBox("File info") file_info_grp.setLayout(QVBoxLayout()) file_info_grp.layout().setContentsMargins(1, 10, 1, 1) - self._file_info = QTextEdit("File infomation") + self._file_info = QTextEdit("File information") self._file_info.setEnabled(True) self._file_info.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse) self._file_info.setFrameShape(QFrame.NoFrame) @@ -164,30 +166,42 @@ class EntityInfo(QWidget): entity_info_grp = QGroupBox("Entity info") entity_info_grp.setLayout(QVBoxLayout()) entity_info_grp.layout().setContentsMargins(1, 10, 1, 1) - self._entity_info = QTextEdit("

Entity Information

") - self._entity_info.setEnabled(False) + self._entity_info = QTextEdit("Entity information") + self._file_info.setEnabled(True) + self._file_info.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse) + self._file_info.setFrameShape(QFrame.NoFrame) + self._file_info.setLineWrapMode(QTextEdit.WidgetWidth) entity_info_grp.layout().addWidget(self._entity_info) - splitter = QSplitter(Qt.Horizontal) - splitter.addWidget(file_info_grp) - splitter.addWidget(entity_info_grp) - splitter.addWidget(mdata_grp) - splitter.setSizes([200, 400, 0]) - splitter.setStretchFactor(0, 0) - splitter.setStretchFactor(1, 1) - splitter.setStretchFactor(2, 1) + self._splitter = QSplitter(Qt.Horizontal) + self._splitter.addWidget(file_info_grp) + self._splitter.addWidget(entity_info_grp) + self._splitter.addWidget(mdata_grp) + self._splitter.setSizes([200, 400, 0]) + self._splitter.setStretchFactor(0, 0) + self._splitter.setStretchFactor(1, 1) + self._splitter.setStretchFactor(2, 1) - self.layout().addWidget(splitter) + self.layout().addWidget(self._splitter) def setFileInfo(self, file_info): if file_info is not None: self._file_info.setText(file_info.toHtml()) - def setEntityInfo(self, entityInfo): - if not isinstance(entityInfo, ItemDescriptor): - print("Meh! wrong item") - metadata_model = TreeModel(self._file_handler, TreeType.Metadata) + def setEntityInfo(self, entity_info): + if entity_info is None or not isinstance(entity_info, ItemDescriptor): + self._splitter.setSizes([200, 400, 0]) + self._entity_info.setText("") + self._metadata_tree.setModel(None) + return + + if entity_info.metadata_id is not None: + self._splitter.setSizes([200, 400, 400]) + else: + self._splitter.setSizes([200, 400, 0]) + self._entity_info.setText(entity_info.to_html()) + metadata_model = TreeModel(self._file_handler, TreeType.Metadata, root_section_id=entity_info.metadata_id) self._metadata_tree.setModel(metadata_model) for i in range(metadata_model.columnCount(None)): self._metadata_tree.resizeColumnToContents(i) @@ -268,6 +282,5 @@ class SplashScreen(QWidget): def _on_key_pressed(self, key): item = self._file_list.currentItem() - print(item) if item is not None and key == Qt.Key_Return: comm.communicator.open_recent.emit(self._file_map[item.text()])