Mantid
Loading...
Searching...
No Matches
WorkspaceTreeWidgetSimple.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
11
12#include <QMenu>
13#include <QWidget>
14
15class QTreeWidgetItem;
16class QSignalMapper;
17
18namespace Mantid::API {
19class Workspace;
20}
21
23
24using MenuActions = std::vector<QAction *>;
25
30
31class MantidDisplayBase;
32class MantidTreeWidget;
33
40 Q_OBJECT
41public:
42 explicit WorkspaceTreeWidgetSimple(bool viewOnly = false, QWidget *parent = nullptr);
44
45 // Context Menu Handlers
46 void popupContextMenu() override;
47 void setOverplotDisabled(bool disabled);
48
49signals:
50 void plotSpectrumClicked(const QStringList &workspaceNames);
51 void plotBinClicked(const QStringList &workspaceNames);
52 void overplotSpectrumClicked(const QStringList &workspaceNames);
53 void plotSpectrumWithErrorsClicked(const QStringList &workspaceNames);
54 void overplotSpectrumWithErrorsClicked(const QStringList &workspaceNames);
55 void plotColorfillClicked(const QStringList &workspaceNames);
56 void sampleLogsClicked(const QStringList &workspaceName);
57 void sliceViewerClicked(const QStringList &workspaceName);
58 void showInstrumentClicked(const QStringList &workspaceNames);
59 void showNewInstrumentViewClicked(const QStringList &workspaceNames);
60 void showDataClicked(const QStringList &workspaceNames);
61 void showAlgorithmHistoryClicked(const QStringList &workspaceNames);
62 void showDetectorsClicked(const QStringList &workspaceNames);
63 void plotAdvancedClicked(const QStringList &workspaceNames);
64 void plotSurfaceClicked(const QStringList &workspaceNames);
65 void plotWireframeClicked(const QStringList &workspaceNames);
66 void plotContourClicked(const QStringList &workspaceNames);
67 void sampleMaterialClicked(const QStringList &workspaceNames);
68 void sampleShapeClicked(const QStringList &workspaceNames);
69 void superplotClicked(const QStringList &workspaceNames);
70 void superplotWithErrsClicked(const QStringList &workspaceNames);
71 void superplotBinsClicked(const QStringList &workspaceNames);
72 void superplotBinsWithErrsClicked(const QStringList &workspaceNames);
74
75 void workspaceDoubleClicked(const QString &workspaceName);
77
78 // Signal when plot MDHistogram clicked
79 void plotMDHistoClicked(const QStringList &workspaceNames);
80 void overplotMDHistoClicked(const QStringList &workspaceNames);
81 void plotMDHistoWithErrorsClicked(const QStringList &workspaceNames);
82 void overplotMDHistoWithErrorsClicked(const QStringList &workspaceNames);
83
84private slots:
85 void onPlotSpectrumClicked();
86 void onPlotBinClicked();
87 void onOverplotSpectrumClicked();
88 void onPlotSpectrumWithErrorsClicked();
89 void onOverplotSpectrumWithErrorsClicked();
90 void onPlotColorfillClicked();
91 void onSampleLogsClicked();
92 void onSliceViewerClicked();
93 void onShowInstrumentClicked();
94 void onShowNewInstrumentViewClicked();
95 void onShowDataClicked();
96 void onShowAlgorithmHistoryClicked();
97 void onShowDetectorsClicked();
98 void onPlotAdvancedClicked();
99 void onPlotSurfaceClicked();
100 void onPlotWireframeClicked();
101 void onPlotContourClicked();
102 void onPlotMDHistoWorkspaceClicked(); // Linked to plotMDHistoClicked
103 void onOverPlotMDHistoWorkspaceClicked();
104 void onPlotMDHistoWorkspaceWithErrorsClicked();
105 void onOverPlotMDHistoWorkspaceWithErrorsClicked();
106 void onSampleMaterialClicked();
107 void onSampleShapeClicked();
108 void onSuperplotClicked();
109 void onSuperplotWithErrsClicked();
110 void onSuperplotBinsClicked();
111 void onSuperplotBinsWithErrsClicked();
112
113private:
114 QMenu *createWorkspaceContextMenu(const QStringList &selectedWorkspaces);
115
116 std::tuple<MenuActions, PlotMenuActions> createMatrixWorkspaceActions(const Mantid::API::MatrixWorkspace &workspace);
117 MenuActions createTableWorkspaceActions(const Mantid::API::ITableWorkspace &workspace);
118 std::tuple<MenuActions, PlotMenuActions> createMDWorkspaceActions(const Mantid::API::IMDWorkspace &workspace);
119 std::tuple<MenuActions, PlotMenuActions> createWorkspaceGroupActions(const Mantid::API::WorkspaceGroup &workspace);
120 void addGeneralWorkspaceActions(QMenu *menu) const;
121
122 PlotMenuActions createMatrixWorkspacePlotMenu(bool hasMultipleBins);
123
124 MenuActions intersectionOfActions(std::vector<MenuActions> actionVecs);
125
126 QAction *m_plotSpectrum, *m_plotBin, *m_overplotSpectrum, *m_plotSpectrumWithErrs, *m_overplotSpectrumWithErrs,
127 *m_plotColorfill, *m_sampleLogs, *m_sliceViewer, *m_showInstrument, *m_showData, *m_showAlgorithmHistory,
128 *m_showDetectors, *m_plotAdvanced, *m_plotSurface, *m_plotWireframe, *m_plotContour, *m_plotMDHisto1D,
129 *m_overplotMDHisto1D, *m_plotMDHisto1DWithErrs, *m_overplotMDHisto1DWithErrs, *m_sampleMaterial, *m_sampleShape,
130 *m_superplot, *m_superplotWithErrs, *m_superplotBins, *m_superplotBinsWithErrs, *m_showNewInstrumentView,
132};
133} // namespace MantidQt::MantidWidgets
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
IPeaksWorkspace_sptr workspace
WorkspaceTreeWidget implementation for the Workbench - required for some function overides.
void overplotMDHistoClicked(const QStringList &workspaceNames)
void plotBinClicked(const QStringList &workspaceNames)
void sliceViewerClicked(const QStringList &workspaceName)
void superplotClicked(const QStringList &workspaceNames)
void plotAdvancedClicked(const QStringList &workspaceNames)
void superplotWithErrsClicked(const QStringList &workspaceNames)
void plotMDHistoWithErrorsClicked(const QStringList &workspaceNames)
void showAlgorithmHistoryClicked(const QStringList &workspaceNames)
void overplotSpectrumClicked(const QStringList &workspaceNames)
void superplotBinsClicked(const QStringList &workspaceNames)
void plotMDHistoClicked(const QStringList &workspaceNames)
void overplotSpectrumWithErrorsClicked(const QStringList &workspaceNames)
void showDataClicked(const QStringList &workspaceNames)
void workspaceDoubleClicked(const QString &workspaceName)
void overplotMDHistoWithErrorsClicked(const QStringList &workspaceNames)
void plotSurfaceClicked(const QStringList &workspaceNames)
void plotSpectrumClicked(const QStringList &workspaceNames)
void sampleMaterialClicked(const QStringList &workspaceNames)
void superplotBinsWithErrsClicked(const QStringList &workspaceNames)
void showNewInstrumentViewClicked(const QStringList &workspaceNames)
void plotColorfillClicked(const QStringList &workspaceNames)
void sampleLogsClicked(const QStringList &workspaceName)
void plotWireframeClicked(const QStringList &workspaceNames)
void showInstrumentClicked(const QStringList &workspaceNames)
void showDetectorsClicked(const QStringList &workspaceNames)
void plotContourClicked(const QStringList &workspaceNames)
void sampleShapeClicked(const QStringList &workspaceNames)
void plotSpectrumWithErrorsClicked(const QStringList &workspaceNames)
Basic MD Workspace Abstract Class.
ITableWorkspace is an implementation of Workspace in which the data are organised in columns of same ...
Base MatrixWorkspace Abstract Class.
Class to hold a set of workspaces.
std::vector< QAction * > MenuActions