diff --git a/slsDetectorGui/slsDetectorGui.pro b/slsDetectorGui/slsDetectorGui.pro
index 60f610edb..c7593e21e 100644
--- a/slsDetectorGui/slsDetectorGui.pro
+++ b/slsDetectorGui/slsDetectorGui.pro
@@ -6,7 +6,7 @@ UI_HEADERS_DIR = forms/include
RESOURCES += icons.qrc
-DEFINES += VERBOSE DACS_INT
+DEFINES += VERBOSE DACS_INT VERYVERBOSE
target.path += $(DESTDIR)
diff --git a/slsDetectorGui/src/qScanWidget.cpp b/slsDetectorGui/src/qScanWidget.cpp
index 5331ca144..8ce46108e 100644
--- a/slsDetectorGui/src/qScanWidget.cpp
+++ b/slsDetectorGui/src/qScanWidget.cpp
@@ -87,17 +87,21 @@ void qScanWidget::SetupWidgetWindow(){
spinFrom->setValue(0);
spinFrom->setToolTip(rangeTip);
spinFrom->setMaximum(1000000);
+ spinFrom->setKeyboardTracking(false);
lblTo->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
lblTo->setToolTip(rangeTip);
spinTo->setValue(1);
spinTo->setToolTip(rangeTip);
spinTo->setMaximum(1000000);
+ spinTo->setKeyboardTracking(false);
lblSize->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
lblSize->setToolTip(rangeTip);
lblSize->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
lblSize->setFixedWidth(67);
spinSize->setValue(1);
+ spinSize->setSingleStep(0.1);
spinSize->setToolTip(rangeTip);
+ spinSize->setKeyboardTracking(false);
layoutRange->addItem(new QSpacerItem(40,20,QSizePolicy::Fixed,QSizePolicy::Fixed));
layoutRange->addWidget(lblFrom);
layoutRange->addItem(new QSpacerItem(5,20,QSizePolicy::Fixed,QSizePolicy::Fixed));
@@ -175,9 +179,9 @@ void qScanWidget::Initialization(){
//precision
connect(spinPrecision, SIGNAL(valueChanged(int)), this, SLOT(SetPrecision(int)));
//range values
- connect(spinFrom, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
- connect(spinTo, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
- connect(spinSize, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ connect(spinFrom, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ connect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
//custom values
connect(comboCustom, SIGNAL(currentIndexChanged(int)), this, SLOT(SetCustomSteps()));
connect(btnCustom, SIGNAL(clicked()), this, SLOT(DeleteCustomSteps()));
@@ -191,8 +195,8 @@ void qScanWidget::Initialization(){
void qScanWidget::EnableSizeWidgets(){
-#ifdef VERBOSE
- cout << "Entering enable size widgets" << endl;
+#ifdef VERYVERBOSE
+ cout << "Entering EnableSizeWidgets()" << endl;
#endif
//setting to defaults is not done here as this is called even if mode changes
//so only if its to change the size widget type, its set to default for the others
@@ -286,6 +290,9 @@ void qScanWidget::EnableSizeWidgets(){
void qScanWidget::SetMode(int mode){
+#ifdef VERYVERBOSE
+ cout << "Entering SetMode()" << endl;
+#endif
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tmode:" << mode << endl;
#endif
@@ -332,6 +339,9 @@ void qScanWidget::SetMode(int mode){
int qScanWidget::SetScan(int mode){
+#ifdef VERYVERBOSE
+ cout << "Entering SetScan()" << endl;
+#endif
string parameter = string(dispParameter->text().toAscii().constData());
string script = string(dispScript->text().toAscii().constData());
#ifdef VERBOSE
@@ -384,6 +394,9 @@ int qScanWidget::SetScan(int mode){
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qScanWidget::BrowsePath(){
+#ifdef VERYVERBOSE
+ cout << "Entering BrowsePath()" << endl;
+#endif
#ifdef VERBOSE
cout << "Browsing Script File Path\tscan:" << id << endl;
#endif
@@ -404,6 +417,9 @@ void qScanWidget::BrowsePath(){
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qScanWidget::SetScriptFile(){
+#ifdef VERYVERBOSE
+ cout << "Entering SetScriptFile()" << endl;
+#endif
QString fName = dispScript->text();bool set = false;
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tscript:" << fName.toAscii().constData() << endl;
@@ -465,6 +481,9 @@ void qScanWidget::SetScriptFile(){
void qScanWidget::SetParameter(){
+#ifdef VERYVERBOSE
+ cout << "Entering SetParameter()" << endl;
+#endif
QString parameter = dispParameter->text();
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tparameter:" << parameter.toAscii().constData() << endl;
@@ -485,6 +504,9 @@ void qScanWidget::SetParameter(){
void qScanWidget::SetPrecision(int value){
+#ifdef VERYVERBOSE
+ cout << "Entering SetPrecision()" << endl;
+#endif
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tprecision:" << value << endl;
#endif
@@ -498,7 +520,9 @@ void qScanWidget::SetPrecision(int value){
void qScanWidget::SetNSteps(int num){
-
+#ifdef VERYVERBOSE
+ cout << "Entering SetNSteps()" << endl;
+#endif
#ifdef VERBOSE
cout << "Setting number of steps" << endl;
#endif
@@ -510,15 +534,15 @@ void qScanWidget::SetNSteps(int num){
if(radioRange->isChecked()){
//calculate the step size and display it
if(num==1){
- disconnect(spinTo, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ disconnect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
spinTo->setValue(spinFrom->value());
- connect(spinTo, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ connect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
}else if(num>1)
num--;
double stepSize = (spinTo->value()-spinFrom->value())/num;
- disconnect(spinSize,SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ disconnect(spinSize,SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
spinSize->setValue(stepSize);
- connect(spinSize, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
//set these positions
SetRangeSteps();
}else if(radioCustom->isChecked()){
@@ -534,6 +558,9 @@ void qScanWidget::SetNSteps(int num){
void qScanWidget::SetRangeSteps(){
+#ifdef VERYVERBOSE
+ cout << "Entering SetRangeSteps()" << endl;
+#endif
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\trange\t";
#endif
@@ -541,9 +568,9 @@ void qScanWidget::SetRangeSteps(){
double sizeVal = spinSize->value();
//if step size is 0, min and max should be same
if(!sizeVal){
- disconnect(spinTo, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ disconnect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
spinTo->setValue(fromVal);
- connect(spinTo, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ connect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
QString tip = rangeTip + QString("
"
"Note: Increase the step size from zero to be able to change the range.");
lblSize->setToolTip(tip);
@@ -563,9 +590,9 @@ void qScanWidget::SetRangeSteps(){
//actualNumSteps will be negative if fromsetValue(-1*sizeVal);
- connect(spinSize, SIGNAL(editingFinished()), this, SLOT(SetRangeSteps()));
+ connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
sizeVal = spinSize->value();
}
//increment is required like vice versa in setNSteps
@@ -593,6 +620,11 @@ void qScanWidget::SetRangeSteps(){
if(SetScan(comboScript->currentIndex())==qDefs::OK){
char cId[5];sprintf(cId,"%d",id);
QString script = dispScript->text();
+
+ disconnect(spinFrom, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ disconnect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ disconnect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+
//positions wont be loaded if its custom script
if((comboScript->currentIndex()==CustomScript)&&((script=="")||(script=="none"))){
qDefs::InfoMessage(string("Scan Level ")+string(cId)+
@@ -613,6 +645,11 @@ void qScanWidget::SetRangeSteps(){
string(cNum)+string(""),"ScanWidget");
}
}
+
+ connect(spinFrom, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ connect(spinTo, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+ connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(SetRangeSteps()));
+
}
}
@@ -621,7 +658,9 @@ void qScanWidget::SetRangeSteps(){
int qScanWidget::SetCustomSteps(){
-
+#ifdef VERYVERBOSE
+ cout << "Entering SetCustomSteps()" << endl;
+#endif
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tcustom\tnum pos:" << comboCustom->count() << endl;
#endif
@@ -707,6 +746,9 @@ int qScanWidget::SetCustomSteps(){
void qScanWidget::DeleteCustomSteps(){
+#ifdef VERYVERBOSE
+ cout << "Entering DeleteCustomSteps()" << endl;
+#endif
QString pos = comboCustom->currentText();
bool found = false;
//loops through to find the index and to make sure its in the list
@@ -729,6 +771,9 @@ void qScanWidget::DeleteCustomSteps(){
void qScanWidget::SetFileSteps(){
+#ifdef VERYVERBOSE
+ cout << "Entering SetFileSteps()" << endl;
+#endif
QString fName = dispFile->text();
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tfile\t:" << fName.toAscii().constData() << endl;
@@ -848,6 +893,9 @@ void qScanWidget::SetFileSteps(){
void qScanWidget::BrowseFileStepsPath(){
+#ifdef VERYVERBOSE
+ cout << "Entering BrowseFileStepsPath()" << endl;
+#endif
#ifdef VERBOSE
cout << "Browsing Steps File Path\tscan:" << id << endl;
#endif
@@ -871,8 +919,8 @@ void qScanWidget::BrowseFileStepsPath(){
void qScanWidget::LoadPositions(){
-#ifdef VERBOSE
- cout << "Loading positions" << endl;
+#ifdef VERYVERBOSE
+ cout << "Entering LoadPositions()" << endl;
#endif
disconnect(comboCustom, SIGNAL(currentIndexChanged(int)), this, SLOT(SetCustomSteps()));
disconnect(spinSteps, SIGNAL(valueChanged(int)), this, SLOT(SetNSteps(int)));
@@ -937,6 +985,9 @@ void qScanWidget::LoadPositions(){
void qScanWidget::Refresh(){
+#ifdef VERYVERBOSE
+ cout << "Entering Refresh()" << endl;
+#endif
int mode = (myDet->getScanMode(id));
string script = myDet->getScanScript(id);
string parameter = myDet->getScanParameter(id);