Skip to content
Snippets Groups Projects
Commit 98c0d28a authored by WHITFIELDRE email's avatar WHITFIELDRE email Committed by Peterson, Peter
Browse files

Add SliceViewer to workbench menu

parent a0ab675a
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,7 @@ from mantid.kernel import logger
from mantidqt.plotting.functions import can_overplot, pcolormesh, plot, plot_from_names
from mantidqt.widgets.instrumentview.presenter import InstrumentViewPresenter
from mantidqt.widgets.samplelogs.presenter import SampleLogs
from mantidqt.widgets.sliceviewer.presenter import SliceViewer
from mantidqt.widgets.workspacedisplay.matrix.presenter import MatrixWorkspaceDisplay
from mantidqt.widgets.workspacedisplay.table.presenter import TableWorkspaceDisplay
from mantidqt.widgets.workspacewidget.algorithmhistorywindow import AlgorithmHistoryWindow
......@@ -54,6 +55,7 @@ class WorkspaceWidget(PluginWidget):
errors=True, overplot=True))
self.workspacewidget.plotColorfillClicked.connect(self._do_plot_colorfill)
self.workspacewidget.sampleLogsClicked.connect(self._do_sample_logs)
self.workspacewidget.sliceViewerClicked.connect(self._do_slice_viewer)
self.workspacewidget.showDataClicked.connect(self._do_show_data)
self.workspacewidget.showInstrumentClicked.connect(self._do_show_instrument)
self.workspacewidget.showAlgorithmHistoryClicked.connect(self._do_show_algorithm_history)
......@@ -120,6 +122,21 @@ class WorkspaceWidget(PluginWidget):
logger.debug("{}: {}".format(type(exception).__name__,
exception))
def _do_slice_viewer(self, names):
"""
Show the sliceviewer window for the given workspaces
:param names: A list of workspace names
"""
for ws in self._ads.retrieveWorkspaces(names, unrollGroups=True):
try:
SliceViewer(ws=ws, parent=self)
except Exception as exception:
logger.warning("Could not open slice viewer for workspace '{}'."
"".format(ws.name()))
logger.debug("{}: {}".format(type(exception).__name__,
exception))
def _do_show_instrument(self, names):
"""
Show an instrument widget for the given workspaces
......
......@@ -298,6 +298,7 @@ signals:
void overplotSpectrumWithErrorsClicked(const QStringList & workspaceNames);
void plotColorfillClicked(const QStringList &workspaceNames);
void sampleLogsClicked(const QStringList &workspaceNames);
void sliceViewerClicked(const QStringList &workspaceNames);
void showInstrumentClicked(const QStringList &workspaceNames);
void showAlgorithmHistoryClicked(const QStringList &workspaceNames);
};
......
......@@ -16,9 +16,7 @@ class SliceViewer(object):
def __init__(self, ws, parent=None):
self.model = SliceViewerModel(ws)
self.view = SliceViewerView(self.model.get_dimensions_info(), parent)
self.view.dimensionsChanged.connect(self.new_plot)
self.view.valueChanged.connect(self.update_plot_data)
self.view = SliceViewerView(self, self.model.get_dimensions_info(), parent)
self.new_plot()
......
......@@ -9,27 +9,26 @@
#
from __future__ import (absolute_import, division, print_function)
from qtpy.QtWidgets import QWidget, QVBoxLayout
from qtpy.QtCore import Signal, Qt
from qtpy.QtCore import Qt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import FigureCanvas, NavigationToolbar2QT as NavigationToolbar
from .dimensionwidget import DimensionWidget
class SliceViewerView(QWidget):
dimensionsChanged = Signal()
valueChanged = Signal()
def __init__(self, dims_info, parent=None):
def __init__(self, presenter, dims_info, parent=None):
super(SliceViewerView, self).__init__(parent)
self.presenter = presenter
self.setWindowTitle("SliceViewer")
self.setWindowFlags(Qt.Window)
self.setAttribute(Qt.WA_DeleteOnClose, True)
# Dimension widget
self.dimensions = DimensionWidget(dims_info, parent=self)
self.dimensions.dimensionsChanged.connect(self.dimensionsChanged)
self.dimensions.valueChanged.connect(self.valueChanged)
self.dimensions.dimensionsChanged.connect(self.presenter.new_plot)
self.dimensions.valueChanged.connect(self.presenter.update_plot_data)
# MPL figure
self.fig = Figure()
......
......@@ -48,6 +48,7 @@ signals:
void overplotSpectrumWithErrorsClicked(const QStringList &workspaceNames);
void plotColorfillClicked(const QStringList &workspaceNames);
void sampleLogsClicked(const QStringList &workspaceName);
void sliceViewerClicked(const QStringList &workspaceName);
void showInstrumentClicked(const QStringList &workspaceNames);
void showDataClicked(const QStringList &workspaceNames);
void showAlgorithmHistoryClicked(const QStringList &workspaceNames);
......@@ -62,6 +63,7 @@ private slots:
void onOverplotSpectrumWithErrorsClicked();
void onPlotColorfillClicked();
void onSampleLogsClicked();
void onSliceViewerClicked();
void onShowInstrumentClicked();
void onShowDataClicked();
void onShowAlgorithmHistoryClicked();
......@@ -69,7 +71,7 @@ private slots:
private:
QAction *m_plotSpectrum, *m_overplotSpectrum, *m_plotSpectrumWithErrs,
*m_overplotSpectrumWithErrs, *m_plotColorfill, *m_sampleLogs,
*m_showInstrument, *m_showData, *m_showAlgorithmHistory;
*m_sliceViewer, *m_showInstrument, *m_showData, *m_showAlgorithmHistory;
};
} // namespace MantidWidgets
} // namespace MantidQt
......
......@@ -35,6 +35,7 @@ WorkspaceTreeWidgetSimple::WorkspaceTreeWidgetSimple(bool viewOnly,
new QAction("Overplot spectrum with errors...", this)),
m_plotColorfill(new QAction("Colorfill", this)),
m_sampleLogs(new QAction("Show Sample Logs", this)),
m_sliceViewer(new QAction("Show Slice Viewer", this)),
m_showInstrument(new QAction("Show Instrument", this)),
m_showData(new QAction("Show Data", this)),
m_showAlgorithmHistory(new QAction("Show History", this)) {
......@@ -55,6 +56,8 @@ WorkspaceTreeWidgetSimple::WorkspaceTreeWidgetSimple(bool viewOnly,
connect(m_plotColorfill, SIGNAL(triggered()), this,
SLOT(onPlotColorfillClicked()));
connect(m_sampleLogs, SIGNAL(triggered()), this, SLOT(onSampleLogsClicked()));
connect(m_sliceViewer, SIGNAL(triggered()), this,
SLOT(onSliceViewerClicked()));
connect(m_showInstrument, SIGNAL(triggered()), this,
SLOT(onShowInstrumentClicked()));
connect(m_showData, SIGNAL(triggered()), this, SLOT(onShowDataClicked()));
......@@ -116,6 +119,7 @@ void WorkspaceTreeWidgetSimple::popupContextMenu() {
} else if (boost::dynamic_pointer_cast<IMDWorkspace>(workspace)) {
menu->addAction(m_showAlgorithmHistory);
menu->addAction(m_sampleLogs);
menu->addAction(m_sliceViewer);
}
menu->addSeparator();
......@@ -154,6 +158,10 @@ void WorkspaceTreeWidgetSimple::onSampleLogsClicked() {
emit sampleLogsClicked(getSelectedWorkspaceNamesAsQList());
}
void WorkspaceTreeWidgetSimple::onSliceViewerClicked() {
emit sliceViewerClicked(getSelectedWorkspaceNamesAsQList());
}
void WorkspaceTreeWidgetSimple::onShowInstrumentClicked() {
emit showInstrumentClicked(getSelectedWorkspaceNamesAsQList());
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment