From ff8bb6a58b16e6cf12f346b63c5afe9d41852553 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Fri, 1 Jan 2021 17:07:23 +0100 Subject: [PATCH] [main] actions for table and plot display --- main_window.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/main_window.py b/main_window.py index cc188f8..7acad4d 100644 --- a/main_window.py +++ b/main_window.py @@ -4,7 +4,7 @@ from PyQt5.QtGui import QIcon, QKeySequence from PyQt5.QtCore import QSize, QSettings from numpy import unique -from file_handler import FileHandler +from file_handler import FileHandler, NodeType import constants as cnst import communicator as comm from central_widget import CentralWidget @@ -13,7 +13,7 @@ class NixView(QMainWindow): def __init__(self, *args, **kwargs): super(NixView, self).__init__(*args, **kwargs) - + self._current_item = None self.setWindowTitle("NixView") self.setWindowIcon(QIcon('./icons/nixview.icns')) @@ -26,11 +26,19 @@ class NixView(QMainWindow): self.setCentralWidget(self._cw) comm.communicator.open_recent.connect(self.on_open_recent) + comm.communicator.item_selected.connect(self.on_item_selected) self.show() def on_open_recent(self, event): self.open_file(event) + def on_item_selected(self, current): + self._current_item = current + current_item_type = current._node_descriptor.entity_type + enable = current_item_type == NodeType.MultiTag or current_item_type == NodeType.DataArray or current_item_type == NodeType.Tag + self._plot_action.setEnabled(enable) + self._table_action.setEnabled(enable) + def create_actions(self): self._file_open_action = QAction(QIcon("./icons/nix_open.png"), "Open", self) self._file_open_action.setStatusTip("Open nix file") @@ -47,6 +55,17 @@ class NixView(QMainWindow): self._quit_action.setStatusTip("Close current file and quit") self._quit_action.triggered.connect(self.on_quit) + self._plot_action = QAction(QIcon("./icons/nix_plot.png"), "Plot", self) + self._plot_action.setStatusTip("Plot currently selected entity") + self._plot_action.setShortcut(QKeySequence("Ctrl+p")) + self._plot_action.setEnabled(False) + self._plot_action.triggered.connect(self.on_item_plot) + + self._table_action = QAction(QIcon("./icons/nix_table.png"), "Show table", self) + 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.create_toolbar() self.create_menu() @@ -57,6 +76,9 @@ class NixView(QMainWindow): self._toolbar.addAction(self._file_open_action) self._toolbar.addAction(self._file_close_action) self._toolbar.addAction(self._quit_action) + self._toolbar.addSeparator() + self._toolbar.addAction(self._plot_action) + self._toolbar.addAction(self._table_action) self.addToolBar(self._toolbar) def create_menu(self): @@ -65,6 +87,11 @@ class NixView(QMainWindow): file_menu.addAction(self._file_open_action) file_menu.addAction(self._file_close_action) file_menu.addAction(self._quit_action) + + plot_menu = menu.addMenu("&Plot") + plot_menu.addAction(self._plot_action) + plot_menu.addAction(self._table_action) + self.setMenuBar(menu) def _update_recent_files(self, filename): @@ -81,6 +108,7 @@ class NixView(QMainWindow): del settings def open_file(self, filename): + self._current_item = None success, msg = self._file_handler.open(filename) self.statusBar().showMessage(msg, 5000) if success: @@ -99,6 +127,7 @@ class NixView(QMainWindow): def on_file_close(self, s): self._file_handler.close() self._cw.reset() + self._current_item = None self._file_close_action.setEnabled(False) self.statusBar().showMessage("Successfully closed current file", 1000)