[main] actions for table and plot display

This commit is contained in:
Jan Grewe 2021-01-01 17:07:23 +01:00
parent 6ce5ab5d5f
commit ff8bb6a58b

View File

@ -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)