OpenMS
PlotCanvas.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Timo Sachsenberg $
6 // $Authors: Marc Sturm $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 // OpenMS_GUI config
12 #include <OpenMS/VISUAL/OpenMS_GUIConfig.h>
13 
14 //OpenMS
15 #include <OpenMS/CONCEPT/Types.h>
22 
23 //QT
24 #include <QtWidgets>
25 #include <QRubberBand>
26 
27 class QWheelEvent;
28 class QKeyEvent;
29 class QMouseEvent;
30 class QFocusEvent;
31 class QMenu;
32 
33 //STL
34 #include <stack>
35 #include <vector>
36 
37 namespace OpenMS
38 {
39  class PlotWidget;
40  class LayerDataChrom;
41  class LayerDataPeak;
42  class LayerDataFeature;
43  class LayerDataConsensus;
44 
45  using LayerDataBaseUPtr = std::unique_ptr<LayerDataBase>;
46  using LayerDataChromUPtr = std::unique_ptr<LayerDataChrom>;
47  using LayerDataPeakUPtr = std::unique_ptr<LayerDataPeak>;
48  using LayerDataFeatureUPtr = std::unique_ptr<LayerDataFeature>;
49  using LayerDataConsensusUPtr = std::unique_ptr<LayerDataConsensus>;
50 
56  class LayerStack
57  {
58  public:
61  void addLayer(LayerDataBaseUPtr new_layer);
62 
63  const LayerDataBase& getLayer(const Size index) const;
64 
65  LayerDataBase& getLayer(const Size index);
66 
68 
70 
72  void setCurrentLayer(Size index);
73 
75 
76  bool empty() const;
77 
79 
80  void removeLayer(Size layer_index);
81 
83 
84  protected:
85  std::vector<LayerDataBaseUPtr> layers_;
86  private:
88  };
89 
119  class OPENMS_GUI_DLLAPI PlotCanvas : public QWidget, public DefaultParamHandler
120  {
121  Q_OBJECT
122 
123  public:
126 
141 
150 
155 
158 
162 
164 
166 
169  {
172  AM_MEASURE
173  };
174 
177  {
181  IM_LOG
182  };
183 
185 
187  PlotCanvas(const Param& preferences, QWidget* parent = nullptr);
188 
190  ~PlotCanvas() override;
191 
199  inline void setPlotWidget(PlotWidget* widget)
200  {
201  spectrum_widget_ = widget;
202  }
203 
210  inline PlotWidget* getPlotWidget() const
211  {
212  return spectrum_widget_;
213  }
214 
221  inline Int getActionMode() const
222  {
223  return action_mode_;
224  }
225 
234  {
235  return intensity_mode_;
236  }
237 
248  {
249  intensity_mode_ = mod;
250  intensityModeChange_();
251  }
252 
258  inline bool gridLinesShown() const
259  {
260  return show_grid_;
261  }
262 
264  const LayerDataBase& getLayer(Size index) const
265  {
266  return layers_.getLayer(index);
267  }
270  {
271  return layers_.getLayer(index);
272  }
273 
276  {
277  return layers_.getCurrentLayer();
278  }
281  {
282  return layers_.getCurrentLayer();
283  }
284 
286  inline Size getCurrentLayerIndex() const
287  {
288  return layers_.getCurrentLayerIndex();
289  }
290 
293  {
294  return getLayerFlag(layers_.getCurrentLayerIndex(), f);
295  }
296 
298  void setLayerFlag(LayerDataBase::Flags f, bool value)
299  {
300  setLayerFlag(layers_.getCurrentLayerIndex(), f, value);
301  }
302 
305  {
306  return layers_.getLayer(layer).flags.test(f);
307  }
308 
310  void setLayerFlag(Size layer, LayerDataBase::Flags f, bool value)
311  {
312  // abort if there are no layers
313  if (layers_.empty())
314  return;
315 
316  layers_.getLayer(layer).flags.set(f, value);
317  update_buffer_ = true;
318  update();
319  }
320 
322  {
323  // abort if there are no layers
324  if (layers_.empty())
325  return;
326  layers_.getCurrentLayer().label = label;
327  update_buffer_ = true;
328  update();
329  }
330 
337  {
338  return visible_area_;
339  }
340 
343  bool isVisible(const PointOnAxis& p) const
344  {
345  return visible_area_.getAreaXY().encloses(p);
346  }
347 
351  {
352  int X_pixel_count = buffer_.width();
353  int Y_pixel_count = buffer_.height();
354  PixelArea area(&unit_mapper_);
355  area.setArea(AreaXYType(0, 0, X_pixel_count, Y_pixel_count));
356  return area;
357  }
358 
362  virtual void initFilters(const DataFilters& filters);
363 
367  virtual void setFilters(const DataFilters& filters);
368 
376  inline Size getLayerCount() const
377  {
378  return layers_.getLayerCount();
379  }
380 
382  virtual void activateLayer(Size layer_index) = 0;
384  virtual void removeLayer(Size layer_index) = 0;
385 
388  {
389  for (Size i = getLayerCount(); i > 0; --i)
390  {
391  removeLayer(i - 1);
392  }
393  visible_area_.clear(); // reset visible area
394  }
395 
397  bool addLayer(std::unique_ptr<LayerData1DBase> layer);
398 
412  const String& filename = "",
413  const String& caption = "",
414  const bool use_noise_cutoff = false);
415 
426  bool addChromLayer(const ExperimentSharedPtrType& map, ODExperimentSharedPtrType od_map, const String& filename = "", const String& caption = "");
427 
428 
438  bool addLayer(FeatureMapSharedPtrType map, const String& filename = "", const String& caption = "");
439 
449  bool addLayer(ConsensusMapSharedPtrType map, const String& filename = "", const String& caption = "");
451 
463  bool addLayer(std::vector<PeptideIdentification>& peptides, const String& filename = "", const String& caption = "");
464 
466  inline float getCurrentMinIntensity() const
467  {
468  return layers_.getCurrentLayer().getMinIntensity();
469  }
470 
472  inline float getCurrentMaxIntensity() const
473  {
474  return layers_.getCurrentLayer().getMaxIntensity();
475  }
476 
478  inline float getMinIntensity(Size index) const
479  {
480  return getLayer(index).getMinIntensity();
481  }
482 
484  inline float getMaxIntensity(Size index) const
485  {
486  return getLayer(index).getMaxIntensity();
487  }
488 
490  void setLayerName(Size i, const String& name);
491 
494 
496  inline void setCurrentLayerParameters(const Param& param)
497  {
498  getCurrentLayer().param = param;
499  emit preferencesChange();
500  }
501 
507  virtual const RangeType& getDataRange() const;
508 
514  double getSnapFactor();
515 
517  double getPercentageFactor() const;
518 
520  virtual void showCurrentLayerPreferences() = 0;
521 
528  virtual void showMetaData(bool modifiable = false, Int index = -1);
529 
530  public slots:
531 
538  void changeVisibility(Size i, bool b);
539 
546  void changeLayerFilterState(Size i, bool b);
547 
554  void showGridLines(bool show);
555 
563  virtual void resetZoom(bool repaint = true);
564 
572  void setVisibleArea(const VisibleArea& area);
573 
581  void setVisibleArea(const RangeAllType& area);
582 
590  void setVisibleArea(const AreaXYType& area);
591 
597  void setVisibleAreaX(double min, double max);
598 
604  void setVisibleAreaY(double min, double max);
605 
611  void saveCurrentLayer(bool visible);
612 
618  virtual void horizontalScrollBarChange(int value);
619 
625  virtual void verticalScrollBarChange(int value);
626 
628  void setAdditionalContextMenu(QMenu * menu);
629 
631  virtual void updateLayer(Size i) = 0;
632 
633 
639  {
640  return AreaXYType({0, 0}, {(float)width(), (float)height()});
641  }
642 
647  const DimMapper<2>& getMapper() const;
648 
653  void setMapper(const DimMapper<2>& mapper);
654 
655  signals:
657  void layerModficationChange(Size layer, bool modified);
658 
661 
664 
671  void visibleAreaChanged(const VisibleArea& area);
672 
674  void sendCursorStatus(const String& x_value, const String& y_value);
675 
677  void sendStatusMessage(std::string message, OpenMS::UInt time);
678 
681 
683  void updateVScrollbar(float f_min, float disp_min, float disp_max, float f_max);
684 
686  void updateHScrollbar(float f_min, float disp_min, float disp_max, float f_max);
687 
690 
693 
696 
697 protected slots:
698 
701 
702 protected:
703 
705  void drawText_(QPainter & painter, const QStringList& text);
706 
708  double getIdentificationMZ_(const Size layer_index,
709  const PeptideIdentification & peptide) const;
710 
712  virtual bool finishAdding_() = 0;
713 
716  void popIncompleteLayer_(const QString& error_message = "");
717 
719 
720  void resizeEvent(QResizeEvent * e) override;
721  void wheelEvent(QWheelEvent * e) override;
722  void keyPressEvent(QKeyEvent * e) override;
723  void keyReleaseEvent(QKeyEvent * e) override;
724  void focusOutEvent(QFocusEvent * e) override;
725  void leaveEvent(QEvent * e) override;
726  void enterEvent(QEnterEvent * e) override;
728 
730  virtual void intensityModeChange_();
731 
734 
745  virtual void changeVisibleArea_(VisibleArea new_area, bool repaint = true, bool add_to_stack = false);
746 
752  virtual void recalculateSnapFactor_();
753 
755 
756  virtual void zoom_(int x, int y, bool zoom_in);
759  void zoomBack_();
761  virtual void zoomForward_();
763  void zoomAdd_(const VisibleArea& area);
765  void zoomClear_();
767 
769 
770  virtual void translateLeft_(Qt::KeyboardModifiers m);
773  virtual void translateRight_(Qt::KeyboardModifiers m);
775  virtual void translateForward_();
777  virtual void translateBackward_();
779 
785  virtual void updateScrollbars_();
786 
796  inline PointXYType widgetToData_(double x, double y)
797  {
798  const auto& xy = visible_area_.getAreaXY();
799  return PointXYType(
800  xy.minX() + x / width() * xy.width(),
801  xy.minY() + (height() - y) / height() * xy.height()
802  );
803  }
804 
806  inline PointXYType widgetToData_(const QPoint& pos)
807  {
808  return widgetToData_(pos.x(), pos.y());
809  }
810 
812  virtual void paintGridLines_(QPainter & painter);
813 
815  QImage buffer_;
816 
819 
821  ActionModes action_mode_ = AM_TRANSLATE;
822 
824  IntensityModes intensity_mode_ = IM_NONE;
825 
828 
836 
842  virtual void recalculateRanges_();
843 
848 
850  bool show_grid_ = true;
851 
853  std::vector<VisibleArea> zoom_stack_;
855  std::vector<VisibleArea>::iterator zoom_pos_ = zoom_stack_.end();
856 
866  virtual void update_(const char* caller_name);
867 
869  void modificationStatus_(Size layer_index, bool modified);
870 
872  bool update_buffer_ = false;
873 
875  PlotWidget* spectrum_widget_ = nullptr;
876 
879 
886  double percentage_factor_ = 1.0;
887 
895  std::vector<double> snap_factors_;
896 
898  QRubberBand rubber_band_;
899 
901  QMenu* context_add_ = nullptr;
902 
904  bool show_timing_ = false;
905 
910 
913  {
914  std::set<DataProcessing::ProcessingAction> actions;
915  actions.insert(action);
916 
917  DataProcessingPtr p = boost::shared_ptr<DataProcessing>(new DataProcessing);
918  //actions
919  p->setProcessingActions(actions);
920  //software
921  p->getSoftware().setName("PlotCanvas");
922  //version
923  p->getSoftware().setVersion(VersionInfo::getVersion());
924  //time
925  p->setCompletionTime(DateTime::now());
926 
927  for (Size i = 0; i < map.size(); ++i)
928  {
929  map[i].getDataProcessing().push_back(p);
930  }
931  }
932 
933  };
934 }
Definition: DimMapper.h:802
const Area & setArea(const RangeAllType &data)
Set the area using unit data (RT, m/z, ...)
Definition: DimMapper.h:848
A container for consensus elements.
Definition: ConsensusMap.h:66
DataFilter array providing some convenience functions.
Definition: DataFilters.h:27
Description of the applied preprocessing steps.
Definition: DataProcessing.h:27
ProcessingAction
Definition: DataProcessing.h:33
static DateTime now()
Returns the current date and time.
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:66
Allows dynamical switching (at runtime) between a dimension (RT, m/z, int, IM, etc) and X,...
Definition: DimMapper.h:619
A container for features.
Definition: FeatureMap.h:80
Class that stores the data for one layer.
Definition: LayerDataBase.h:169
Definition: PlotCanvas.h:57
Size getLayerCount() const
Size getCurrentLayerIndex() const
Size current_layer_
Definition: PlotCanvas.h:87
LayerDataBase & getCurrentLayer()
bool empty() const
LayerDataBase & getLayer(const Size index)
void removeLayer(Size layer_index)
const LayerDataBase & getLayer(const Size index) const
void setCurrentLayer(Size index)
throws Exception::IndexOverflow unless index is smaller than getLayerCount()
void addLayer(LayerDataBaseUPtr new_layer)
const LayerDataBase & getCurrentLayer() const
std::vector< LayerDataBaseUPtr > layers_
Definition: PlotCanvas.h:85
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:48
Size size() const noexcept
The number of spectra.
Definition: MSExperiment.h:123
The representation of a 1D spectrum.
Definition: MSSpectrum.h:44
ContainerType::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSSpectrum.h:110
Management and storage of parameters / INI files.
Definition: Param.h:44
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:28
Represents the set of candidates (SpectrumMatches) identified for a single precursor spectrum.
Definition: PeptideIdentification.h:63
Base class for visualization canvas classes.
Definition: PlotCanvas.h:120
void setVisibleAreaX(double min, double max)
Set only the visible area for the x axis; other axes are untouched.
virtual void translateBackward_()
Translation bound to the 'Down' key.
float getMaxIntensity(Size index) const
Returns the maximum intensity of the layer with index index.
Definition: PlotCanvas.h:484
float getMinIntensity(Size index) const
Returns the minimum intensity of the layer with index index.
Definition: PlotCanvas.h:478
float getCurrentMinIntensity() const
Returns the minimum intensity of the active layer.
Definition: PlotCanvas.h:466
virtual void initFilters(const DataFilters &filters)
Sets filters, but does not repaint (useful when setting up a new layer)
void addDataProcessing_(PeakMap &map, DataProcessing::ProcessingAction action) const
Data processing setter for peak maps.
Definition: PlotCanvas.h:912
void layerActivated(QWidget *w)
Signal emitted whenever a new layer is activated within the current window.
void setLayerName(Size i, const String &name)
Sets the name of layer i.
~PlotCanvas() override
Destructor.
bool addLayer(std::vector< PeptideIdentification > &peptides, const String &filename="", const String &caption="")
Add an identification data layer.
std::vector< VisibleArea > zoom_stack_
The zoom stack.
Definition: PlotCanvas.h:853
LayerStack layers_
Layer data.
Definition: PlotCanvas.h:827
virtual void recalculateRanges_()
Recalculates the overall_data_range_.
std::vector< double > snap_factors_
Intensity scaling factor for 'snap to maximum intensity mode'.
Definition: PlotCanvas.h:895
double getIdentificationMZ_(const Size layer_index, const PeptideIdentification &peptide) const
Returns the m/z value of an identification depending on the m/z source of the layer (precursor mass/t...
PlotCanvas(const Param &preferences, QWidget *parent=nullptr)
Default constructor.
LayerDataBase::ConstExperimentSharedPtrType ConstExperimentSharedPtrType
Definition: PlotCanvas.h:131
String getLayerName(Size i)
Gets the name of layer i.
virtual void horizontalScrollBarChange(int value)
Notifies the canvas that the horizontal scrollbar has been moved.
SpectrumType::PeakType PeakType
Peak type.
Definition: PlotCanvas.h:147
QImage buffer_
Buffer that stores the actual peak information.
Definition: PlotCanvas.h:815
void setMapper(const DimMapper< 2 > &mapper)
Set a new mapper for the canvas.
DimMapper< 2 > unit_mapper_
Mapper for X and Y axis.
Definition: PlotCanvas.h:818
PeakIndex selected_peak_
selected peak
Definition: PlotCanvas.h:907
double getPercentageFactor() const
Returns the percentage factor.
void setIntensityMode(IntensityModes mod)
Sets the intensity mode.
Definition: PlotCanvas.h:247
RangeType overall_data_range_
Stores the data range (m/z, RT and intensity) of all layers.
Definition: PlotCanvas.h:847
void recalculateAxes()
Forces recalculation of axis ticks in the connected widget.
LayerDataBase::ConsensusMapSharedPtrType ConsensusMapSharedPtrType
Main managed data type (consensus features)
Definition: PlotCanvas.h:140
Size getLayerCount() const
Returns the number of layers.
Definition: PlotCanvas.h:376
virtual void updateLayer(Size i)=0
Updates layer i when the data in the corresponding file changes.
bool gridLinesShown() const
Returns if the grid is currently shown.
Definition: PlotCanvas.h:258
void setVisibleArea(const VisibleArea &area)
Sets the visible area.
SpectrumType::ConstIterator SpectrumConstIteratorType
Spectrum iterator type (iterates over peaks)
Definition: PlotCanvas.h:145
LayerDataBase::FeatureMapSharedPtrType FeatureMapSharedPtrType
Main managed data type (features)
Definition: PlotCanvas.h:136
virtual void updateScrollbars_()
Updates the scroll bars.
Size getCurrentLayerIndex() const
returns the index of the active layer
Definition: PlotCanvas.h:286
void setLabel(LayerDataBase::LabelType label)
Definition: PlotCanvas.h:321
Int getActionMode() const
Returns the action mode.
Definition: PlotCanvas.h:221
void setVisibleAreaY(double min, double max)
Set only the visible area for the y axis; other axes are untouched.
const DimMapper< 2 > & getMapper() const
Get Mapper to translate between values for axis (X/Y) and units (m/z, RT, intensity,...
virtual void activateLayer(Size layer_index)=0
change the active layer (the one that is used for selecting and so on)
const LayerDataBase & getLayer(Size index) const
returns the layer data with index index
Definition: PlotCanvas.h:264
void updateCursor_()
Updates the cursor according to the current action mode.
void sendCursorStatus(const String &x_value, const String &y_value)
Emitted when the cursor position changes (for displaying e.g. in status bar)
virtual void removeLayer(Size layer_index)=0
removes the layer with index layer_index
virtual void verticalScrollBarChange(int value)
Notifies the canvas that the vertical scrollbar has been moved.
void actionModeChange()
Emitted when the action mode changes.
LayerDataBase & getLayer(Size index)
returns the layer data with index index
Definition: PlotCanvas.h:269
void leaveEvent(QEvent *e) override
void zoomClear_()
Clears the zoom stack and invalidates the current zoom position. After calling this,...
void keyReleaseEvent(QKeyEvent *e) override
void drawText_(QPainter &painter, const QStringList &text)
Draws several lines of text to the upper right corner of the widget.
ExperimentType::SpectrumType SpectrumType
Spectrum type.
Definition: PlotCanvas.h:143
virtual void showMetaData(bool modifiable=false, Int index=-1)
Shows a dialog with the meta data.
virtual void paintGridLines_(QPainter &painter)
Helper function to paint grid lines.
LayerDataBase & getCurrentLayer()
returns the layer data of the active layer
Definition: PlotCanvas.h:280
PointXYType widgetToData_(double x, double y)
Convert widget (pixel) to chart (unit) coordinates.
Definition: PlotCanvas.h:796
void keyPressEvent(QKeyEvent *e) override
void setLayerFlag(LayerDataBase::Flags f, bool value)
sets a layer flag of the current layer
Definition: PlotCanvas.h:298
virtual void zoomForward_()
Go forward in zoom history.
void setAdditionalContextMenu(QMenu *menu)
Sets the additional context menu. If not 0, this menu is added to the context menu of the canvas.
Area< 2 >::AreaXYType AreaXYType
The range of data shown on the X and Y axis (unit depends on runtime config)
Definition: PlotCanvas.h:152
void changeVisibility(Size i, bool b)
change the visibility of a layer
bool getLayerFlag(Size layer, LayerDataBase::Flags f) const
returns a layer flag of the layer layer
Definition: PlotCanvas.h:304
PixelArea getPixelRange() const
Definition: PlotCanvas.h:350
PointXYType widgetToData_(const QPoint &pos)
Calls widgetToData_ with x and y position of pos.
Definition: PlotCanvas.h:806
void wheelEvent(QWheelEvent *e) override
void focusOutEvent(QFocusEvent *e) override
const VisibleArea & getVisibleArea() const
Returns the currently visible area. This is the authority which determines the X and Y axis' scale.
Definition: PlotCanvas.h:336
void visibleAreaChanged(const VisibleArea &area)
Change of the visible area.
void modificationStatus_(Size layer_index, bool modified)
Takes all actions necessary when the modification status of a layer changes (signals etc....
bool addLayer(FeatureMapSharedPtrType map, const String &filename="", const String &caption="")
Add a feature data layer.
virtual void translateForward_()
Translation bound to the 'Up' key.
void zoomBack_()
Go backward in zoom history.
IntensityModes
Display modes of intensity.
Definition: PlotCanvas.h:177
@ IM_NONE
Normal mode: f(x)=x; y-axis shows the maximum of all layers, no scaling.
Definition: PlotCanvas.h:178
@ IM_SNAP
Shows the maximum displayed intensity (across all layers) as if it was the overall maximum intensity.
Definition: PlotCanvas.h:180
@ IM_PERCENTAGE
Shows intensities normalized by each layer's maximum: f(x)=x/max(x)*100.
Definition: PlotCanvas.h:179
LayerDataBase::FeatureMapType FeatureMapType
Main data type (features)
Definition: PlotCanvas.h:134
float getCurrentMaxIntensity() const
Returns the maximum intensity of the active layer.
Definition: PlotCanvas.h:472
void saveCurrentLayer(bool visible)
Saves the current layer data.
AreaXYType canvasPixelArea() const
Get the Area in pixel coordinates of the current canvas for X and Y axis.
Definition: PlotCanvas.h:638
virtual void setFilters(const DataFilters &filters)
Sets the filters applied to the data; and redraws.
const LayerDataBase & getCurrentLayer() const
returns the layer data of the active layer
Definition: PlotCanvas.h:275
void changeLayerFilterState(Size i, bool b)
change if the defined data filters are used
void layerModficationChange(Size layer, bool modified)
Signal emitted whenever the modification status of a layer changes (editing and storing)
virtual void translateRight_(Qt::KeyboardModifiers m)
Translation bound to the 'Right' key.
void setCurrentLayerParameters(const Param &param)
Sets the parameters of the current layer.
Definition: PlotCanvas.h:496
void updateHScrollbar(float f_min, float disp_min, float disp_max, float f_max)
Triggers the update of the horizontal scrollbar.
void sendStatusMessage(std::string message, OpenMS::UInt time)
Emits a status message that should be displayed for time ms. If time is 0 the message should be displ...
virtual void resetZoom(bool repaint=true)
Zooms fully out and resets the zoom stack.
void setVisibleArea(const AreaXYType &area)
Sets the visible area.
bool addLayer(std::unique_ptr< LayerData1DBase > layer)
Add an already constructed layer (e.g. for projections)
QPoint last_mouse_pos_
start position of mouse actions
Definition: PlotCanvas.h:878
double getSnapFactor()
Returns the first intensity scaling factor for 'snap to maximum intensity mode' (for the currently vi...
virtual bool finishAdding_()=0
Method that is called when a new layer has been added.
ActionModes
Mouse action modes.
Definition: PlotCanvas.h:169
@ AM_ZOOM
zoom
Definition: PlotCanvas.h:171
@ AM_TRANSLATE
translate
Definition: PlotCanvas.h:170
bool addPeakLayer(const ExperimentSharedPtrType &map, ODExperimentSharedPtrType od_map, const String &filename="", const String &caption="", const bool use_noise_cutoff=false)
Add a peak data layer.
virtual void intensityModeChange_()
This method is called whenever the intensity mode changes. Reimplement if you need to react on such c...
virtual void changeVisibleArea_(VisibleArea new_area, bool repaint=true, bool add_to_stack=false)
Sets the visible area.
bool isVisible(const PointOnAxis &p) const
Definition: PlotCanvas.h:343
void popIncompleteLayer_(const QString &error_message="")
void preferencesChange()
Emitted when the layer preferences have changed.
PeakIndex measurement_start_
start peak of measuring mode
Definition: PlotCanvas.h:909
IntensityModes getIntensityMode() const
Returns the intensity mode.
Definition: PlotCanvas.h:233
bool getLayerFlag(LayerDataBase::Flags f) const
returns a layer flag of the current layer
Definition: PlotCanvas.h:292
void updateVScrollbar(float f_min, float disp_min, float disp_max, float f_max)
Triggers the update of the vertical scrollbar.
bool addLayer(ConsensusMapSharedPtrType map, const String &filename="", const String &caption="")
Add a consensus feature data layer.
void zoomAdd_(const VisibleArea &area)
Add a visible area to the zoom stack.
virtual void showCurrentLayerPreferences()=0
Shows the preferences dialog of the active layer.
void resizeEvent(QResizeEvent *e) override
QRubberBand rubber_band_
Rubber band for selected area.
Definition: PlotCanvas.h:898
LayerDataBase::ConsensusMapType ConsensusMapType
Main data type (consensus features)
Definition: PlotCanvas.h:138
DimMapper< 2 >::Point PointOnAxis
Definition: PlotCanvas.h:165
LayerDataBase::ExperimentSharedPtrType ExperimentSharedPtrType
Main managed data type (experiment)
Definition: PlotCanvas.h:130
bool addChromLayer(const ExperimentSharedPtrType &map, ODExperimentSharedPtrType od_map, const String &filename="", const String &caption="")
Add a chrom data layer.
void changeLegendVisibility()
Toggle axis legend visibility change.
void showGridLines(bool show)
Whether or not to show grid lines.
void layerZoomChanged(QWidget *w)
Signal emitted whenever the zoom changed.
virtual void recalculateSnapFactor_()
Recalculates the intensity scaling factor for 'snap to maximum intensity mode'.
void removeLayers()
removes all layers by calling removeLayer() for all layer indices (from highest to lowest)
Definition: PlotCanvas.h:387
LayerDataBase::ODExperimentSharedPtrType ODExperimentSharedPtrType
Definition: PlotCanvas.h:132
virtual const RangeType & getDataRange() const
Returns the area which encloses all data points of all layers.
void enterEvent(QEnterEvent *e) override
PlotWidget * getPlotWidget() const
Returns the spectrum widget.
Definition: PlotCanvas.h:210
void dimensionsChanged_()
Call this whenever the DimMapper receives new dimensions; will update the axes and scrollbars.
VisibleArea visible_area_
Stores the currently visible area in data units (e.g. seconds, m/z, intensity etc) and axis (X,...
Definition: PlotCanvas.h:835
virtual void update_(const char *caller_name)
Updates the displayed data.
void setLayerFlag(Size layer, LayerDataBase::Flags f, bool value)
sets a layer flag of the layer layer
Definition: PlotCanvas.h:310
void setVisibleArea(const RangeAllType &area)
Sets the visible area.
void setPlotWidget(PlotWidget *widget)
Sets the spectrum widget.
Definition: PlotCanvas.h:199
LayerDataBase::ExperimentType ExperimentType
Main data type (experiment)
Definition: PlotCanvas.h:128
Base class for spectrum widgets.
Definition: PlotWidget.h:57
A more convenient string class.
Definition: String.h:34
static String getVersion()
Return the version number of OpenMS.
int Int
Signed integer type.
Definition: Types.h:72
unsigned int UInt
Unsigned integer type.
Definition: Types.h:64
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::unique_ptr< LayerDataChrom > LayerDataChromUPtr
Definition: PlotCanvas.h:46
std::unique_ptr< LayerDataConsensus > LayerDataConsensusUPtr
Definition: PlotCanvas.h:49
std::unique_ptr< LayerDataBase > LayerDataBaseUPtr
Definition: PlotCanvas.h:45
RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeAllType
Range which contains all known dimensions.
Definition: RangeManager.h:914
boost::shared_ptr< DataProcessing > DataProcessingPtr
Definition: DataProcessing.h:111
DPosition< 2U > PointXYType
Type of the Points in a 'flat' canvas (1D and 2D)
Definition: CommonDefs.h:33
std::unique_ptr< LayerDataFeature > LayerDataFeatureUPtr
Definition: PlotCanvas.h:48
std::unique_ptr< LayerDataPeak > LayerDataPeakUPtr
Definition: PlotCanvas.h:47
boost::shared_ptr< ExperimentType > ExperimentSharedPtrType
SharedPtr on MSExperiment.
Definition: LayerDataBase.h:126
boost::shared_ptr< OnDiscMSExperiment > ODExperimentSharedPtrType
SharedPtr on On-Disc MSExperiment.
Definition: LayerDataBase.h:131
LabelType
Label used in visualization.
Definition: LayerDataBase.h:98
boost::shared_ptr< FeatureMap > FeatureMapSharedPtrType
SharedPtr on feature map.
Definition: LayerDataBase.h:114
boost::shared_ptr< const ExperimentType > ConstExperimentSharedPtrType
Definition: LayerDataBase.h:128
boost::shared_ptr< ConsensusMap > ConsensusMapSharedPtrType
SharedPtr on consensus features.
Definition: LayerDataBase.h:120
Flags
Flags that determine which information is shown.
Definition: LayerDataBase.h:84
Index of a peak or feature.
Definition: PeakIndex.h:25