OpenMS  2.8.0
Public Types | Public Slots | Signals | Public Member Functions | Static Public Attributes | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
Plot1DCanvas Class Reference

Canvas for visualization of one or several spectra. More...

#include <OpenMS/VISUAL/Plot1DCanvas.h>

Inheritance diagram for Plot1DCanvas:
[legend]
Collaboration diagram for Plot1DCanvas:
[legend]

Public Types

enum  LabelMode { LM_XABSOLUTE_YABSOLUTE , LM_XPERCENT_YABSOLUTE , LM_XABSOLUTE_YPERCENT , LM_XPERCENT_YPERCENT }
 Label modes (percentage or absolute) of x axis and y axis. More...
 
enum  DrawModes { DM_PEAKS , DM_CONNECTEDLINES }
 Enumerate all available paint styles. More...
 
- Public Types inherited from PlotCanvas
enum  ActionModes { AM_TRANSLATE , AM_ZOOM , AM_MEASURE }
 Mouse action modes. More...
 
enum  IntensityModes { IM_NONE , IM_PERCENTAGE , IM_SNAP , IM_LOG }
 Display modes of intensity. More...
 
typedef LayerDataBase::ExperimentType ExperimentType
 Main data type (experiment) More...
 
typedef LayerDataBase::ExperimentSharedPtrType ExperimentSharedPtrType
 Main managed data type (experiment) More...
 
typedef LayerDataBase::ConstExperimentSharedPtrType ConstExperimentSharedPtrType
 
typedef LayerDataBase::ODExperimentSharedPtrType ODExperimentSharedPtrType
 
typedef LayerDataBase::OSWDataSharedPtrType OSWDataSharedPtrType
 
typedef LayerDataBase::FeatureMapType FeatureMapType
 Main data type (features) More...
 
typedef LayerDataBase::FeatureMapSharedPtrType FeatureMapSharedPtrType
 Main managed data type (features) More...
 
typedef LayerDataBase::ConsensusMapType ConsensusMapType
 Main data type (consensus features) More...
 
typedef LayerDataBase::ConsensusMapSharedPtrType ConsensusMapSharedPtrType
 Main managed data type (consensus features) More...
 
typedef ExperimentType::SpectrumType SpectrumType
 Spectrum type. More...
 
typedef SpectrumType::ConstIterator SpectrumConstIteratorType
 Spectrum iterator type (iterates over peaks) More...
 
typedef SpectrumType::PeakType PeakType
 Peak type. More...
 
typedef DPosition< 2 > PointType
 Type of the Points. More...
 
typedef DRange< 2 > AreaType
 Types of Ranges/Areas. More...
 
using RangeType = RangeManager< RangeRT, RangeMZ, RangeIntensity >
 

Public Slots

void activateLayer (Size layer_index) override
 
void removeLayer (Size layer_index) override
 
void updateLayer (Size i) override
 
void setVisibleArea (DRange< 2 > range)
 Sets the visible area. More...
 
void horizontalScrollBarChange (int value) override
 
- Public Slots inherited from PlotCanvas
void changeVisibility (Size i, bool b)
 change the visibility of a layer More...
 
void changeLayerFilterState (Size i, bool b)
 change if the defined data filters are used More...
 
void showGridLines (bool show)
 Whether or not to show grid lines. More...
 
void resetZoom (bool repaint=true)
 Zooms fully out and resets the zoom stack. More...
 
void setVisibleArea (const AreaType &area)
 Sets the visible area. More...
 
virtual void horizontalScrollBarChange (int value)
 Notifies the canvas that the horizontal scrollbar has been moved. More...
 
virtual void verticalScrollBarChange (int value)
 Notifies the canvas that the vertical scrollbar has been moved. More...
 
void setAdditionalContextMenu (QMenu *menu)
 Sets the additional context menu. If not 0, this menu is added to the context menu of the canvas. More...
 
void getVisiblePeakData (ExperimentType &map) const
 Fills the handed over map with the visible peaks of the current layer. More...
 
void getVisibleFeatureData (FeatureMapType &map) const
 Fills the handed over map with the visible features of the current layer. More...
 
void getVisibleConsensusData (ConsensusMapType &map) const
 Fills the handed over map with the visible consensus features of the current layer. More...
 
void getVisibleIdentifications (std::vector< PeptideIdentification > &peptides) const
 Fills the handed over peptides with the visible peptide identifications of the current layer. More...
 
virtual void updateLayer (Size i)=0
 Updates layer i when the data in the corresponding file changes. More...
 
void dataToWidgetDistance (double x, double y, QPoint &point)
 converts a distance in axis values to pixel values More...
 
PointType widgetToDataDistance (double x, double y)
 compute distance in widget coordinates (unit axis as shown) when moving x/y px in chart coordinates More...
 

Signals

void showCurrentPeaksAs2D ()
 Requests to display all spectra in 2D plot. More...
 
void showCurrentPeaksAs3D ()
 Requests to display all spectra in 3D plot. More...
 
void showCurrentPeaksAsIonMobility ()
 Requests to display all spectra in ion mobility plot. More...
 
void showCurrentPeaksAsDIA ()
 Requests to display all spectra as DIA. More...
 
- Signals inherited from PlotCanvas
void layerModficationChange (Size layer, bool modified)
 Signal emitted whenever the modification status of a layer changes (editing and storing) More...
 
void layerActivated (QWidget *w)
 Signal emitted whenever a new layer is activated within the current window. More...
 
void layerZoomChanged (QWidget *w)
 Signal emitted whenever the zoom changed. More...
 
void visibleAreaChanged (DRange< 2 > area)
 Change of the visible area. More...
 
void sendCursorStatus (double mz=-1.0, double rt=-1.0)
 Emitted when the cursor position changes (for displaying e.g. in status bar) More...
 
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 displayed until the next message is emitted. More...
 
void recalculateAxes ()
 Forces recalculation of axis ticks in the connected widget. More...
 
void updateVScrollbar (float, float, float, float)
 Triggers the update of the vertical scrollbar. More...
 
void updateHScrollbar (float, float, float, float)
 Triggers the update of the horizontal scrollbar. More...
 
void changeLegendVisibility ()
 Toggle axis legend visibility change. More...
 
void actionModeChange ()
 Emitted when the action mode changes. More...
 
void preferencesChange ()
 Emitted when the layer preferences have changed. More...
 

Public Member Functions

 Plot1DCanvas (const Param &preferences, QWidget *parent=nullptr)
 Default constructor. More...
 
 ~Plot1DCanvas () override
 Destructor. More...
 
bool addChromLayer (ExperimentSharedPtrType chrom_exp_sptr, ODExperimentSharedPtrType ondisc_sptr, OSWDataSharedPtrType chrom_annotation, const int index, const String &filename, const String &caption, const bool multiple_select)
 
DrawModes getDrawMode () const
 Returns the draw mode of the current layer. More...
 
void setDrawMode (DrawModes mode)
 Sets draw mode of the current layer. More...
 
void showCurrentLayerPreferences () override
 Shows the preferences dialog of the active layer. More...
 
void saveCurrentLayer (bool visible) override
 Saves the current layer data. More...
 
bool flippedLayersExist ()
 Returns whether flipped layers exist or not. More...
 
void flipLayer (Size index)
 Flips the layer with index up/downwards. More...
 
bool mirrorModeActive () const
 Returns whether this widget is currently in mirror mode. More...
 
void setMirrorModeActive (bool b)
 Sets whether this widget is currently in mirror mode. More...
 
void dataToWidget (const PeakType &peak, QPoint &point, bool flipped=false, bool percentage=true)
 For convenience - calls dataToWidget. More...
 
void dataToWidget (double x, double y, QPoint &point, bool flipped=false, bool percentage=false)
 Calls PlotCanvas::dataToWidget_(), takes mirror mode into account. More...
 
PointType widgetToData (const QPoint &pos, bool percentage=false)
 For convenience - calls widgetToData. More...
 
PointType widgetToData (double x, double y, bool percentage=false)
 Calls PlotCanvas::widgetToData_(), takes mirror mode into account. More...
 
void setTextBox (const QString &html)
 Display a static text box on the top right. More...
 
Annotation1DItemaddPeakAnnotation (const PeakIndex &peak_index, const QString &text, const QColor &color)
 —– Annotations More...
 
void performAlignment (Size layer_index_1, Size layer_index_2, const Param &param)
 
void resetAlignment ()
 Resets alignment_. More...
 
Size getAlignmentSize ()
 Returns the number of aligned pairs of peaks. More...
 
double getAlignmentScore () const
 Returns the score of the alignment. More...
 
std::vector< std::pair< Size, Size > > getAlignedPeaksIndices ()
 Returns aligned_peaks_indices_. More...
 
void activateSpectrum (Size index, bool repaint=true)
 Sets current spectrum index of current layer to index. More...
 
void setSwappedAxis (bool swapped)
 is the widget shown vertically? (for projections) More...
 
void setCurrentLayerPeakPenStyle (Qt::PenStyle ps)
 Set's the Qt PenStyle of the active layer. More...
 
void paint (QPainter *paint_device, QPaintEvent *e)
 Actual painting takes place here. More...
 
void setDrawInterestingMZs (bool enable)
 interesting (e.g., high-intensity) get live annotated with m/s's More...
 
bool isDrawInterestingMZs () const
 Return true if interesting m/s are annotated. More...
 
void setIonLadderVisible (bool show)
 
bool isIonLadderVisible () const
 
- Public Member Functions inherited from PlotCanvas
 PlotCanvas (const Param &preferences, QWidget *parent=nullptr)
 Default constructor. More...
 
 ~PlotCanvas () override
 Destructor. More...
 
void setPlotWidget (PlotWidget *widget)
 Sets the spectrum widget. More...
 
PlotWidgetgetPlotWidget () const
 Returns the spectrum widget. More...
 
Int getActionMode () const
 Returns the action mode. More...
 
IntensityModes getIntensityMode () const
 Returns the intensity mode. More...
 
void setIntensityMode (IntensityModes mod)
 Sets the intensity mode. More...
 
bool gridLinesShown () const
 Returns if the grid is currently shown. More...
 
const LayerDataBasegetLayer (Size index) const
 returns the layer data with index index More...
 
LayerDataBasegetLayer (Size index)
 returns the layer data with index index More...
 
const LayerDataBasegetCurrentLayer () const
 returns the layer data of the active layer More...
 
LayerDataBasegetCurrentLayer ()
 returns the layer data of the active layer More...
 
Size getCurrentLayerIndex () const
 returns the index of the active layer More...
 
bool getLayerFlag (LayerDataBase::Flags f) const
 returns a layer flag of the current layer More...
 
void setLayerFlag (LayerDataBase::Flags f, bool value)
 sets a layer flag of the current layer More...
 
bool getLayerFlag (Size layer, LayerDataBase::Flags f) const
 returns a layer flag of the layer layer More...
 
void setLayerFlag (Size layer, LayerDataBase::Flags f, bool value)
 sets a layer flag of the layer layer More...
 
void setLabel (LayerDataBase::LabelType label)
 
const AreaTypegetVisibleArea () const
 Returns the currently visible area. More...
 
virtual void setFilters (const DataFilters &filters)
 Sets the filters applied to the data before drawing (for the current layer) More...
 
bool isMzToXAxis () const
 Returns the mapping of m/z to axes. More...
 
void mzToXAxis (bool mz_to_x_axis)
 Sets the mapping of m/z to axes. More...
 
Size getLayerCount () const
 Returns the number of layers. More...
 
virtual void activateLayer (Size layer_index)=0
 change the active layer (the one that is used for selecting and so on) More...
 
virtual void removeLayer (Size layer_index)=0
 removes the layer with index layer_index More...
 
void removeLayers ()
 removes all layers by calling removeLayer() for all layer indices (from highest to lowest) More...
 
bool addLayer (ExperimentSharedPtrType map, ODExperimentSharedPtrType od_map, const String &filename="")
 Add a peak data layer. More...
 
bool addLayer (FeatureMapSharedPtrType map, const String &filename="")
 Add a feature data layer. More...
 
bool addLayer (ConsensusMapSharedPtrType map, const String &filename="")
 Add a consensus feature data layer. More...
 
bool addLayer (std::vector< PeptideIdentification > &peptides, const String &filename="")
 Add an identification data layer. More...
 
float getCurrentMinIntensity () const
 Returns the minimum intensity of the active layer. More...
 
float getCurrentMaxIntensity () const
 Returns the maximum intensity of the active layer. More...
 
float getMinIntensity (Size index) const
 Returns the minimum intensity of the layer with index index. More...
 
float getMaxIntensity (Size index) const
 Returns the maximum intensity of the layer with index index. More...
 
void setLayerName (Size i, const String &name)
 Sets the name of layer i. More...
 
String getLayerName (Size i)
 Gets the name of layer i. More...
 
void setCurrentLayerParameters (const Param &param)
 Sets the parameters of the current layer. More...
 
const DRange< 3 > & getDataRange ()
 Returns the area which encloses all data points. More...
 
double getSnapFactor ()
 Returns the first intensity scaling factor for 'snap to maximum intensity mode'. More...
 
double getPercentageFactor () const
 Returns the percentage factor. More...
 
virtual void showMetaData (bool modifiable=false, Int index=-1)
 Shows a dialog with the meta data. More...
 
- Public Member Functions inherited from DefaultParamHandler
 DefaultParamHandler (const String &name)
 Constructor with name that is displayed in error messages. More...
 
 DefaultParamHandler (const DefaultParamHandler &rhs)
 Copy constructor. More...
 
virtual ~DefaultParamHandler ()
 Destructor. More...
 
virtual DefaultParamHandleroperator= (const DefaultParamHandler &rhs)
 Assignment operator. More...
 
virtual bool operator== (const DefaultParamHandler &rhs) const
 Equality operator. More...
 
void setParameters (const Param &param)
 Sets the parameters. More...
 
const ParamgetParameters () const
 Non-mutable access to the parameters. More...
 
const ParamgetDefaults () const
 Non-mutable access to the default parameters. More...
 
const StringgetName () const
 Non-mutable access to the name. More...
 
void setName (const String &name)
 Mutable access to the name. More...
 
const std::vector< String > & getSubsections () const
 Non-mutable access to the registered subsections. More...
 

Static Public Attributes

constexpr static double TOP_MARGIN {1.09}
 extra empty margin added on top to ensure annotations and 100% y-axis label are properly drawn More...
 

Protected Slots

void currentLayerParamtersChanged_ ()
 Reacts on changed layer parameters. More...
 
- Protected Slots inherited from PlotCanvas
void updateCursor_ ()
 Updates the cursor according to the current action mode. More...
 

Protected Member Functions

bool finishAdding_ () override
 Method that is called when a new layer has been added. More...
 
void drawCoordinates_ (QPainter &painter, const PeakIndex &peak)
 Draws the coordinates (or coordinate deltas) to the widget's upper left corner. More...
 
void drawDeltas_ (QPainter &painter, const PeakIndex &start, const PeakIndex &end)
 Draws the coordinates (or coordinate deltas) to the widget's upper left corner. More...
 
void drawAlignment_ (QPainter &painter)
 Draws the alignment on painter. More...
 
void changeVisibleArea_ (double lo, double hi, bool repaint=true, bool add_to_stack=false)
 Changes visible area interval. More...
 
void drawHighlightedPeak_ (Size layer_index, const PeakIndex &peak, QPainter &painter, bool draw_elongation=false)
 Draws a highlighted peak; if draw_elongation is true, the elongation line is drawn (for measuring) More...
 
void updatePercentageFactor_ (Size layer_index)
 Recalculates the current scale factor based on the specified layer (= 1.0 if intensity mode != IM_PERCENTAGE) More...
 
void changeVisibleArea_ (const AreaType &new_area, bool repaint=true, bool add_to_stack=false) override
 Sets the visible area. More...
 
void recalculateSnapFactor_ () override
 Recalculates the intensity scaling factor for 'snap to maximum intensity mode'. More...
 
void updateScrollbars_ () override
 Updates the scroll bars. More...
 
void intensityModeChange_ () override
 This method is called whenever the intensity mode changes. Reimplement if you need to react on such changes. More...
 
PeakIndex findPeakAtPosition_ (QPoint)
 Find peak next to the given position. More...
 
void addUserLabelAnnotation_ (const QPoint &screen_position)
 Shows dialog and calls addLabelAnnotation_. More...
 
void addLabelAnnotation_ (const QPoint &screen_position, const QString &label_text)
 Adds an annotation item at the given screen position. More...
 
void addUserPeakAnnotation_ (PeakIndex near_peak)
 Shows dialog and calls addPeakAnnotation_. More...
 
void ensureAnnotationsWithinDataRange_ ()
 Ensure that all annotations are within data range. More...
 
- Protected Member Functions inherited from PlotCanvas
void resizeEvent (QResizeEvent *e) override
 
void wheelEvent (QWheelEvent *e) override
 
void keyPressEvent (QKeyEvent *e) override
 
void keyReleaseEvent (QKeyEvent *e) override
 
void focusOutEvent (QFocusEvent *e) override
 
void leaveEvent (QEvent *e) override
 
void enterEvent (QEvent *e) override
 
void zoomBack_ ()
 Go backward in zoom history. More...
 
void zoomAdd_ (const AreaType &area)
 Add a visible area to the zoom stack. More...
 
void zoomClear_ ()
 Clears the zoom stack and invalidates the current zoom position. After calling this, a valid zoom position has to be added immediately. More...
 
virtual void translateForward_ ()
 Translation bound to the 'Up' key. More...
 
virtual void translateBackward_ ()
 Translation bound to the 'Down' key. More...
 
PointType widgetToData_ (double x, double y)
 Convert widget to chart coordinates. More...
 
PointType widgetToData_ (const QPoint &pos)
 Calls widgetToData_ with x and y position of pos. More...
 
void dataToWidget_ (double x, double y, QPoint &point)
 Convert chart to widget coordinates. More...
 
void recalculateRanges_ (UInt mz_dim, UInt rt_dim, UInt it_dim)
 Recalculates the overall_data_range_. More...
 
virtual void update_ (const char *caller_name)
 Updates the displayed data. More...
 
void modificationStatus_ (Size layer_index, bool modified)
 Takes all actions necessary when the modification status of a layer changes (signals etc.) More...
 
void addDataProcessing_ (PeakMap &map, DataProcessing::ProcessingAction action) const
 Data processing setter for peak maps. More...
 
void drawText_ (QPainter &painter, QStringList text)
 Draws several lines of text to the upper right corner of the widget. More...
 
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/theoretical peptide mass) More...
 
void popIncompleteLayer_ (const QString &error_message="")
 
- Protected Member Functions inherited from DefaultParamHandler
virtual void updateMembers_ ()
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. More...
 

Protected Attributes

std::vector< DrawModesdraw_modes_
 Draw modes (for each layer) More...
 
std::vector< Qt::PenStyle > peak_penstyle_
 Draw style (for each layer) More...
 
QPoint measurement_start_point_
 start point of "ruler" for measure mode More...
 
bool mirror_mode_
 Indicates whether this widget is currently in mirror mode. More...
 
bool moving_annotations_
 Indicates whether annotation items are just being moved on the canvas. More...
 
bool show_alignment_
 Indicates whether an alignment is currently visualized. More...
 
Size alignment_layer_1_
 Layer index of the first alignment layer. More...
 
Size alignment_layer_2_
 Layer index of the second alignment layer. More...
 
std::vector< std::pair< double, double > > aligned_peaks_mz_delta_
 Stores the alignment as MZ values of pairs of aligned peaks in both spectra. More...
 
std::vector< std::pair< Size, Size > > aligned_peaks_indices_
 Stores the peak indices of pairs of aligned peaks in both spectra. More...
 
double alignment_score_
 Stores the score of the last alignment. More...
 
bool is_swapped_
 is this widget showing data with swapped m/z and RT axis? (for drawCoordinates_ only) More...
 
bool ion_ladder_visible_
 whether the ion ladder is displayed on the top right corner in ID view More...
 
bool draw_interesting_MZs_
 annotate interesting peaks with m/z's More...
 
QTextDocument text_box_content_
 
- Protected Attributes inherited from PlotCanvas
QImage buffer_
 Buffer that stores the actual peak information. More...
 
ActionModes action_mode_ = AM_TRANSLATE
 Stores the current action mode (Pick, Zoom, Translate) More...
 
IntensityModes intensity_mode_ = IM_NONE
 Stores the used intensity mode function. More...
 
LayerStack layers_
 Layer data. More...
 
bool mz_to_x_axis_ = true
 Stores the mapping of m/z. More...
 
AreaType visible_area_ = AreaType::empty
 Stores the currently visible area. More...
 
DRange< 3 > overall_data_range_ = DRange<3>::empty
 Stores the data range (m/z, RT and intensity) of all layers. More...
 
bool show_grid_ = true
 Stores whether or not to show a grid. More...
 
std::vector< AreaTypezoom_stack_
 The zoom stack. More...
 
std::vector< AreaType >::iterator zoom_pos_ = zoom_stack_.end()
 The current position in the zoom stack. More...
 
bool update_buffer_ = false
 Whether to recalculate the data in the buffer when repainting. More...
 
PlotWidgetspectrum_widget_ = nullptr
 Back-pointer to the enclosing spectrum widget. More...
 
QPoint last_mouse_pos_
 start position of mouse actions More...
 
double percentage_factor_ = 1.0
 Intensity scaling factor for relative scale with multiple layers. More...
 
std::vector< double > snap_factors_ = {1.0}
 Intensity scaling factor for 'snap to maximum intensity mode'. More...
 
QRubberBand rubber_band_
 Rubber band for selected area. More...
 
QMenu * context_add_ = nullptr
 External context menu extension. More...
 
bool show_timing_ = false
 Flag that determines if timing data is printed to the command line. More...
 
PeakIndex selected_peak_
 selected peak More...
 
PeakIndex measurement_start_
 start peak of measuring mode More...
 
- Protected Attributes inherited from DefaultParamHandler
Param param_
 Container for current parameters. More...
 
Param defaults_
 Container for default parameters. This member should be filled in the constructor of derived classes! More...
 
std::vector< Stringsubsections_
 Container for registered subsections. This member should be filled in the constructor of derived classes! More...
 
String error_name_
 Name that is displayed in error messages during the parameter checking. More...
 
bool check_defaults_
 If this member is set to false no checking if parameters in done;. More...
 
bool warn_empty_defaults_
 If this member is set to false no warning is emitted when defaults are empty;. More...
 

Reimplemented QT events

class Painter1DPeak
 
void paintEvent (QPaintEvent *e) override
 
void mousePressEvent (QMouseEvent *e) override
 
void mouseReleaseEvent (QMouseEvent *e) override
 
void mouseMoveEvent (QMouseEvent *e) override
 
void keyPressEvent (QKeyEvent *e) override
 
void contextMenuEvent (QContextMenuEvent *e) override
 
void zoomForward_ () override
 Go forward in zoom history. More...
 
void zoom_ (int x, int y, bool zoom_in) override
 docu in base class More...
 
void translateLeft_ (Qt::KeyboardModifiers m) override
 Translation bound to the 'Left' key. More...
 
void translateRight_ (Qt::KeyboardModifiers m) override
 Translation bound to the 'Right' key. More...
 
void paintGridLines_ (QPainter &painter) override
 Helper function to paint grid lines. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from DefaultParamHandler
static void writeParametersToMetaValues (const Param &write_this, MetaInfoInterface &write_here, const String &key_prefix="")
 Writes all parameters to meta values. More...
 

Detailed Description

Canvas for visualization of one or several spectra.

The example image shows Plot1DCanvas displaying a raw data layer and a peak data layer.

Todo:
Use spectrum StringDataArray with name 'label' for peak annotations (Hiwi, Johannes)
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
default_path string.  Default path for loading/storing data.
highlighted_peak_color string@#ff0000  Highlighted peak color.
icon_color string@#000000  Peak icon color.
peak_color string@#0000ff  Peak color.
annotation_color string@#000055  Annotation color.
background_color string@#ffffff  Background color.
show_legend stringfalse  Annotate each layer with its name on the canvas.

Note:

Member Enumeration Documentation

◆ DrawModes

enum DrawModes

Enumerate all available paint styles.

Enumerator
DM_PEAKS 

draw data as peak

DM_CONNECTEDLINES 

draw as connected lines

◆ LabelMode

enum LabelMode

Label modes (percentage or absolute) of x axis and y axis.

Enumerator
LM_XABSOLUTE_YABSOLUTE 
LM_XPERCENT_YABSOLUTE 
LM_XABSOLUTE_YPERCENT 
LM_XPERCENT_YPERCENT 

Constructor & Destructor Documentation

◆ Plot1DCanvas()

Plot1DCanvas ( const Param preferences,
QWidget parent = nullptr 
)

Default constructor.

◆ ~Plot1DCanvas()

~Plot1DCanvas ( )
override

Destructor.

Member Function Documentation

◆ activateLayer

void activateLayer ( Size  layer_index)
overrideslot

◆ activateSpectrum()

void activateSpectrum ( Size  index,
bool  repaint = true 
)

Sets current spectrum index of current layer to index.

Referenced by TOPPViewBase::addData().

◆ addChromLayer()

bool addChromLayer ( ExperimentSharedPtrType  chrom_exp_sptr,
ODExperimentSharedPtrType  ondisc_sptr,
OSWDataSharedPtrType  chrom_annotation,
const int  index,
const String filename,
const String caption,
const bool  multiple_select 
)

add a chromatogram layer

Parameters
chrom_exp_sptrAn MSExperiment with chromatograms
ondisc_sptrOnDisk experiment, as fallback to read the chromatogram from, should chrom_exp_sptr.getChromatograms(index) be empty
OSWDataSharedPtrTypeIf OSWData was loaded, pass the shared_pointer from the LayerData. Otherwise leave empty.
indexIndex of the chromatogram to show
filenameFor file change watcher (can be empty, if need be)
captionName of layer
multiple_select.... not sure ...
Returns
true on success, false if data was missing etc
Note
: this does NOT trigger layerActivated signal for efficiency-reasons. Do it manually afterwards!

◆ addLabelAnnotation_()

void addLabelAnnotation_ ( const QPoint &  screen_position,
const QString &  label_text 
)
protected

Adds an annotation item at the given screen position.

◆ addPeakAnnotation()

Annotation1DItem* addPeakAnnotation ( const PeakIndex peak_index,
const QString &  text,
const QColor &  color 
)

—– Annotations

Add an annotation item for the given peak

◆ addUserLabelAnnotation_()

void addUserLabelAnnotation_ ( const QPoint &  screen_position)
protected

Shows dialog and calls addLabelAnnotation_.

◆ addUserPeakAnnotation_()

void addUserPeakAnnotation_ ( PeakIndex  near_peak)
protected

Shows dialog and calls addPeakAnnotation_.

◆ changeVisibleArea_() [1/2]

void changeVisibleArea_ ( const AreaType new_area,
bool  repaint = true,
bool  add_to_stack = false 
)
overrideprotectedvirtual

Sets the visible area.

Changes the visible area, adjusts the zoom stack and notifies interested clients about the change. If parts of the area are outside of the data area, the new area will be adjusted.

Parameters
new_areaThe new visible area.
repaintif repainting of the widget should be triggered
add_to_stackIf the new area is to add to the zoom_stack_

Reimplemented from PlotCanvas.

◆ changeVisibleArea_() [2/2]

void changeVisibleArea_ ( double  lo,
double  hi,
bool  repaint = true,
bool  add_to_stack = false 
)
protected

Changes visible area interval.

This method is for convenience only. It calls changeVisibleArea_(const AreaType&, bool, bool) .

◆ contextMenuEvent()

void contextMenuEvent ( QContextMenuEvent *  e)
overrideprotected

◆ currentLayerParamtersChanged_

void currentLayerParamtersChanged_ ( )
protectedslot

Reacts on changed layer parameters.

◆ dataToWidget() [1/2]

void dataToWidget ( const PeakType peak,
QPoint &  point,
bool  flipped = false,
bool  percentage = true 
)

For convenience - calls dataToWidget.

◆ dataToWidget() [2/2]

void dataToWidget ( double  x,
double  y,
QPoint &  point,
bool  flipped = false,
bool  percentage = false 
)

Calls PlotCanvas::dataToWidget_(), takes mirror mode into account.

◆ drawAlignment_()

void drawAlignment_ ( QPainter &  painter)
protected

Draws the alignment on painter.

◆ drawCoordinates_()

void drawCoordinates_ ( QPainter &  painter,
const PeakIndex peak 
)
protected

Draws the coordinates (or coordinate deltas) to the widget's upper left corner.

◆ drawDeltas_()

void drawDeltas_ ( QPainter &  painter,
const PeakIndex start,
const PeakIndex end 
)
protected

Draws the coordinates (or coordinate deltas) to the widget's upper left corner.

◆ drawHighlightedPeak_()

void drawHighlightedPeak_ ( Size  layer_index,
const PeakIndex peak,
QPainter &  painter,
bool  draw_elongation = false 
)
protected

Draws a highlighted peak; if draw_elongation is true, the elongation line is drawn (for measuring)

◆ ensureAnnotationsWithinDataRange_()

void ensureAnnotationsWithinDataRange_ ( )
protected

Ensure that all annotations are within data range.

◆ findPeakAtPosition_()

PeakIndex findPeakAtPosition_ ( QPoint  )
protected

Find peak next to the given position.

◆ finishAdding_()

bool finishAdding_ ( )
overrideprotectedvirtual

Method that is called when a new layer has been added.

Implements PlotCanvas.

◆ flipLayer()

void flipLayer ( Size  index)

Flips the layer with index up/downwards.

◆ flippedLayersExist()

bool flippedLayersExist ( )

Returns whether flipped layers exist or not.

◆ getAlignedPeaksIndices()

std::vector<std::pair<Size, Size> > getAlignedPeaksIndices ( )

Returns aligned_peaks_indices_.

◆ getAlignmentScore()

double getAlignmentScore ( ) const

Returns the score of the alignment.

Referenced by TOPPViewBase::showSpectrumAlignmentDialog().

◆ getAlignmentSize()

Size getAlignmentSize ( )

Returns the number of aligned pairs of peaks.

Referenced by TOPPViewBase::showSpectrumAlignmentDialog().

◆ getDrawMode()

DrawModes getDrawMode ( ) const

Returns the draw mode of the current layer.

Referenced by TOPPViewBase::updateToolBar().

◆ horizontalScrollBarChange

void horizontalScrollBarChange ( int  value)
overrideslot

◆ intensityModeChange_()

void intensityModeChange_ ( )
overrideprotectedvirtual

This method is called whenever the intensity mode changes. Reimplement if you need to react on such changes.

Reimplemented from PlotCanvas.

◆ isDrawInterestingMZs()

bool isDrawInterestingMZs ( ) const

Return true if interesting m/s are annotated.

◆ isIonLadderVisible()

bool isIonLadderVisible ( ) const

◆ keyPressEvent()

void keyPressEvent ( QKeyEvent *  e)
overrideprotected

◆ mirrorModeActive()

bool mirrorModeActive ( ) const

Returns whether this widget is currently in mirror mode.

Referenced by TOPPViewBase::showSpectrumAlignmentDialog().

◆ mouseMoveEvent()

void mouseMoveEvent ( QMouseEvent *  e)
overrideprotected

◆ mousePressEvent()

void mousePressEvent ( QMouseEvent *  e)
overrideprotected

◆ mouseReleaseEvent()

void mouseReleaseEvent ( QMouseEvent *  e)
overrideprotected

◆ paint()

void paint ( QPainter *  paint_device,
QPaintEvent *  e 
)

Actual painting takes place here.

◆ paintEvent()

void paintEvent ( QPaintEvent *  e)
overrideprotected

◆ paintGridLines_()

void paintGridLines_ ( QPainter &  painter)
overrideprotectedvirtual

Helper function to paint grid lines.

Reimplemented from PlotCanvas.

◆ performAlignment()

void performAlignment ( Size  layer_index_1,
Size  layer_index_2,
const Param param 
)

—– Alignment Performs an alignment of the layers with layer_index_1 and layer_index_2

◆ recalculateSnapFactor_()

void recalculateSnapFactor_ ( )
overrideprotectedvirtual

Recalculates the intensity scaling factor for 'snap to maximum intensity mode'.

See also
snap_factors_

Reimplemented from PlotCanvas.

◆ removeLayer

void removeLayer ( Size  layer_index)
overrideslot

◆ resetAlignment()

void resetAlignment ( )

Resets alignment_.

◆ saveCurrentLayer()

void saveCurrentLayer ( bool  visible)
overridevirtual

Saves the current layer data.

Parameters
visibleIf true, only the visible data is stored. Otherwise the whole data is stored.

Implements PlotCanvas.

◆ setCurrentLayerPeakPenStyle()

void setCurrentLayerPeakPenStyle ( Qt::PenStyle  ps)

Set's the Qt PenStyle of the active layer.

◆ setDrawInterestingMZs()

void setDrawInterestingMZs ( bool  enable)

interesting (e.g., high-intensity) get live annotated with m/s's

◆ setDrawMode()

void setDrawMode ( DrawModes  mode)

Sets draw mode of the current layer.

Referenced by TOPPViewBase::setDrawMode1D().

◆ setIonLadderVisible()

void setIonLadderVisible ( bool  show)

◆ setMirrorModeActive()

void setMirrorModeActive ( bool  b)

Sets whether this widget is currently in mirror mode.

◆ setSwappedAxis()

void setSwappedAxis ( bool  swapped)

is the widget shown vertically? (for projections)

◆ setTextBox()

void setTextBox ( const QString &  html)

Display a static text box on the top right.

◆ setVisibleArea

void setVisibleArea ( DRange< 2 >  range)
slot

Sets the visible area.

Sets the visible area to a new value. Note that it does not emit visibleAreaChanged()

Parameters
rangethe new visible area

◆ showCurrentLayerPreferences()

void showCurrentLayerPreferences ( )
overridevirtual

Shows the preferences dialog of the active layer.

Implements PlotCanvas.

◆ showCurrentPeaksAs2D

void showCurrentPeaksAs2D ( )
signal

Requests to display all spectra in 2D plot.

◆ showCurrentPeaksAs3D

void showCurrentPeaksAs3D ( )
signal

Requests to display all spectra in 3D plot.

◆ showCurrentPeaksAsDIA

void showCurrentPeaksAsDIA ( )
signal

Requests to display all spectra as DIA.

◆ showCurrentPeaksAsIonMobility

void showCurrentPeaksAsIonMobility ( )
signal

Requests to display all spectra in ion mobility plot.

◆ translateLeft_()

void translateLeft_ ( Qt::KeyboardModifiers  m)
overrideprotectedvirtual

Translation bound to the 'Left' key.

Reimplemented from PlotCanvas.

◆ translateRight_()

void translateRight_ ( Qt::KeyboardModifiers  m)
overrideprotectedvirtual

Translation bound to the 'Right' key.

Reimplemented from PlotCanvas.

◆ updateLayer

void updateLayer ( Size  i)
overrideslot

◆ updatePercentageFactor_()

void updatePercentageFactor_ ( Size  layer_index)
protected

Recalculates the current scale factor based on the specified layer (= 1.0 if intensity mode != IM_PERCENTAGE)

◆ updateScrollbars_()

void updateScrollbars_ ( )
overrideprotectedvirtual

Updates the scroll bars.

Updates the scrollbars after a change of the visible area.

Reimplemented from PlotCanvas.

◆ widgetToData() [1/2]

PointType widgetToData ( const QPoint &  pos,
bool  percentage = false 
)

For convenience - calls widgetToData.

◆ widgetToData() [2/2]

PointType widgetToData ( double  x,
double  y,
bool  percentage = false 
)

Calls PlotCanvas::widgetToData_(), takes mirror mode into account.

◆ zoom_()

void zoom_ ( int  x,
int  y,
bool  zoom_in 
)
overrideprotectedvirtual

docu in base class

Reimplemented from PlotCanvas.

◆ zoomForward_()

void zoomForward_ ( )
overrideprotectedvirtual

Go forward in zoom history.

Reimplemented from PlotCanvas.

Friends And Related Function Documentation

◆ Painter1DPeak

friend class Painter1DPeak
friend

Member Data Documentation

◆ aligned_peaks_indices_

std::vector<std::pair<Size, Size> > aligned_peaks_indices_
protected

Stores the peak indices of pairs of aligned peaks in both spectra.

◆ aligned_peaks_mz_delta_

std::vector<std::pair<double, double> > aligned_peaks_mz_delta_
protected

Stores the alignment as MZ values of pairs of aligned peaks in both spectra.

◆ alignment_layer_1_

Size alignment_layer_1_
protected

Layer index of the first alignment layer.

◆ alignment_layer_2_

Size alignment_layer_2_
protected

Layer index of the second alignment layer.

◆ alignment_score_

double alignment_score_
protected

Stores the score of the last alignment.

◆ draw_interesting_MZs_

bool draw_interesting_MZs_
protected

annotate interesting peaks with m/z's

◆ draw_modes_

std::vector<DrawModes> draw_modes_
protected

Draw modes (for each layer)

◆ ion_ladder_visible_

bool ion_ladder_visible_
protected

whether the ion ladder is displayed on the top right corner in ID view

◆ is_swapped_

bool is_swapped_
protected

is this widget showing data with swapped m/z and RT axis? (for drawCoordinates_ only)

◆ measurement_start_point_

QPoint measurement_start_point_
protected

start point of "ruler" for measure mode

◆ mirror_mode_

bool mirror_mode_
protected

Indicates whether this widget is currently in mirror mode.

◆ moving_annotations_

bool moving_annotations_
protected

Indicates whether annotation items are just being moved on the canvas.

◆ peak_penstyle_

std::vector<Qt::PenStyle> peak_penstyle_
protected

Draw style (for each layer)

◆ show_alignment_

bool show_alignment_
protected

Indicates whether an alignment is currently visualized.

◆ text_box_content_

QTextDocument text_box_content_
protected

◆ TOP_MARGIN

constexpr static double TOP_MARGIN {1.09}
staticconstexpr

extra empty margin added on top to ensure annotations and 100% y-axis label are properly drawn