scale_transform.cpp
Go to the documentation of this file.
1 #include "scale_transform.h"
2 #include "ui_scale_transform.h"
3 
5  _widget(new QWidget()),
6  ui(new Ui::ScaleTransform)
7 {
8  ui->setupUi(_widget);
9 
10 // ui->lineEditValue->setValidator( new QDoubleValidator() );
11 
12  connect(ui->buttonDegRad, &QPushButton::clicked,
13  this, [=](){
14  const double deg_rad = 3.14159265359 / 180;
15  ui->lineEditValueScale->setText( QString::number(deg_rad, 'g', 5));
16  emit parametersChanged();
17  } );
18 
19  connect(ui->buttonRadDeg, &QPushButton::clicked,
20  this, [=](){
21  const double rad_deg = 180.0 / 3.14159265359;
22  ui->lineEditValueScale->setText( QString::number(rad_deg, 'g', 5));
23  emit parametersChanged();
24  } );
25 
26  connect(ui->lineEditTimeOffset, &QLineEdit::editingFinished,
27  this, [=](){ emit parametersChanged(); } );
28  connect(ui->lineEditValueOffset, &QLineEdit::editingFinished,
29  this, [=](){ emit parametersChanged(); } );
30  connect(ui->lineEditValueScale, &QLineEdit::editingFinished,
31  this, [=](){ emit parametersChanged(); } );
32 }
33 
35 {
36  delete ui;
37  delete _widget;
38 }
39 
40 const char *ScaleTransform::name() const {
41  return "Scale/Offset";
42 }
43 
45 {
46  return _widget;
47 }
48 
49 bool ScaleTransform::xmlSaveState(QDomDocument &doc, QDomElement &parent_element) const
50 {
51  QDomElement widget_el = doc.createElement("options");
52  widget_el.setAttribute("time_offset", ui->lineEditTimeOffset->text() );
53  widget_el.setAttribute("value_offset", ui->lineEditValueOffset->text() );
54  widget_el.setAttribute("value_scale", ui->lineEditValueScale->text() );
55  parent_element.appendChild( widget_el );
56 
57  return true;
58 }
59 
60 bool ScaleTransform::xmlLoadState(const QDomElement &parent_element)
61 {
62  QDomElement widget_el = parent_element.firstChildElement("options");
63  ui->lineEditTimeOffset->setText( widget_el.attribute("time_offset") );
64  ui->lineEditValueOffset->setText( widget_el.attribute("value_offset") );
65  ui->lineEditValueScale->setText( widget_el.attribute("value_scale") );
66  return true;
67 }
68 
70 {
71  double off_x = ui->lineEditTimeOffset->text().toDouble();
72  double off_y = ui->lineEditValueOffset->text().toDouble();
73  double scale = ui->lineEditValueScale->text().toDouble();
74 
75  const auto& p = dataSource()->at(index);
76  PlotData::Point out = {p.x + off_x, scale * p.y + off_y};
77  return out;
78 }
const Point & at(size_t index) const
Definition: plotdata.h:97
Ui::ScaleTransform * ui
QWidget * optionsWidget() override
bool xmlSaveState(QDomDocument &doc, QDomElement &parent_element) const override
const char * name() const override
bool xmlLoadState(const QDomElement &parent_element) override
const PlotData * dataSource() const
~ScaleTransform() override
QWidget * _widget
nonstd::optional< PlotData::Point > calculateNextPoint(size_t index) override
typename PlotDataBase< Value >::Point Point
Definition: plotdata.h:290


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:11