libpappsomspp
Library for mass spectrometry
pappso::PrecisionWidget Class Reference

#include <precisionwidget.h>

Inheritance diagram for pappso::PrecisionWidget:

Signals

void precisionChanged (pappso::PrecisionPtr precision) const
 

Public Member Functions

 PrecisionWidget (QWidget *parent=0)
 
 ~PrecisionWidget ()
 
void setPrecision (PrecisionPtr precision)
 
const PrecisionPtrgetPrecision () const
 

Private Member Functions

Q_SLOT void setCurrentIndex (int)
 
Q_SLOT void setPpmValueChanged (double)
 
Q_SLOT void setResValueChanged (double)
 
Q_SLOT void setDaltonValueChanged (double)
 

Private Attributes

QComboBox * mp_unitComboBox
 
QDoubleSpinBox * mp_ppmValueSpinBox
 
QDoubleSpinBox * mp_resValueSpinBox
 
QDoubleSpinBox * mp_daltonValueSpinBox
 
PrecisionPtr mp_precisionDalton
 
PrecisionPtr mp_precisionPpm
 
PrecisionPtr mp_precisionRes
 
int m_oldIndex
 

Detailed Description

Definition at line 45 of file precisionwidget.h.

Constructor & Destructor Documentation

◆ PrecisionWidget()

pappso::PrecisionWidget::PrecisionWidget ( QWidget *  parent = 0)

Definition at line 41 of file precisionwidget.cpp.

41  : QWidget(parent)
42 {
43  // qDebug() << __FILE__ << __LINE__ << __FUNCTION__
44  //<< "PrecisionWidget::PrecisionWidget begin";
45  setLayout(new QHBoxLayout(this));
46 
47  this->layout()->setMargin(0);
48  this->layout()->setContentsMargins(0, 0, 0, 0);
49 
50  // Each precision type has its own double spin box.
51  mp_daltonValueSpinBox = new QDoubleSpinBox();
52  this->layout()->addWidget(mp_daltonValueSpinBox);
53 
54  mp_ppmValueSpinBox = new QDoubleSpinBox();
55  this->layout()->addWidget(mp_ppmValueSpinBox);
56 
57  mp_resValueSpinBox = new QDoubleSpinBox();
58  this->layout()->addWidget(mp_resValueSpinBox);
59 
60  mp_unitComboBox = new QComboBox();
61  this->layout()->addWidget(mp_unitComboBox);
62 
63  mp_unitComboBox->addItem("dalton", QString("dalton"));
64  mp_unitComboBox->addItem("ppm", QString("ppm"));
65  mp_unitComboBox->addItem("res", QString("res"));
66 
70 
71  mp_daltonValueSpinBox->setDecimals(3);
72  mp_daltonValueSpinBox->setSingleStep(0.01);
73  mp_daltonValueSpinBox->setRange(0, 30);
74 
75  mp_ppmValueSpinBox->setDecimals(4);
76  mp_ppmValueSpinBox->setSingleStep(10);
77  mp_ppmValueSpinBox->setRange(0.0001, 300);
78 
79  mp_resValueSpinBox->setDecimals(0);
80  mp_resValueSpinBox->setSingleStep(1000);
81  mp_resValueSpinBox->setRange(1, 2000000);
82 
83  // By default set precision to be of the Dalton type.
85 
86  connect(mp_unitComboBox,
87  SIGNAL(currentIndexChanged(int)),
88  this,
89  SLOT(setCurrentIndex(int)));
90 
91  connect(mp_daltonValueSpinBox,
92  SIGNAL(valueChanged(double)),
93  this,
94  SLOT(setDaltonValueChanged(double)));
95 
96  connect(mp_ppmValueSpinBox,
97  SIGNAL(valueChanged(double)),
98  this,
99  SLOT(setPpmValueChanged(double)));
100 
101  connect(mp_resValueSpinBox,
102  SIGNAL(valueChanged(double)),
103  this,
104  SLOT(setResValueChanged(double)));
105 
106  m_oldIndex = -1;
107  // qDebug() << "PrecisionWidget::PrecisionWidget end";
108 }

References pappso::PrecisionFactory::getDaltonInstance(), pappso::PrecisionFactory::getPpmInstance(), pappso::PrecisionFactory::getResInstance(), m_oldIndex, mp_daltonValueSpinBox, mp_ppmValueSpinBox, mp_precisionDalton, mp_precisionPpm, mp_precisionRes, mp_resValueSpinBox, mp_unitComboBox, setCurrentIndex(), setDaltonValueChanged(), setPpmValueChanged(), setPrecision(), and setResValueChanged().

◆ ~PrecisionWidget()

pappso::PrecisionWidget::~PrecisionWidget ( )

Definition at line 110 of file precisionwidget.cpp.

111 {
112 }

Member Function Documentation

◆ getPrecision()

const PrecisionPtr & pappso::PrecisionWidget::getPrecision ( ) const

Definition at line 206 of file precisionwidget.cpp.

207 {
208  if(mp_unitComboBox->itemData(mp_unitComboBox->currentIndex()) == "dalton")
209  {
210  return mp_precisionDalton;
211  }
212  else if(mp_unitComboBox->itemData(mp_unitComboBox->currentIndex()) == "ppm")
213  {
214  return mp_precisionPpm;
215  }
216  else if(mp_unitComboBox->itemData(mp_unitComboBox->currentIndex()) == "res")
217  {
218  return mp_precisionRes;
219  }
220  else
221  {
222  throw ExceptionNotPossible(
223  "precisionwidget.cpp @ getPrecision()-- ERROR programming error.");
224  }
225 }

References mp_precisionDalton, mp_precisionPpm, mp_precisionRes, and mp_unitComboBox.

◆ precisionChanged

void pappso::PrecisionWidget::precisionChanged ( pappso::PrecisionPtr  precision) const
signal

◆ setCurrentIndex()

void pappso::PrecisionWidget::setCurrentIndex ( int  index)
private

Definition at line 115 of file precisionwidget.cpp.

116 {
117  // qDebug() << "PrecisionWidget::setCurrentIndex index=" << index;
118 
119  if(m_oldIndex != index)
120  {
121  m_oldIndex = index;
122 
123  if(mp_unitComboBox->itemData(index) == "dalton")
124  {
126  mp_daltonValueSpinBox->setVisible(true);
127 
128  mp_ppmValueSpinBox->setVisible(false);
129  mp_resValueSpinBox->setVisible(false);
130 
132  }
133  else if(mp_unitComboBox->itemData(index) == "ppm")
134  {
136  mp_ppmValueSpinBox->setVisible(true);
137 
138  mp_daltonValueSpinBox->setVisible(false);
139  mp_resValueSpinBox->setVisible(false);
140 
142  }
143  else if(mp_unitComboBox->itemData(index) == "res")
144  {
146  mp_resValueSpinBox->setVisible(true);
147 
148  mp_daltonValueSpinBox->setVisible(false);
149  mp_ppmValueSpinBox->setVisible(false);
150 
152  }
153  else
154  {
155  throw ExceptionNotPossible(
156  "precisionwidget.cpp @ setCurrentIndex(int index) -- ERROR "
157  "programming error.");
158  }
159  }
160 }

References pappso::PrecisionBase::getNominal(), m_oldIndex, mp_daltonValueSpinBox, mp_ppmValueSpinBox, mp_precisionDalton, mp_precisionPpm, mp_precisionRes, mp_resValueSpinBox, mp_unitComboBox, and precisionChanged().

Referenced by PrecisionWidget().

◆ setDaltonValueChanged()

void pappso::PrecisionWidget::setDaltonValueChanged ( double  value)
private

Definition at line 164 of file precisionwidget.cpp.

165 {
166  // qDebug() << "dalton PrecisionWidget::setValueChanged value=" << value;
167 
169  if(mp_precisionDalton != precision)
170  {
171  mp_precisionDalton = precision;
173  }
174 }

References pappso::PrecisionFactory::getDaltonInstance(), mp_precisionDalton, and precisionChanged().

Referenced by PrecisionWidget().

◆ setPpmValueChanged()

void pappso::PrecisionWidget::setPpmValueChanged ( double  value)
private

Definition at line 178 of file precisionwidget.cpp.

179 {
180  // qDebug() << "ppm PrecisionWidget::setValueChanged value=" << value;
181 
183  if(mp_precisionPpm != precision)
184  {
185  mp_precisionPpm = precision;
187  }
188 }

References pappso::PrecisionFactory::getPpmInstance(), mp_precisionPpm, and precisionChanged().

Referenced by PrecisionWidget().

◆ setPrecision()

void pappso::PrecisionWidget::setPrecision ( PrecisionPtr  precision)

Definition at line 229 of file precisionwidget.cpp.

230 {
231 
232  if(precision->unit() == PrecisionUnit::dalton)
233  {
234  mp_precisionDalton = precision;
235  mp_unitComboBox->setCurrentIndex(
236  mp_unitComboBox->findData(QString("dalton")));
237 
238  mp_daltonValueSpinBox->setValue(precision->getNominal());
239  mp_daltonValueSpinBox->setVisible(true);
240 
241  mp_ppmValueSpinBox->setVisible(false);
242  mp_resValueSpinBox->setVisible(false);
243  }
244  else if(precision->unit() == PrecisionUnit::ppm)
245  {
246  mp_precisionPpm = precision;
247  mp_unitComboBox->setCurrentIndex(
248  mp_unitComboBox->findData(QString("ppm")));
249 
250  mp_ppmValueSpinBox->setValue(precision->getNominal());
251  mp_ppmValueSpinBox->setVisible(true);
252 
253  mp_daltonValueSpinBox->setVisible(false);
254  mp_resValueSpinBox->setVisible(false);
255  }
256  else if(precision->unit() == PrecisionUnit::res)
257  {
258  mp_precisionRes = precision;
259  mp_unitComboBox->setCurrentIndex(
260  mp_unitComboBox->findData(QString("res")));
261 
262  mp_resValueSpinBox->setValue(precision->getNominal());
263  mp_resValueSpinBox->setVisible(true);
264 
265  mp_daltonValueSpinBox->setVisible(false);
266  mp_ppmValueSpinBox->setVisible(false);
267  }
268  else
269  {
270  throw ExceptionNotPossible(
271  "precisionwidget.cpp @ setPrecision(PrecisionPtr precision)-- ERROR "
272  "programming error.");
273  }
274 }

References pappso::PrecisionBase::getNominal(), mp_daltonValueSpinBox, mp_ppmValueSpinBox, mp_precisionDalton, mp_precisionPpm, mp_precisionRes, mp_resValueSpinBox, mp_unitComboBox, and pappso::PrecisionBase::unit().

Referenced by PrecisionWidget().

◆ setResValueChanged()

void pappso::PrecisionWidget::setResValueChanged ( double  value)
private

Definition at line 192 of file precisionwidget.cpp.

193 {
194  // qDebug() << "res PrecisionWidget::setValueChanged value=" << value;
195 
197  if(mp_precisionRes != precision)
198  {
199  mp_precisionRes = precision;
201  }
202 }

References pappso::PrecisionFactory::getResInstance(), mp_precisionRes, and precisionChanged().

Referenced by PrecisionWidget().

Member Data Documentation

◆ m_oldIndex

int pappso::PrecisionWidget::m_oldIndex
private

Definition at line 60 of file precisionwidget.h.

Referenced by PrecisionWidget(), and setCurrentIndex().

◆ mp_daltonValueSpinBox

QDoubleSpinBox* pappso::PrecisionWidget::mp_daltonValueSpinBox
private

Definition at line 54 of file precisionwidget.h.

Referenced by PrecisionWidget(), setCurrentIndex(), and setPrecision().

◆ mp_ppmValueSpinBox

QDoubleSpinBox* pappso::PrecisionWidget::mp_ppmValueSpinBox
private

Definition at line 52 of file precisionwidget.h.

Referenced by PrecisionWidget(), setCurrentIndex(), and setPrecision().

◆ mp_precisionDalton

PrecisionPtr pappso::PrecisionWidget::mp_precisionDalton
private

◆ mp_precisionPpm

PrecisionPtr pappso::PrecisionWidget::mp_precisionPpm
private

◆ mp_precisionRes

PrecisionPtr pappso::PrecisionWidget::mp_precisionRes
private

◆ mp_resValueSpinBox

QDoubleSpinBox* pappso::PrecisionWidget::mp_resValueSpinBox
private

Definition at line 53 of file precisionwidget.h.

Referenced by PrecisionWidget(), setCurrentIndex(), and setPrecision().

◆ mp_unitComboBox

QComboBox* pappso::PrecisionWidget::mp_unitComboBox
private

Definition at line 50 of file precisionwidget.h.

Referenced by PrecisionWidget(), getPrecision(), setCurrentIndex(), and setPrecision().


The documentation for this class was generated from the following files:
pappso::PrecisionWidget::setPrecision
void setPrecision(PrecisionPtr precision)
Definition: precisionwidget.cpp:229
pappso::PrecisionFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
Definition: precision.cpp:149
pappso::PrecisionWidget::precisionChanged
void precisionChanged(pappso::PrecisionPtr precision) const
pappso::PrecisionWidget::mp_unitComboBox
QComboBox * mp_unitComboBox
Definition: precisionwidget.h:50
pappso::PrecisionWidget::mp_resValueSpinBox
QDoubleSpinBox * mp_resValueSpinBox
Definition: precisionwidget.h:53
pappso::PrecisionWidget::setPpmValueChanged
Q_SLOT void setPpmValueChanged(double)
Definition: precisionwidget.cpp:178
pappso::PrecisionWidget::mp_daltonValueSpinBox
QDoubleSpinBox * mp_daltonValueSpinBox
Definition: precisionwidget.h:54
pappso::PrecisionWidget::mp_precisionDalton
PrecisionPtr mp_precisionDalton
Definition: precisionwidget.h:56
pappso::PrecisionWidget::m_oldIndex
int m_oldIndex
Definition: precisionwidget.h:60
pappso::PrecisionFactory::getDaltonInstance
static PrecisionPtr getDaltonInstance(pappso_double value)
get a Dalton precision pointer
Definition: precision.cpp:129
pappso::PrecisionBase::getNominal
virtual pappso_double getNominal() const final
Definition: precision.cpp:64
pappso::PrecisionWidget::setResValueChanged
Q_SLOT void setResValueChanged(double)
Definition: precisionwidget.cpp:192
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition: precision.h:122
pappso::PrecisionWidget::mp_ppmValueSpinBox
QDoubleSpinBox * mp_ppmValueSpinBox
Definition: precisionwidget.h:52
pappso::PrecisionWidget::setCurrentIndex
Q_SLOT void setCurrentIndex(int)
Definition: precisionwidget.cpp:115
pappso::PrecisionWidget::mp_precisionRes
PrecisionPtr mp_precisionRes
Definition: precisionwidget.h:58
pappso::PrecisionFactory::getResInstance
static PrecisionPtr getResInstance(pappso_double value)
get a resolution precision pointer
Definition: precision.cpp:176
pappso::PrecisionWidget::mp_precisionPpm
PrecisionPtr mp_precisionPpm
Definition: precisionwidget.h:57
pappso::PrecisionWidget::setDaltonValueChanged
Q_SLOT void setDaltonValueChanged(double)
Definition: precisionwidget.cpp:164