Repository navigation
Expand file tree
/
Copy pathddmFrictionCountyFilterWidget.cpp
More file actions
77 lines (63 loc) · 2.5 KB
/
Copy pathddmFrictionCountyFilterWidget.cpp
File metadata and controls
77 lines (63 loc) · 2.5 KB
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
76
77
#include <QDoubleValidator>
#include "ddmFrictionCountyFilterWidget.h"
#include "ui_ddmfrictioncountyfilterwidget.h"
ddmFrictionCountyFilterWidget::ddmFrictionCountyFilterWidget( ddmFrictionCountyFilter* filter, QWidget *parent) :
QWidget(parent),
ui(new Ui::ddmFrictionCountyFilterWidget)
{
ui->setupUi( this );
ui->gridLayout->setContentsMargins( 0,0,0,0 );
this->setContentsMargins( 0,0,0,0 );
ui->m_lbTitle->setWordWrap( true );
ui->m_lbWarning->setWordWrap( true );
ui->m_lbWarning->setText( "Некорректно заданны входные значения!" );
ui->m_lbWarning->setStyleSheet( "QLabel { background-color : yellow; }");
ui->m_lbWarning->hide();
int decimals = 7;
double minValue = 0.0, maxValue = 999.0;
QDoubleValidator* leValidator = new QDoubleValidator( minValue, maxValue, decimals, this );
leValidator->setNotation( QDoubleValidator::StandardNotation );
ui->m_leFrom->setValidator( leValidator );
ui->m_leTo->setValidator( leValidator );
ui->m_leFrom->setText( "0,0" );
ui->m_leTo->setText( "0,5" );
m_filter = filter;
installEvents();
}
ddmFrictionCountyFilterWidget::~ddmFrictionCountyFilterWidget()
{
delete ui;
}
void ddmFrictionCountyFilterWidget::installEvents()
{
// TODO: connect events here
connect( ui->m_pbUpdateView, SIGNAL( pressed() ), this, SLOT( updateVisualize() ) );
connect( ui->m_leFrom, SIGNAL( textEdited( const QString & ) ), this, SLOT( slotVerifyData( const QString& ) ), Qt::UniqueConnection );
connect( ui->m_leTo, SIGNAL( textEdited( const QString & ) ), this, SLOT( slotVerifyData( const QString& ) ), Qt::UniqueConnection );
}
void ddmFrictionCountyFilterWidget::updateVisualize()
{
// TODO: code here
}
void ddmFrictionCountyFilterWidget::slotVerifyData( const QString& text )
{
if( ui->m_leFrom->text().isEmpty() || ui->m_leTo->text().isEmpty() )
{
ui->m_lbWarning->show();
return;
}
// toDouble() не может преобразовать строку вида 1.2 ( нужна строка 1.2 )
// QDoubleValidator дает вводить строки вида (1,2) (Qt bug?)
// из-за этого меняем "," на "."
QString mins, maxs;
mins = ui->m_leFrom->text().replace( ",", "." );
maxs = ui->m_leTo->text().replace( ",", "." );
double min = mins.toDouble();
double max = maxs.toDouble();
if( min > max )
{
ui->m_lbWarning->show();
return;
}
ui->m_lbWarning->hide();
}