-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlimitsgroupbox.cpp
75 lines (63 loc) · 1.59 KB
/
limitsgroupbox.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "limitsgroupbox.h"
#include "ui_limitsgroupbox.h"
#include <cmath>
LimitsGroupBox::LimitsGroupBox(QWidget *parent) :
QGroupBox(parent),
ui(new Ui::LimitsGroupBox)
{
ui->setupUi(this);
paletteNormal = palette();
paletteError = paletteNormal;
paletteError.setColor(QPalette::Text, Qt::red);
paletteError.setColor(QPalette::HighlightedText, Qt::red);
validLimits = true;
on_pbSymmetry_toggled(true);
}
LimitsGroupBox::~LimitsGroupBox()
{
delete ui;
}
void LimitsGroupBox::changeEvent(QEvent *e)
{
QGroupBox::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void LimitsGroupBox::valuesChanged(double val)
{
if (ui->pbSymmetry->isChecked()) {
val = abs(val);
ui->sbFrom->setValue(-val);
ui->sbTo->setValue(+val);
}
bool tmp = ui->sbFrom->value() < ui->sbTo->value();
if (tmp!=validLimits)
setPalette( (tmp) ? paletteNormal : paletteError );
validLimits = tmp;
}
void LimitsGroupBox::on_pbSymmetry_toggled(bool checked)
{
if (checked) {
ui->sbFrom->setMaximum(0.0);
ui->sbTo->setMinimum(0.0);
double delta = limitTo() - limitFrom();
ui->sbFrom->setValue(-fabs(delta/2));
} else {
ui->sbFrom->setMaximum(1000.0);
ui->sbTo->setMinimum(-1000.0);
}
}
bool LimitsGroupBox::isValid() {
return validLimits;
}
double LimitsGroupBox::limitFrom() {
return ui->sbFrom->value();
}
double LimitsGroupBox::limitTo() {
return ui->sbTo->value();
}