axis_limits_dialog.cpp
Go to the documentation of this file.
00001 #include "axis_limits_dialog.h"
00002 #include "ui_axis_limits_dialog.h"
00003 
00004 #include <QLineEdit>
00005 #include <QDoubleValidator>
00006 
00007 using std::numeric_limits;
00008 
00009 AxisLimitsDialog::AxisLimitsDialog(QWidget *parent) :
00010     QDialog(parent),
00011     ui(new Ui::AxisLimitsDialog)
00012 {
00013     ui->setupUi(this);
00014 
00015     _limits.min = ( -numeric_limits<double>::max() / 2 );
00016     _limits.max = (  numeric_limits<double>::max() / 2 );
00017 
00018     ui->lineEditMinY->setValidator( new QDoubleValidator( this) );
00019     ui->lineEditMaxY->setValidator( new QDoubleValidator( this) );
00020 
00021 }
00022 
00023 AxisLimitsDialog::~AxisLimitsDialog()
00024 {
00025     delete ui;
00026 }
00027 
00028 void AxisLimitsDialog::setDefaultRange(PlotData::RangeValue range)
00029 {
00030     _parent_limits = range;
00031 
00032     if( !ui->checkBoxMinY->isChecked() )
00033     {
00034         ui->lineEditMinY->setText( QString::number( _parent_limits.min ));
00035     }
00036     if( !ui->checkBoxMaxY->isChecked() )
00037     {
00038         ui->lineEditMaxY->setText( QString::number( _parent_limits.max ));
00039     }
00040 }
00041 
00042 void AxisLimitsDialog::enableMin(bool enabled, double value)
00043 {
00044     _parent_limits.min = value;
00045     ui->lineEditMinY->setText( QString::number( _parent_limits.min ));
00046     ui->checkBoxMinY->setChecked(enabled);
00047 }
00048 
00049 void AxisLimitsDialog::enableMax(bool enabled, double value)
00050 {
00051     _parent_limits.max = value;
00052     ui->lineEditMaxY->setText( QString::number( _parent_limits.max ));
00053     ui->checkBoxMaxY->setChecked(enabled);
00054 }
00055 
00056 bool AxisLimitsDialog::limitsEnabled() const
00057 {
00058     return ui->checkBoxMinY->isChecked() || ui->checkBoxMaxY->isChecked();
00059 }
00060 
00061 void AxisLimitsDialog::on_checkBoxMinY_toggled(bool checked)
00062 {
00063     ui->lineEditMinY->setEnabled(checked);
00064     ui->pushButtonMinY->setEnabled(checked);
00065 }
00066 
00067 void AxisLimitsDialog::on_checkBoxMaxY_toggled(bool checked)
00068 {
00069     ui->lineEditMaxY->setEnabled(checked);
00070     ui->pushButtonMaxY->setEnabled(checked);
00071 }
00072 
00073 void AxisLimitsDialog::on_pushButtonDone_pressed()
00074 {
00075     double ymin = -numeric_limits<double>::max();
00076     double ymax =  numeric_limits<double>::max();
00077 
00078     if ( !ui->lineEditMinY->text().isEmpty() )
00079     {
00080         ymin = ui->lineEditMinY->text().toDouble();
00081     }
00082 
00083     if ( !ui->lineEditMaxY->text().isEmpty() )
00084     {
00085         ymax = ui->lineEditMaxY->text().toDouble();
00086     }
00087 
00088     if( ymin > ymax)
00089     {
00090         //swap
00091         ui->lineEditMinY->setText( QString::number( ymax ));
00092         ui->lineEditMaxY->setText( QString::number( ymin ));
00093     }
00094     else{
00095         _limits.min = ( ui->checkBoxMinY->isChecked() ? ymin : -numeric_limits<double>::max()/2 );
00096         _limits.max = ( ui->checkBoxMaxY->isChecked() ? ymax :  numeric_limits<double>::max()/2 );
00097         this->accept();
00098     }
00099 }
00100 
00101 void AxisLimitsDialog::on_pushButtonMinY_pressed()
00102 {
00103     ui->lineEditMinY->setText( QString::number( _parent_limits.min) );
00104 }
00105 
00106 void AxisLimitsDialog::on_pushButtonMaxY_pressed()
00107 {
00108     ui->lineEditMaxY->setText( QString::number( _parent_limits.max) );
00109 }
00110 
00111 void AxisLimitsDialog::closeEvent(QCloseEvent *event)
00112 {
00113     on_pushButtonDone_pressed();
00114 }


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:55