libpappsomspp
Library for mass spectrometry
qcpxic.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/widget/xicwidget/qcpxic.h
3 * \date 12/1/2018
4 * \author Olivier Langella
5 * \brief custom plot XIC
6 */
7
8
9/*******************************************************************************
10 * Copyright (c) 2018 Olivier Langella <Olivier.Langella@u-psud.fr>.
11 *
12 * This file is part of the PAPPSOms++ library.
13 *
14 * PAPPSOms++ is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * PAPPSOms++ is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
26 *
27 * Contributors:
28 * Olivier Langella <Olivier.Langella@u-psud.fr> - initial API and
29 *implementation
30 ******************************************************************************/
31
32#ifndef QCPXIC_H
33#define QCPXIC_H
34
35#include <qcustomplot.h>
36#include "xicwidget.h"
37
38namespace pappso
39{
40class QCPXic : public QCustomPlot
41{
42 Q_OBJECT
43 protected:
44 friend class XicWidget;
45 QCPXic(XicWidget *parent);
46 ~QCPXic();
47
48
49 protected:
50 void clear();
51 void rescale();
52 QCPGraph *addXicP(const Xic *xic_p);
53 void addMsMsEvent(const Xic *xic_p, pappso::pappso_double rt);
54 void
55 addXicPeakList(const Xic *xic_p,
56 const std::vector<pappso::TracePeakCstSPtr> &xic_peak_list);
57 void setName(const Xic *xic_p, const QString &name);
58 void drawXicPeakBorders(unsigned int i,
59 const Xic *xic_p,
60 const pappso::TracePeak *p_xic_peak);
62
63 virtual void mouseMoveEvent(QMouseEvent *event) override;
64 virtual void mousePressEvent(QMouseEvent *event) override;
65 virtual void mouseReleaseEvent(QMouseEvent *event) override;
66 virtual void keyPressEvent(QKeyEvent *event) override;
67 virtual void keyReleaseEvent(QKeyEvent *event) override;
68
69 private:
70 Q_SLOT void setRtRangeChanged(QCPRange range);
71
75
76 private:
78 QCPRange _rt_range;
80 bool _click = false;
81 bool _mouse_move = false;
82 bool _control_key = false;
85 QCPItemTracer *_current_ms2_event = nullptr;
86 std::map<const Xic *, QCPGraph *> _map_xic_graph;
88 std::vector<QColor> _colours;
89 std::vector<QCPGraph *> _graph_peak_surface_list;
90 std::vector<QCPItemTracer *> _graph_peak_border_list;
91};
92} // namespace pappso
93#endif // QCPXIC_H
bool _click
Definition: qcpxic.h:80
virtual void keyPressEvent(QKeyEvent *event) override
Definition: qcpxic.cpp:84
bool _mouse_move
Definition: qcpxic.h:81
void addMsMsEvent(const Xic *xic_p, pappso::pappso_double rt)
Definition: qcpxic.cpp:239
void clearXicPeakBorders()
Definition: qcpxic.cpp:395
std::vector< QColor > _colours
Definition: qcpxic.h:88
void clear()
Definition: qcpxic.cpp:265
std::vector< QCPItemTracer * > _graph_peak_border_list
Definition: qcpxic.h:90
bool _control_key
Definition: qcpxic.h:82
pappso::pappso_double _old_y
Definition: qcpxic.h:84
QCPRange _rt_range
Definition: qcpxic.h:78
pappso::pappso_double xAxisToSeconds(pappso::pappso_double rt) const
Definition: qcpxic.cpp:320
void setName(const Xic *xic_p, const QString &name)
Definition: qcpxic.cpp:257
QCPRange _intensity_range
Definition: qcpxic.h:79
pappso::pappso_double _old_x
Definition: qcpxic.h:83
std::vector< QCPGraph * > _graph_peak_surface_list
Definition: qcpxic.h:89
std::map< const Xic *, QCPGraph * > _map_xic_graph
Definition: qcpxic.h:86
Q_SLOT void setRtRangeChanged(QCPRange range)
Definition: qcpxic.cpp:222
pappso::pappso_double getRetentionTimeFromSecondsToLocal(pappso::pappso_double rt) const
Definition: qcpxic.cpp:307
virtual void mousePressEvent(QMouseEvent *event) override
Definition: qcpxic.cpp:104
void drawXicPeakBorders(unsigned int i, const Xic *xic_p, const pappso::TracePeak *p_xic_peak)
Definition: qcpxic.cpp:333
QCPItemTracer * _current_ms2_event
Definition: qcpxic.h:85
virtual void mouseMoveEvent(QMouseEvent *event) override
Definition: qcpxic.cpp:140
virtual void keyReleaseEvent(QKeyEvent *event) override
Definition: qcpxic.cpp:94
void addXicPeakList(const Xic *xic_p, const std::vector< pappso::TracePeakCstSPtr > &xic_peak_list)
Definition: qcpxic.cpp:276
void rescale()
Definition: qcpxic.cpp:216
QColor _graph_color
Definition: qcpxic.h:87
virtual void mouseReleaseEvent(QMouseEvent *event) override
Definition: qcpxic.cpp:123
QCPXic(XicWidget *parent)
Definition: qcpxic.cpp:38
XicWidget * _parent
Definition: qcpxic.h:77
QCPGraph * addXicP(const Xic *xic_p)
Definition: qcpxic.cpp:183
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
double pappso_double
A type definition for doubles.
Definition: types.h:48
plot a XIC