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...
 
void operateNewRange (QCPRange new_range)
 get the new Range when its change More...
 

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 More...
 
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
Definition: xicwidget.cpp:139
std::map< const Xic *, pappso::pappso_double > _map_xic_msms_event
Definition: xicwidget.h:101
std::shared_ptr< const Xic > XicCstSPtr
Definition: xic.h:37
@ 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:34

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 }
void clear()
Definition: qcpxic.cpp:301
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);
99  _qcp_xic->rescale();
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 Function 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: