[tree] emit signal upon data tree selection

This commit is contained in:
Jan Grewe 2021-01-01 17:06:13 +01:00
parent dae8125999
commit 6ce5ab5d5f
2 changed files with 16 additions and 3 deletions

View File

@ -87,14 +87,24 @@ class FileView(QWidget):
def dataTreeResize(self, index): def dataTreeResize(self, index):
self._data_tree.resizeColumnToContents(index.column()) self._data_tree.resizeColumnToContents(index.column())
def dataTreeSelection(self, current_index, last_index):
if not current_index.isValid():
return
item = current_index.internalPointer()
comm.communicator.item_selected.emit(item)
def update(self): def update(self):
data_model = TreeModel(self._file_handler, TreeType.Data) data_model = TreeModel(self._file_handler, TreeType.Data)
metadata_model = TreeModel(self._file_handler, TreeType.Metadata) metadata_model = TreeModel(self._file_handler, TreeType.Metadata)
self._data_tree.setModel(data_model) 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) self._mdata_tree.setModel(metadata_model)
self._data_tree.resizeColumnToContents(0) for i in range(data_model.columnCount(None)):
self._mdata_tree.resizeColumnToContents(0) self._data_tree.resizeColumnToContents(i)
self._mdata_tree.resizeColumnToContents(i)
def reset(self): def reset(self):
print("FileView ", self._file_handler.is_valid) print("FileView ", self._file_handler.is_valid)

View File

@ -1,3 +1,4 @@
from tree_model import NixTreeItem
from PyQt5.QtCore import QObject, pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal
class Communicate(QObject): class Communicate(QObject):
@ -5,5 +6,7 @@ class Communicate(QObject):
Small class for across app communication. Defines signals, to which other classes can connect. Small class for across app communication. Defines signals, to which other classes can connect.
""" """
open_recent = pyqtSignal(str) open_recent = pyqtSignal(str)
item_selected = pyqtSignal(NixTreeItem)
communicator = Communicate() communicator = Communicate()