libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::XicWidget Class Reference

#include <xicwidget.h>

Inheritance diagram for pappso::XicWidget:
GraphicDeviceWidget

Signals

void rtChanged (double rt) const
 announce the current retention time (under mouse) in seconds
void xicPeakListChanged (pappso::XicXicPeakPairList xic_peak_list) const
void clicked (double rt, double intensity) const
 announce mouse position on click (rt in seconds, intensity)
void operateNewRange (QCPRange new_range)
 get the new Range when its change

Public Member Functions

 XicWidget (QWidget *parent=0)
 ~XicWidget ()
QCPGraph * addXicSp (XicCstSPtr xic_sp)
void addMsMsEvent (const Xic *xic_p, pappso::pappso_double rt)
void addXicPeakList (const Xic *xic_p, const std::vector< pappso::TracePeakCstSPtr > &xic_peak_list)
void setName (const Xic *xic_p, const QString &name)
const QString & getName (const Xic *xic_p) const
void clear ()
void plot ()
void rescale ()
void toQPaintDevice (QPaintDevice *device, const QSize &size) override
void setRetentionTimeInSeconds ()
void setRetentionTimeInMinutes ()
void drawXicPeakBorders (pappso::TracePeakCstSPtr xic_peak)
void clearXicPeakBorders ()
QCPAxis * getRtAxisP ()
 get the plots axis and rescale one axis with the given range
QCPAxis * getIntensityAxisP ()
void rescaleOneRange (QString axis_name, QCPRange new_range)
Public Member Functions inherited from GraphicDeviceWidget
 GraphicDeviceWidget (QWidget *parent)
virtual ~GraphicDeviceWidget ()
virtual void toSvgFile (const QString &filename, const QString &title, const QString &description, const QSize &size) final

Protected Member Functions

void rtChangeEvent (pappso::pappso_double rt) const
void xicClickEvent (pappso::pappso_double rt, pappso::pappso_double intensity) const
void replotAll ()
XicCstSPtr getXicCstSPtr (const Xic *xic_p) const

Protected Attributes

bool _rt_in_seconds = true

Private Attributes

std::map< const Xic *, QString > _map_xic_name
std::map< const Xic *, pappso::pappso_double_map_xic_msms_event
std::vector< XicCstSPtr_xic_sp_list
XicXicPeakPairList _xic_peak_sp_list
QCPXic_qcp_xic

Friends

class QCPXic

Detailed Description

Definition at line 47 of file xicwidget.h.

Constructor & Destructor Documentation

◆ XicWidget()

XicWidget::XicWidget ( QWidget * parent = 0)

Definition at line 41 of file xicwidget.cpp.

41 : GraphicDeviceWidget(parent)
42{
43 qDebug() << "XicWidget::XicWidget begin";
44
45
46 this->setLayout(new QHBoxLayout(this));
47
48 setMinimumSize(200, 160);
49 this->layout()->setContentsMargins(0, 0, 0, 0);
50
51 _qcp_xic = new QCPXic(this);
52 this->layout()->addWidget(_qcp_xic);
53 qDebug() << "XicWidget::XicWidget end";
54}
GraphicDeviceWidget(QWidget *parent)
friend class QCPXic
Definition xicwidget.h:89
QCPXic * _qcp_xic
Definition xicwidget.h:104

References GraphicDeviceWidget::GraphicDeviceWidget(), _qcp_xic, and QCPXic.

◆ ~XicWidget()

XicWidget::~XicWidget ( )

Definition at line 55 of file xicwidget.cpp.

56{
57}

Member Function Documentation

◆ addMsMsEvent()

void XicWidget::addMsMsEvent ( const Xic * xic_p,
pappso::pappso_double rt )

Definition at line 60 of file xicwidget.cpp.

61{
62 XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
63 _qcp_xic->addMsMsEvent(xic_p, rt);
64 _map_xic_msms_event[xic_p] = rt;
65}
XicCstSPtr getXicCstSPtr(const Xic *xic_p) const
std::map< const Xic *, pappso::pappso_double > _map_xic_msms_event
Definition xicwidget.h:101
@ rt
Retention time.
Definition types.h:251
std::shared_ptr< const Xic > XicCstSPtr
Definition xic.h:38

References _map_xic_msms_event, _qcp_xic, and getXicCstSPtr().

◆ addXicPeakList()

void XicWidget::addXicPeakList ( const Xic * xic_p,
const std::vector< pappso::TracePeakCstSPtr > & xic_peak_list )

Definition at line 153 of file xicwidget.cpp.

155{
156 XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
157 _qcp_xic->addXicPeakList(xic_p, xic_peak_list);
158 for(const pappso::TracePeakCstSPtr &xic_peak : xic_peak_list)
159 {
160 _xic_peak_sp_list.push_back(std::pair<XicCstSPtr, TracePeakCstSPtr>(xic_sp, xic_peak));
161 }
162}
XicXicPeakPairList _xic_peak_sp_list
Definition xicwidget.h:103
std::shared_ptr< const TracePeak > TracePeakCstSPtr
Definition tracepeak.h:35

References _qcp_xic, _xic_peak_sp_list, and getXicCstSPtr().

◆ addXicSp()

QCPGraph * XicWidget::addXicSp ( XicCstSPtr xic_sp)

Definition at line 67 of file xicwidget.cpp.

68{
69 _xic_sp_list.push_back(xic_sp);
70 return _qcp_xic->addXicP(xic_sp.get());
71}
std::vector< XicCstSPtr > _xic_sp_list
Definition xicwidget.h:102

References _qcp_xic, and _xic_sp_list.

◆ clear()

void XicWidget::clear ( )

Definition at line 129 of file xicwidget.cpp.

130{
131 _map_xic_name.clear();
132 _xic_sp_list.clear();
133 _xic_peak_sp_list.clear();
134 _qcp_xic->clear();
135 _map_xic_msms_event.clear();
136}
std::map< const Xic *, QString > _map_xic_name
Definition xicwidget.h:100

References _map_xic_msms_event, _map_xic_name, _qcp_xic, _xic_peak_sp_list, and _xic_sp_list.

◆ clearXicPeakBorders()

void XicWidget::clearXicPeakBorders ( )

Definition at line 279 of file xicwidget.cpp.

280{
281 _qcp_xic->clearXicPeakBorders();
282}

References _qcp_xic.

◆ clicked

void pappso::XicWidget::clicked ( double rt,
double intensity ) const
signal

announce mouse position on click (rt in seconds, intensity)

Referenced by xicClickEvent().

◆ drawXicPeakBorders()

void XicWidget::drawXicPeakBorders ( pappso::TracePeakCstSPtr xic_peak)

Definition at line 249 of file xicwidget.cpp.

250{
251 XicCstSPtr xic_sp;
252 for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
253 {
254 if(pair_xic_peak.second.get() == xic_peak.get())
255 {
256 xic_sp = pair_xic_peak.first;
257 break;
258 }
259 }
260
261 if(xic_sp.get() != nullptr)
262 {
263
264 unsigned int i = 0;
265 for(XicCstSPtr xic_in_list : _xic_sp_list)
266 {
267 if(xic_in_list.get() == xic_sp.get())
268 {
269 break;
270 }
271 i++;
272 }
273 _qcp_xic->drawXicPeakBorders(i, xic_sp.get(), xic_peak.get());
274 }
275}

References _qcp_xic, _xic_peak_sp_list, and _xic_sp_list.

◆ getIntensityAxisP()

QCPAxis * XicWidget::getIntensityAxisP ( )

Definition at line 109 of file xicwidget.cpp.

110{
111 return _qcp_xic->yAxis;
112}

References _qcp_xic.

◆ getName()

const QString & XicWidget::getName ( const Xic * xic_p) const

Definition at line 74 of file xicwidget.cpp.

75{
76 XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
77 return _map_xic_name.at(xic_p);
78}

References _map_xic_name, and getXicCstSPtr().

◆ getRtAxisP()

QCPAxis * XicWidget::getRtAxisP ( )

get the plots axis and rescale one axis with the given range

Definition at line 103 of file xicwidget.cpp.

104{
105 return _qcp_xic->xAxis;
106}

References _qcp_xic.

◆ getXicCstSPtr()

XicCstSPtr XicWidget::getXicCstSPtr ( const Xic * xic_p) const
protected

Definition at line 139 of file xicwidget.cpp.

140{
141 std::vector<XicCstSPtr>::const_iterator it =
142 std::find_if(_xic_sp_list.begin(), _xic_sp_list.end(), [xic_p](XicCstSPtr xic_sp) {
143 return xic_sp.get() == xic_p;
144 });
145 if(it == _xic_sp_list.end())
146 {
147 throw pappso::ExceptionNotFound(tr("ERROR : xic pointer not found"));
148 }
149 return *it;
150}

References _xic_sp_list.

Referenced by addMsMsEvent(), addXicPeakList(), getName(), QCPXic, and setName().

◆ operateNewRange

void pappso::XicWidget::operateNewRange ( QCPRange new_range)
signal

get the new Range when its change

◆ plot()

void XicWidget::plot ( )

Definition at line 90 of file xicwidget.cpp.

91{
92 _qcp_xic->replot();
93}

References _qcp_xic.

◆ replotAll()

void XicWidget::replotAll ( )
protected

Definition at line 212 of file xicwidget.cpp.

213{
214 _qcp_xic->clear();
215
216 for(XicCstSPtr xic_sp : _xic_sp_list)
217 {
218 _qcp_xic->addXicP(xic_sp.get());
219
220 std::vector<TracePeakCstSPtr> xic_peak_list;
221 for(auto xic_map_peak_list : _xic_peak_sp_list)
222 {
223 if(xic_map_peak_list.first.get() == xic_sp.get())
224 xic_peak_list.push_back(xic_map_peak_list.second);
225 }
226 _qcp_xic->addXicPeakList(xic_sp.get(), xic_peak_list);
227 }
228 for(auto xic_name : _map_xic_name)
229 {
230 setName(xic_name.first, xic_name.second);
231 }
232 for(auto xic_msms : _map_xic_msms_event)
233 {
234 _qcp_xic->addMsMsEvent(xic_msms.first, xic_msms.second);
235 }
236
237 rescale();
238 _qcp_xic->replot();
239}
void setName(const Xic *xic_p, const QString &name)
Definition xicwidget.cpp:81

References _map_xic_msms_event, _map_xic_name, _qcp_xic, _xic_peak_sp_list, _xic_sp_list, rescale(), and setName().

Referenced by QCPXic, setRetentionTimeInMinutes(), and setRetentionTimeInSeconds().

◆ rescale()

void XicWidget::rescale ( )

Definition at line 95 of file xicwidget.cpp.

96{
97 _qcp_xic->xAxis->rescale(true);
98 _qcp_xic->yAxis->rescale(true);
99 _qcp_xic->rescale();
100}

References _qcp_xic.

Referenced by replotAll().

◆ rescaleOneRange()

void XicWidget::rescaleOneRange ( QString axis_name,
QCPRange new_range )

Definition at line 115 of file xicwidget.cpp.

116{
117 if(axis_name == "xAxis")
118 {
119 _qcp_xic->xAxis->setRange(new_range);
120 }
121 else // axis_name == "yAxis"
122 {
123 _qcp_xic->yAxis->setRange(new_range);
124 }
125 _qcp_xic->replot();
126}

References _qcp_xic.

◆ rtChanged

void pappso::XicWidget::rtChanged ( double rt) const
signal

announce the current retention time (under mouse) in seconds

Referenced by rtChangeEvent().

◆ rtChangeEvent()

void XicWidget::rtChangeEvent ( pappso::pappso_double rt) const
protected

Definition at line 164 of file xicwidget.cpp.

165{
166 emit rtChanged(rt);
167
168 std::vector<std::pair<XicCstSPtr, TracePeakCstSPtr>> over_xic_peak_list;
169 for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
170 {
171 if(pair_xic_peak.second.get()->containsRt(rt))
172 {
173 over_xic_peak_list.push_back(pair_xic_peak);
174 }
175 }
176
177 // if (over_xic_peak_list.size() > 0) {
178 emit xicPeakListChanged(over_xic_peak_list);
179 //}
180}
void rtChanged(double rt) const
announce the current retention time (under mouse) in seconds
void xicPeakListChanged(pappso::XicXicPeakPairList xic_peak_list) const

References _xic_peak_sp_list, rtChanged(), and xicPeakListChanged().

Referenced by QCPXic.

◆ setName()

void XicWidget::setName ( const Xic * xic_p,
const QString & name )

Definition at line 81 of file xicwidget.cpp.

82{
83 XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
84 _qcp_xic->legend->setVisible(true);
85 _qcp_xic->setName(xic_p, name);
86 _map_xic_name[xic_p] = name;
87}

References _map_xic_name, _qcp_xic, and getXicCstSPtr().

Referenced by replotAll().

◆ setRetentionTimeInMinutes()

void XicWidget::setRetentionTimeInMinutes ( )

Definition at line 204 of file xicwidget.cpp.

205{
206 _rt_in_seconds = false;
207 _qcp_xic->xAxis->setLabel("retention time (min)");
208 replotAll();
209}

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ setRetentionTimeInSeconds()

void XicWidget::setRetentionTimeInSeconds ( )

Definition at line 197 of file xicwidget.cpp.

198{
199 _rt_in_seconds = true;
200 _qcp_xic->xAxis->setLabel("retention time (sec)");
201 replotAll();
202}

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ toQPaintDevice()

void XicWidget::toQPaintDevice ( QPaintDevice * device,
const QSize & size )
overridevirtual

Implements GraphicDeviceWidget.

Definition at line 183 of file xicwidget.cpp.

184{
185
186 if(_qcp_xic != nullptr)
187 {
188 QCPPainter painter;
189 painter.begin(device);
190 _qcp_xic->toPainter(&painter, size.width(), size.height());
191 painter.end();
192 }
193}

References _qcp_xic.

◆ xicClickEvent()

void XicWidget::xicClickEvent ( pappso::pappso_double rt,
pappso::pappso_double intensity ) const
protected

Definition at line 242 of file xicwidget.cpp.

243{
244 emit clicked(rt, intensity);
245}
void clicked(double rt, double intensity) const
announce mouse position on click (rt in seconds, intensity)

References clicked().

Referenced by QCPXic.

◆ xicPeakListChanged

void pappso::XicWidget::xicPeakListChanged ( pappso::XicXicPeakPairList xic_peak_list) const
signal

Referenced by rtChangeEvent().

◆ QCPXic

friend class QCPXic
friend

Definition at line 89 of file xicwidget.h.

References getXicCstSPtr(), QCPXic, replotAll(), rtChangeEvent(), and xicClickEvent().

Referenced by XicWidget(), and QCPXic.

Member Data Documentation

◆ _map_xic_msms_event

std::map<const Xic *, pappso::pappso_double> pappso::XicWidget::_map_xic_msms_event
private

Definition at line 101 of file xicwidget.h.

Referenced by addMsMsEvent(), clear(), and replotAll().

◆ _map_xic_name

std::map<const Xic *, QString> pappso::XicWidget::_map_xic_name
private

Definition at line 100 of file xicwidget.h.

Referenced by clear(), getName(), replotAll(), and setName().

◆ _qcp_xic

◆ _rt_in_seconds

bool pappso::XicWidget::_rt_in_seconds = true
protected

Definition at line 97 of file xicwidget.h.

Referenced by setRetentionTimeInMinutes(), and setRetentionTimeInSeconds().

◆ _xic_peak_sp_list

XicXicPeakPairList pappso::XicWidget::_xic_peak_sp_list
private

Definition at line 103 of file xicwidget.h.

Referenced by addXicPeakList(), clear(), drawXicPeakBorders(), replotAll(), and rtChangeEvent().

◆ _xic_sp_list

std::vector<XicCstSPtr> pappso::XicWidget::_xic_sp_list
private

Definition at line 102 of file xicwidget.h.

Referenced by addXicSp(), clear(), drawXicPeakBorders(), getXicCstSPtr(), and replotAll().


The documentation for this class was generated from the following files: