diff --git a/nixview/ui/centralwidget.py b/nixview/ui/centralwidget.py index 275ae58..b4a0aba 100644 --- a/nixview/ui/centralwidget.py +++ b/nixview/ui/centralwidget.py @@ -3,6 +3,7 @@ from PyQt5.QtWidgets import QStackedLayout, QWidget from nixview.ui.plotscreen import PlotScreen from nixview.ui.splashscreen import SplashScreen from nixview.ui.filescreen import FileScreen +from nixview.ui.tablescreen import TableScreen class CentralWidget(QWidget): @@ -13,10 +14,14 @@ class CentralWidget(QWidget): self._file_view = FileScreen(self) self._plot_screen = PlotScreen(self) self._plot_screen.close_signal.connect(self.on_plot_close) + self._table_screen = TableScreen(self) + self._table_screen.close_signal.connect(self.on_table_close) + self._stack = QStackedLayout(self) self._stack.addWidget(self._splash) self._stack.addWidget(self._file_view) self._stack.addWidget(self._plot_screen) + self._stack.addWidget(self._table_screen) self.setLayout(self._stack) def show_file_content(self): @@ -27,9 +32,16 @@ class CentralWidget(QWidget): self._stack.setCurrentIndex(2) self._plot_screen.plot(item_descriptor) + def show_table(self, item_descriptor): + self._stack.setCurrentIndex(3) + self._table_screen.show(item_descriptor) + def on_plot_close(self): self._stack.setCurrentIndex(1) + def on_table_close(self): + self._stack.setCurrentIndex(1) + def reset(self): self._file_view.reset() self._splash.reset() diff --git a/nixview/ui/mainwindow.py b/nixview/ui/mainwindow.py index 4045471..394d300 100644 --- a/nixview/ui/mainwindow.py +++ b/nixview/ui/mainwindow.py @@ -69,7 +69,7 @@ class NixView(QMainWindow): self._table_action.setStatusTip("Show data as table") self._table_action.setShortcut(QKeySequence("Ctrl+t")) self._table_action.setEnabled(False) - # self._table_action.triggered.connect(self.on_file_close) + self._table_action.triggered.connect(self.on_item_show_table) self._about_action = QAction("about") self._about_action.setStatusTip("Show about dialog") @@ -167,6 +167,10 @@ class NixView(QMainWindow): if self._current_item is not None: self._cw.plot_item(self._current_item.node_descriptor) + def on_item_show_table(self, s): + if self._current_item is not None: + self._cw.show_table(self._current_item.node_descriptor) + def on_plot_error(self, s): self.statusBar().showMessage(s, 5000) diff --git a/nixview/ui/tablescreen.py b/nixview/ui/tablescreen.py new file mode 100644 index 0000000..62d6473 --- /dev/null +++ b/nixview/ui/tablescreen.py @@ -0,0 +1,32 @@ +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QPushButton, QTableWidget +from PyQt5.QtCore import pyqtSignal, Qt + +from nixview.util.file_handler import FileHandler + + +class TableScreen(QWidget): + close_signal = pyqtSignal() + + def __init__(self, parent=None) -> None: + super().__init__(parent=parent) + self._file_handler = FileHandler() + + self.table = QTableWidget() + + close_btn = QPushButton("close") + close_btn.clicked.connect(self.on_close) + + self.setLayout(QVBoxLayout()) + self.layout().addWidget(self.table) + self.layout().addWidget(close_btn) + self._data_view = None + + self._software_slide = False + self.plotter = None + + def on_close(self): + self.close_signal.emit() + + def show(self, item_descriptor): + print("Table show") + pass