OpenMS  2.7.0
Plot1DWidget.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2021.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg$
32 // $Authors: Marc Sturm $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 // OpenMS_GUI config
38 #include <OpenMS/VISUAL/OpenMS_GUIConfig.h>
39 
40 // STL
41 #include <vector>
42 
43 // OpenMS
46 
47 class QAction;
48 class QSpacerItem;
49 
50 namespace OpenMS
51 {
52  class Plot1DCanvas;
53 
65  class OPENMS_GUI_DLLAPI Plot1DWidget :
66  public PlotWidget
67  {
68  Q_OBJECT
69 
70 public:
72  Plot1DWidget(const Param & preferences, QWidget * parent = nullptr);
74  ~Plot1DWidget() override;
75 
77  inline Plot1DCanvas * canvas()
78  {
79  return static_cast<Plot1DCanvas *>(canvas_);
80  }
81 
82  // Docu in base class
83  void hideAxes() override;
84 
85  // Docu in base class
86  void showLegend(bool show) override;
87 
89  void toggleMirrorView(bool mirror);
90 
92  void performAlignment(Size layer_index_1, Size layer_index_2, const Param & param);
93 
96 
97  // Docu in base class
98  void saveAsImage() override;
99 
100  // Docu in base class
101  virtual void renderForImage(QPainter& painter);
102 
103 signals:
105  void visibleAreaChanged(double, double);
106 
109 
112 
115 
118 
119 public slots:
120  // Docu in base class
121  void showGoToDialog() override;
122 
123 protected:
124  // Docu in base class
126  // Docu in base class
127  Math::Histogram<> createMetaDistribution_(const String & name) const override;
128  // Docu in base class
129  void recalculateAxes_() override;
130 
133 
135  QSpacerItem * spacer_;
136 
137  };
138 } // namespace OpenMS
139 
Widget that represents an axis of a graph.
Definition: AxisWidget.h:65
Representation of a histogram.
Definition: Histogram.h:64
Management and storage of parameters / INI files.
Definition: Param.h:70
Canvas for visualization of one or several spectra.
Definition: Plot1DCanvas.h:69
Widget for visualization of several spectra.
Definition: Plot1DWidget.h:67
void recalculateAxes_() override
recalculates the Axis ticks
AxisWidget * flipped_y_axis_
The second y-axis for the mirror view.
Definition: Plot1DWidget.h:132
Plot1DWidget(const Param &preferences, QWidget *parent=nullptr)
Default constructor.
QSpacerItem * spacer_
Spacer between the two y-axes in mirror mode (needed when visualizing an alignment)
Definition: Plot1DWidget.h:135
Math::Histogram createIntensityDistribution_() const override
creates the intensity distribution of the current layer
Plot1DCanvas * canvas()
This method is overwritten to make the class specific members accessible.
Definition: Plot1DWidget.h:77
void showCurrentPeaksAsIonMobility()
Requests to display the whole spectrum in ion mobility view.
void showCurrentPeaksAs2D()
Requests to display the whole spectrum in 2D view.
void toggleMirrorView(bool mirror)
Switches to mirror view, displays another y-axis for the second spectrum.
void showCurrentPeaksAsDIA()
Requests to display a full DIA window.
~Plot1DWidget() override
Destructor.
Math::Histogram createMetaDistribution_(const String &name) const override
creates the meta data distribution of value name of the current layer
void performAlignment(Size layer_index_1, Size layer_index_2, const Param &param)
Performs an alignment of the layers with layer_index_1 and layer_index_2.
void saveAsImage() override
Saves the widget's content as image file.
void visibleAreaChanged(double, double)
Is emitted whenever the visible area changes.
void showCurrentPeaksAs3D()
Requests to display the whole spectrum in 3D view.
void showGoToDialog() override
virtual void renderForImage(QPainter &painter)
void hideAxes() override
Hides x-axis and y-axis.
void showLegend(bool show) override
Shows/hides axis labels.
void resetAlignment()
Resets the alignment.
Base class for spectrum widgets.
Definition: PlotWidget.h:83
A more convenient string class.
Definition: String.h:61
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47