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 _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}
void addMsMsEvent(const Xic *xic_p, pappso::pappso_double rt)
Definition qcpxic.cpp:275
XicCstSPtr getXicCstSPtr(const Xic *xic_p) const
std::map< const Xic *, pappso::pappso_double > _map_xic_msms_event
Definition xicwidget.h:101
std::shared_ptr< const Xic > XicCstSPtr
Definition xic.h:38
@ rt
Retention time.

References _map_xic_msms_event, _qcp_xic, pappso::QCPXic::addMsMsEvent(), getXicCstSPtr(), and pappso::rt.

◆ 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(
161 std::pair<XicCstSPtr, TracePeakCstSPtr>(xic_sp, xic_peak));
162 }
163}
void addXicPeakList(const Xic *xic_p, const std::vector< pappso::TracePeakCstSPtr > &xic_peak_list)
Definition qcpxic.cpp:312
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, pappso::QCPXic::addXicPeakList(), 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}
QCPGraph * addXicP(const Xic *xic_p)
Definition qcpxic.cpp:219
std::vector< XicCstSPtr > _xic_sp_list
Definition xicwidget.h:102

References _qcp_xic, _xic_sp_list, and pappso::QCPXic::addXicP().

◆ 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, _xic_sp_list, and pappso::QCPXic::clear().

◆ clearXicPeakBorders()

void XicWidget::clearXicPeakBorders ( )

Definition at line 281 of file xicwidget.cpp.

282{
284}
void clearXicPeakBorders()
Definition qcpxic.cpp:431

References _qcp_xic, and pappso::QCPXic::clearXicPeakBorders().

◆ 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 251 of file xicwidget.cpp.

252{
253 XicCstSPtr xic_sp;
254 for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
255 {
256 if(pair_xic_peak.second.get() == xic_peak.get())
257 {
258 xic_sp = pair_xic_peak.first;
259 break;
260 }
261 }
262
263 if(xic_sp.get() != nullptr)
264 {
265
266 unsigned int i = 0;
267 for(XicCstSPtr xic_in_list : _xic_sp_list)
268 {
269 if(xic_in_list.get() == xic_sp.get())
270 {
271 break;
272 }
273 i++;
274 }
275 _qcp_xic->drawXicPeakBorders(i, xic_sp.get(), xic_peak.get());
276 }
277}
void drawXicPeakBorders(unsigned int i, const Xic *xic_p, const pappso::TracePeak *p_xic_peak)
Definition qcpxic.cpp:369

References _qcp_xic, _xic_peak_sp_list, _xic_sp_list, and pappso::QCPXic::drawXicPeakBorders().

◆ 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(),
143 _xic_sp_list.end(),
144 [xic_p](XicCstSPtr xic_sp) { return xic_sp.get() == xic_p; });
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(), 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 213 of file xicwidget.cpp.

214{
215 _qcp_xic->clear();
216
217 for(XicCstSPtr xic_sp : _xic_sp_list)
218 {
219 _qcp_xic->addXicP(xic_sp.get());
220
221 std::vector<TracePeakCstSPtr> xic_peak_list;
222 for(auto xic_map_peak_list : _xic_peak_sp_list)
223 {
224 if(xic_map_peak_list.first.get() == xic_sp.get())
225 xic_peak_list.push_back(xic_map_peak_list.second);
226 }
227 _qcp_xic->addXicPeakList(xic_sp.get(), xic_peak_list);
228 }
229 for(auto xic_name : _map_xic_name)
230 {
231 setName(xic_name.first, xic_name.second);
232 }
233 for(auto xic_msms : _map_xic_msms_event)
234 {
235 _qcp_xic->addMsMsEvent(xic_msms.first, xic_msms.second);
236 }
237
238 rescale();
239 _qcp_xic->replot();
240}
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, pappso::QCPXic::addMsMsEvent(), pappso::QCPXic::addXicP(), pappso::QCPXic::addXicPeakList(), pappso::QCPXic::clear(), rescale(), and setName().

Referenced by 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);
100}
void rescale()
Definition qcpxic.cpp:252

References _qcp_xic, and pappso::QCPXic::rescale().

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 165 of file xicwidget.cpp.

166{
167 emit rtChanged(rt);
168
169 std::vector<std::pair<XicCstSPtr, TracePeakCstSPtr>> over_xic_peak_list;
170 for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
171 {
172 if(pair_xic_peak.second.get()->containsRt(rt))
173 {
174 over_xic_peak_list.push_back(pair_xic_peak);
175 }
176 }
177
178 // if (over_xic_peak_list.size() > 0) {
179 emit xicPeakListChanged(over_xic_peak_list);
180 //}
181}
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, pappso::rt, rtChanged(), and xicPeakListChanged().

Referenced by pappso::QCPXic::mouseMoveEvent().

◆ 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}
void setName(const Xic *xic_p, const QString &name)
Definition qcpxic.cpp:293

References _map_xic_name, _qcp_xic, getXicCstSPtr(), and pappso::QCPXic::setName().

Referenced by replotAll().

◆ setRetentionTimeInMinutes()

void XicWidget::setRetentionTimeInMinutes ( )

Definition at line 205 of file xicwidget.cpp.

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

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ setRetentionTimeInSeconds()

void XicWidget::setRetentionTimeInSeconds ( )

Definition at line 198 of file xicwidget.cpp.

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

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ toQPaintDevice()

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

Implements GraphicDeviceWidget.

Definition at line 184 of file xicwidget.cpp.

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

References _qcp_xic.

◆ xicClickEvent()

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

Definition at line 243 of file xicwidget.cpp.

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

References clicked(), and pappso::rt.

Referenced by pappso::QCPXic::mouseReleaseEvent().

◆ xicPeakListChanged

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

Referenced by rtChangeEvent().

Friends And Related Symbol Documentation

◆ QCPXic

friend class QCPXic
friend

Definition at line 89 of file xicwidget.h.

Referenced by XicWidget().

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

◆ _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: