libpappsomspp
Library for mass spectrometry
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 More...
 
void xicPeakListChanged (pappso::XicXicPeakPairList xic_peak_list) const
 
void clicked (double rt, double intensity) const
 announce mouse position on click (rt in seconds, intensity) More...
 

Public Member Functions

 XicWidget (QWidget *parent=0)
 
 ~XicWidget ()
 
void 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 ()
 
- 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 46 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()->setMargin(0);
50 
51  _qcp_xic = new QCPXic(this);
52  this->layout()->addWidget(_qcp_xic);
53  qDebug() << "XicWidget::XicWidget end";
54 }

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

60 {
61  XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
62  _qcp_xic->addMsMsEvent(xic_p, rt);
63  _map_xic_msms_event[xic_p] = rt;
64 }

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

◆ addXicPeakList()

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

Definition at line 126 of file xicwidget.cpp.

128 {
129  XicCstSPtr xic_sp = getXicCstSPtr(xic_p);
130  _qcp_xic->addXicPeakList(xic_p, xic_peak_list);
131  for(const pappso::TracePeakCstSPtr &xic_peak : xic_peak_list)
132  {
133  _xic_peak_sp_list.push_back(
134  std::pair<XicCstSPtr, TracePeakCstSPtr>(xic_sp, xic_peak));
135  }
136 }

References _qcp_xic, _xic_peak_sp_list, pappso::QCPXic::addXicPeakList(), and getXicCstSPtr().

◆ addXicSp()

void XicWidget::addXicSp ( XicCstSPtr xic_sp)

Definition at line 66 of file xicwidget.cpp.

67 {
68  _xic_sp_list.push_back(xic_sp);
69  _qcp_xic->addXicP(xic_sp.get());
70 }

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

◆ clear()

void XicWidget::clear ( )

Definition at line 102 of file xicwidget.cpp.

103 {
104  _map_xic_name.clear();
105  _xic_sp_list.clear();
106  _xic_peak_sp_list.clear();
107  _qcp_xic->clear();
108  _map_xic_msms_event.clear();
109 }

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

255 {
257 }

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

225 {
226  XicCstSPtr xic_sp;
227  for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
228  {
229  if(pair_xic_peak.second.get() == xic_peak.get())
230  {
231  xic_sp = pair_xic_peak.first;
232  break;
233  }
234  }
235 
236  if(xic_sp.get() != nullptr)
237  {
238 
239  unsigned int i = 0;
240  for(XicCstSPtr xic_in_list : _xic_sp_list)
241  {
242  if(xic_in_list.get() == xic_sp.get())
243  {
244  break;
245  }
246  i++;
247  }
248  _qcp_xic->drawXicPeakBorders(i, xic_sp.get(), xic_peak.get());
249  }
250 }

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

◆ getName()

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

Definition at line 73 of file xicwidget.cpp.

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

References _map_xic_name, and getXicCstSPtr().

◆ getXicCstSPtr()

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

Definition at line 112 of file xicwidget.cpp.

113 {
114  std::vector<XicCstSPtr>::const_iterator it =
115  std::find_if(_xic_sp_list.begin(),
116  _xic_sp_list.end(),
117  [xic_p](XicCstSPtr xic_sp) { return xic_sp.get() == xic_p; });
118  if(it == _xic_sp_list.end())
119  {
120  throw pappso::ExceptionNotFound(tr("ERROR : xic pointer not found"));
121  }
122  return *it;
123 }

References _xic_sp_list.

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

◆ plot()

void XicWidget::plot ( )

Definition at line 89 of file xicwidget.cpp.

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

References _qcp_xic.

◆ replotAll()

void XicWidget::replotAll ( )
protected

Definition at line 186 of file xicwidget.cpp.

187 {
188  _qcp_xic->clear();
189 
190  for(XicCstSPtr xic_sp : _xic_sp_list)
191  {
192  _qcp_xic->addXicP(xic_sp.get());
193 
194  std::vector<TracePeakCstSPtr> xic_peak_list;
195  for(auto xic_map_peak_list : _xic_peak_sp_list)
196  {
197  if(xic_map_peak_list.first.get() == xic_sp.get())
198  xic_peak_list.push_back(xic_map_peak_list.second);
199  }
200  _qcp_xic->addXicPeakList(xic_sp.get(), xic_peak_list);
201  }
202  for(auto xic_name : _map_xic_name)
203  {
204  setName(xic_name.first, xic_name.second);
205  }
206  for(auto xic_msms : _map_xic_msms_event)
207  {
208  _qcp_xic->addMsMsEvent(xic_msms.first, xic_msms.second);
209  }
210 
211  rescale();
212  _qcp_xic->replot();
213 }

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

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

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

Referenced by replotAll().

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

139 {
140  emit rtChanged(rt);
141 
142  std::vector<std::pair<XicCstSPtr, TracePeakCstSPtr>> over_xic_peak_list;
143  for(std::pair<XicCstSPtr, TracePeakCstSPtr> pair_xic_peak : _xic_peak_sp_list)
144  {
145  if(pair_xic_peak.second.get()->containsRt(rt))
146  {
147  over_xic_peak_list.push_back(pair_xic_peak);
148  }
149  }
150 
151  // if (over_xic_peak_list.size() > 0) {
152  emit xicPeakListChanged(over_xic_peak_list);
153  //}
154 }

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

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

◆ setName()

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

Definition at line 80 of file xicwidget.cpp.

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

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

Referenced by replotAll().

◆ setRetentionTimeInMinutes()

void XicWidget::setRetentionTimeInMinutes ( )

Definition at line 178 of file xicwidget.cpp.

179 {
180  _rt_in_seconds = false;
181  _qcp_xic->xAxis->setLabel("retention time (min)");
182  replotAll();
183 }

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ setRetentionTimeInSeconds()

void XicWidget::setRetentionTimeInSeconds ( )

Definition at line 171 of file xicwidget.cpp.

172 {
173  _rt_in_seconds = true;
174  _qcp_xic->xAxis->setLabel("retention time (sec)");
175  replotAll();
176 }

References _qcp_xic, _rt_in_seconds, and replotAll().

◆ toQPaintDevice()

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

Implements GraphicDeviceWidget.

Definition at line 157 of file xicwidget.cpp.

158 {
159 
160  if(_qcp_xic != nullptr)
161  {
162  QCPPainter painter;
163  painter.begin(device);
164  _qcp_xic->toPainter(&painter, size.width(), size.height());
165  painter.end();
166  }
167 }

References _qcp_xic.

◆ xicClickEvent()

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

Definition at line 216 of file xicwidget.cpp.

218 {
219  emit clicked(rt, intensity);
220 }

References clicked().

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

◆ xicPeakListChanged

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

Referenced by rtChangeEvent().

Friends And Related Function Documentation

◆ QCPXic

friend class QCPXic
friend

Definition at line 80 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 92 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 91 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 94 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 93 of file xicwidget.h.

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


The documentation for this class was generated from the following files:
pappso::TracePeakCstSPtr
std::shared_ptr< const TracePeak > TracePeakCstSPtr
Definition: tracepeak.h:34
pappso::XicWidget::rescale
void rescale()
Definition: xicwidget.cpp:94
pappso::XicWidget::_map_xic_name
std::map< const Xic *, QString > _map_xic_name
Definition: xicwidget.h:91
pappso::QCPXic::addXicPeakList
void addXicPeakList(const Xic *xic_p, const std::vector< pappso::TracePeakCstSPtr > &xic_peak_list)
Definition: qcpxic.cpp:274
pappso::XicWidget::xicPeakListChanged
void xicPeakListChanged(pappso::XicXicPeakPairList xic_peak_list) const
pappso::QCPXic::drawXicPeakBorders
void drawXicPeakBorders(unsigned int i, const Xic *xic_p, const pappso::TracePeak *p_xic_peak)
Definition: qcpxic.cpp:331
pappso::XicWidget::replotAll
void replotAll()
Definition: xicwidget.cpp:186
pappso::QCPXic::addMsMsEvent
void addMsMsEvent(const Xic *xic_p, pappso::pappso_double rt)
Definition: qcpxic.cpp:237
pappso::QCPXic::clearXicPeakBorders
void clearXicPeakBorders()
Definition: qcpxic.cpp:393
pappso::XicCstSPtr
std::shared_ptr< const Xic > XicCstSPtr
Definition: xic.h:37
pappso::XicWidget::_qcp_xic
QCPXic * _qcp_xic
Definition: xicwidget.h:95
pappso::QCPXic::addXicP
void addXicP(const Xic *xic_p)
Definition: qcpxic.cpp:183
pappso::XicWidget::setName
void setName(const Xic *xic_p, const QString &name)
Definition: xicwidget.cpp:80
GraphicDeviceWidget::GraphicDeviceWidget
GraphicDeviceWidget(QWidget *parent)
Definition: graphicdevicewidget.cpp:35
pappso::XicWidget::clicked
void clicked(double rt, double intensity) const
announce mouse position on click (rt in seconds, intensity)
pappso::XicWidget::getXicCstSPtr
XicCstSPtr getXicCstSPtr(const Xic *xic_p) const
Definition: xicwidget.cpp:112
pappso::QCPXic::setName
void setName(const Xic *xic_p, const QString &name)
Definition: qcpxic.cpp:255
pappso::ExceptionNotFound
Definition: exceptionnotfound.h:32
pappso::XicWidget::_xic_sp_list
std::vector< XicCstSPtr > _xic_sp_list
Definition: xicwidget.h:93
pappso::XicWidget::_rt_in_seconds
bool _rt_in_seconds
Definition: xicwidget.h:88
pappso::QCPXic::clear
void clear()
Definition: qcpxic.cpp:263
pappso::QCPXic::rescale
void rescale()
Definition: qcpxic.cpp:214
pappso::XicWidget::rtChanged
void rtChanged(double rt) const
announce the current retention time (under mouse) in seconds
pappso::XicWidget::_map_xic_msms_event
std::map< const Xic *, pappso::pappso_double > _map_xic_msms_event
Definition: xicwidget.h:92
pappso::XicWidget::_xic_peak_sp_list
XicXicPeakPairList _xic_peak_sp_list
Definition: xicwidget.h:94
pappso::XicWidget::QCPXic
friend class QCPXic
Definition: xicwidget.h:80