diff --git a/slsDetectorGui/include/qScanWidget.h b/slsDetectorGui/include/qScanWidget.h index 24e820c14..bcbaba50e 100644 --- a/slsDetectorGui/include/qScanWidget.h +++ b/slsDetectorGui/include/qScanWidget.h @@ -130,6 +130,10 @@ int RangeCheckSizeZero(); * */ int RangeCheckNumValid(int &num); +/**returns fail if to is not exact + * */ +int RangeCheckToValid(); + /** Sets number of steps if from changed * */ void RangeFromChanged(); diff --git a/slsDetectorGui/src/qScanWidget.cpp b/slsDetectorGui/src/qScanWidget.cpp index 3b748a364..5669e9f7d 100644 --- a/slsDetectorGui/src/qScanWidget.cpp +++ b/slsDetectorGui/src/qScanWidget.cpp @@ -95,6 +95,7 @@ void qScanWidget::SetupWidgetWindow(){ spinFrom->setDecimals(4); lblTo->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); lblTo->setToolTip(rangeTip); + lblTo->setFixedWidth(18); spinTo->setValue(1); spinTo->setToolTip(rangeTip); spinTo->setMaximum(1000000); @@ -227,37 +228,40 @@ void qScanWidget::EnableSizeWidgets(){ radioFile->setToolTip(fileTip); dispFile->setToolTip(fileTip); btnFile->setToolTip(fileTip); + + lblTo->setPalette(normal); + lblTo->setText("to"); + lblTo->setToolTip(rangeTip); + spinTo->setToolTip(rangeTip); } else{ - // Steps are enabled for all except Range step size - /**lblSteps->setEnabled(!radioRange->isChecked()); - spinSteps->setEnabled(!radioRange->isChecked());*/ //range values if(radioRange->isChecked()){ #ifdef VERBOSE - cout << "Constant Range Values" << endl; + cout << "Constant Range Values" << endl; #endif - radioCustom->setText("Specific Values"); - radioCustom->setPalette(normal); - radioCustom->setToolTip(customTip); - comboCustom->setToolTip(customTip); + radioCustom->setText("Specific Values"); + radioCustom->setPalette(normal); + radioCustom->setToolTip(customTip); + comboCustom->setToolTip(customTip); - radioFile->setPalette(normal); - radioFile->setText("Values from File:"); - radioFile->setToolTip(fileTip); - dispFile->setToolTip(fileTip); - btnFile->setToolTip(fileTip); + radioFile->setPalette(normal); + radioFile->setText("Values from File:"); + radioFile->setToolTip(fileTip); + dispFile->setToolTip(fileTip); + btnFile->setToolTip(fileTip); - stackedLayout->setCurrentIndex(RangeValues); + stackedLayout->setCurrentIndex(RangeValues); - //recaluculate number of steps - disconnect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps())); - spinSteps->setValue(1+(int)(abs((spinTo->value() - spinFrom->value()) / spinSize->value()))); - connect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps())); + //recaluculate number of steps + disconnect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps())); + spinSteps->setValue(1+(int)(abs((spinTo->value() - spinFrom->value()) / spinSize->value()))); + connect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps())); - spinSteps->setMinimum(2); - SetRangeSteps(); + spinSteps->setMinimum(2); + RangeCheckToValid(); + SetRangeSteps(); } //custom values else if(radioCustom->isChecked()){ @@ -272,6 +276,11 @@ void qScanWidget::EnableSizeWidgets(){ dispFile->setToolTip(fileTip); btnFile->setToolTip(fileTip); + lblTo->setPalette(normal); + lblTo->setText("to"); + lblTo->setToolTip(rangeTip); + spinTo->setToolTip(rangeTip); + //change it back as this list is what will be loaded. //also numstpes could have been changed in other modes too disconnect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps())); @@ -304,6 +313,11 @@ void qScanWidget::EnableSizeWidgets(){ radioCustom->setToolTip(customTip); comboCustom->setToolTip(customTip); + lblTo->setPalette(normal); + lblTo->setText("to"); + lblTo->setToolTip(rangeTip); + spinTo->setToolTip(rangeTip); + stackedLayout->setCurrentIndex(FileValues); SetFileSteps(); } @@ -335,9 +349,6 @@ void qScanWidget::SetMode(int mode){ // If anything other than None is selected if(mode){ - // Steps are enabled for all except Range step size - /**lblSteps->setEnabled(!radioRange->isChecked()); - spinSteps->setEnabled(!radioRange->isChecked());*/ lblSteps->setEnabled(true); spinSteps->setEnabled(true); // Custom Script only enables the first layout with addnl parameters etc @@ -552,7 +563,7 @@ void qScanWidget::SetNSteps(){ disconnect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(RangeSizeChanged())); spinSize->setValue( (spinTo->value()-spinFrom->value()) / (spinSteps->value()-1)); connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(RangeSizeChanged())); - + RangeCheckToValid(); SetRangeSteps(); }else if(radioCustom->isChecked()){ comboCustom->setMaxCount(spinSteps->value()); @@ -586,13 +597,11 @@ int qScanWidget::RangeCheckNumValid(int &num){ cout << "Entering RangeCheckNumValid()" << endl; #endif double div = abs(spinTo->value()-spinFrom->value())/(abs(spinSize->value())); - cout<<"div:"<