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()->setContentsMargins(0, 0, 0, 0);
48 
49  // Each precision type has its own double spin box.
50  mp_daltonValueSpinBox = new QDoubleSpinBox();
51  this->layout()->addWidget(mp_daltonValueSpinBox);
52 
53  mp_ppmValueSpinBox = new QDoubleSpinBox();
54  this->layout()->addWidget(mp_ppmValueSpinBox);
55 
56  mp_resValueSpinBox = new QDoubleSpinBox();
57  this->layout()->addWidget(mp_resValueSpinBox);
58 
59  mp_unitComboBox = new QComboBox();
60  this->layout()->addWidget(mp_unitComboBox);
61 
62  mp_unitComboBox->addItem("dalton", QString("dalton"));
63  mp_unitComboBox->addItem("ppm", QString("ppm"));
64  mp_unitComboBox->addItem("res", QString("res"));
65 
69 
70  mp_daltonValueSpinBox->setDecimals(3);
71  mp_daltonValueSpinBox->setSingleStep(0.01);
72  mp_daltonValueSpinBox->setRange(0, 30);
73 
74  mp_ppmValueSpinBox->setDecimals(4);
75  mp_ppmValueSpinBox->setSingleStep(10);
76  mp_ppmValueSpinBox->setRange(0.0001, 300);
77 
78  mp_resValueSpinBox->setDecimals(0);
79  mp_resValueSpinBox->setSingleStep(1000);
80  mp_resValueSpinBox->setRange(1, 2000000);
81 
82  // By default set precision to be of the Dalton type.
84 
85  connect(mp_unitComboBox,
86  SIGNAL(currentIndexChanged(int)),
87  this,
88  SLOT(setCurrentIndex(int)));
89 
90  connect(mp_daltonValueSpinBox,
91  SIGNAL(valueChanged(double)),
92  this,
93  SLOT(setDaltonValueChanged(double)));
94 
95  connect(mp_ppmValueSpinBox,
96  SIGNAL(valueChanged(double)),
97  this,
98  SLOT(setPpmValueChanged(double)));
99 
100  connect(mp_resValueSpinBox,
101  SIGNAL(valueChanged(double)),
102  this,
103  SLOT(setResValueChanged(double)));
104 
105  m_oldIndex = -1;
106  // qDebug() << "PrecisionWidget::PrecisionWidget end";
107 }
static PrecisionPtr getResInstance(pappso_double value)
get a resolution precision pointer
Definition: precision.cpp:177
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
Definition: precision.cpp:150
static PrecisionPtr getDaltonInstance(pappso_double value)
get a Dalton precision pointer
Definition: precision.cpp:130
QDoubleSpinBox * mp_daltonValueSpinBox
Q_SLOT void setDaltonValueChanged(double)
QDoubleSpinBox * mp_ppmValueSpinBox
Q_SLOT void setResValueChanged(double)
Q_SLOT void setCurrentIndex(int)
PrecisionPtr mp_precisionRes
Q_SLOT void setPpmValueChanged(double)
void setPrecision(PrecisionPtr precision)
QDoubleSpinBox * mp_resValueSpinBox
PrecisionPtr mp_precisionDalton
PrecisionPtr mp_precisionPpm

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 109 of file precisionwidget.cpp.

110 {
111 }

Member Function Documentation

◆ getPrecision()

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

Definition at line 205 of file precisionwidget.cpp.

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

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 114 of file precisionwidget.cpp.

115 {
116  // qDebug() << "PrecisionWidget::setCurrentIndex index=" << index;
117 
118  if(m_oldIndex != index)
119  {
120  m_oldIndex = index;
121 
122  if(mp_unitComboBox->itemData(index) == "dalton")
123  {
125  mp_daltonValueSpinBox->setVisible(true);
126 
127  mp_ppmValueSpinBox->setVisible(false);
128  mp_resValueSpinBox->setVisible(false);
129 
131  }
132  else if(mp_unitComboBox->itemData(index) == "ppm")
133  {
135  mp_ppmValueSpinBox->setVisible(true);
136 
137  mp_daltonValueSpinBox->setVisible(false);
138  mp_resValueSpinBox->setVisible(false);
139 
141  }
142  else if(mp_unitComboBox->itemData(index) == "res")
143  {
145  mp_resValueSpinBox->setVisible(true);
146 
147  mp_daltonValueSpinBox->setVisible(false);
148  mp_ppmValueSpinBox->setVisible(false);
149 
151  }
152  else
153  {
154  throw ExceptionNotPossible(
155  "precisionwidget.cpp @ setCurrentIndex(int index) -- ERROR "
156  "programming error.");
157  }
158  }
159 }
virtual pappso_double getNominal() const final
Definition: precision.cpp:65
void precisionChanged(pappso::PrecisionPtr precision) const

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 163 of file precisionwidget.cpp.

164 {
165  // qDebug() << "dalton PrecisionWidget::setValueChanged value=" << value;
166 
168  if(mp_precisionDalton != precision)
169  {
170  mp_precisionDalton = precision;
172  }
173 }
const PrecisionBase * PrecisionPtr
Definition: precision.h:122

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

Referenced by PrecisionWidget().

◆ setPpmValueChanged()

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

Definition at line 177 of file precisionwidget.cpp.

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

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

Referenced by PrecisionWidget().

◆ setPrecision()

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

Definition at line 228 of file precisionwidget.cpp.

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

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

Referenced by PrecisionWidget().

◆ setResValueChanged()

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

Definition at line 191 of file precisionwidget.cpp.

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

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: