diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp
index 2586c92c9..6d6bbc3f0 100644
--- a/slsDetectorGui/src/qTabDataOutput.cpp
+++ b/slsDetectorGui/src/qTabDataOutput.cpp
@@ -669,83 +669,81 @@ int qTabDataOutput::VerifyOutputDirectory(){
cout << "Verifying output directory" << endl;
#endif
bool error = false;
- QString path = "";
QString errTip = outDirTip;
- QString detName = "";
+ bool receiver = (!comboDetector->itemText(0).compare("All"));
+ string path = string(dispReadOutputDir->text().toAscii().constData());
+ string detName = "";
- path = dispReadOutputDir->text();
-
- //no receiver
- if(!comboDetector->itemText(0).compare("All")){
- if(myDet->setFilePath(string(path.toAscii().constData())).empty()){
- qDefs::Message(qDefs::WARNING,string("Enter a valid output directory"),"Data Output");
- error = true;
- dispReadOutputDir->setText(QString(myDet->getFilePath().c_str()));
- boxOutDir->setTitle("Receiver Output Directory*");
- }else if(!qDefs::checkErrorMessage(myDet).empty()){
- error = true;
- dispReadOutputDir->setText(QString(myDet->getFilePath().c_str()));
- dispReadOutputDir->setPalette(*red1);
- boxOutDir->setPalette(red);
- boxOutDir->setTitle("Output Directory*");
- errTip = outDirTip +
- QString(""
- "Enter a valid path to change Output Directory.");
- boxOutDir->setToolTip(errTip);
+ //for each detector
+ for(int i=0;igetNumberOfDetectors();i++){
+ slsDetector *det = myDet->getSlsDetector(i);
+ qDefs::checkErrorMessage(myDet);
+ if(receiver){
+ detName = string(" for ") + string(comboDetector->itemText(i).toAscii().constData()) + string(" readout");
+ path = det->getFilePath();
}
+
+ if(det->setFilePath(path).empty()){
+ qDefs::Message(qDefs::WARNING,string("Enter a valid output directory ") + detName,"Data Output");
+ error = true;
+ }else if(!qDefs::checkErrorMessage(det).empty()){
+ error = true;
+ }
+ //verify all paths are the same for no receiver
+ if ((!receiver) && (path != det->getFilePath())){
+ error = true;
+ qDefs::Message(qDefs::WARNING,string("Enter a valid output directory ") + detName,"Data Output");
+ }
+ myDet->setFilePath(det->getFilePath());
}
- //receiver
- else{
- for(int i=0;igetNumberOfDetectors();i++){
- detName = comboDetector->itemText(i);
- slsDetector *det = myDet->getSlsDetector(i);
- qDefs::checkErrorMessage(myDet);
- if(det->setFilePath(det->getFilePath()).empty()){
- qDefs::Message(qDefs::WARNING,string("Enter a valid output directory for ") +
- string(detName.toAscii().constData()) + string(" readout"),"Data Output");
- error = true;
- dispReadOutputDir->setText(QString(det->getFilePath().c_str()));
- boxOutDir->setTitle("Receiver Output Directory*");
- }else if(!qDefs::checkErrorMessage(det).empty()){
- error = true;
- dispReadOutputDir->setText(QString(det->getFilePath().c_str()));
- boxOutDir->setTitle("Receiver Output Directory*");
- }
- }
- }
+
+ //set the read output dir anyway
+ if(receiver)
+ path = myDet->getSlsDetector(comboDetector->currentIndex())->getFilePath();
+ else
+ path = myDet->getFilePath();
+ dispReadOutputDir->setText(QString(path.c_str()));
+
//if error, display in red
if(error){
#ifdef VERBOSE
- cout << "The output path doesnt exist anymore" << endl;
+ cout << "The output path doesnt exist anymore" << endl;
#endif
dispReadOutputDir->setPalette(*red1);
boxOutDir->setPalette(red);
errTip = errTip +
QString("
"
- "Enter a valid path for ") + detName +
+ "Enter a valid path for ") + QString(detName.c_str()) +
QString( " readout to change Output Directory.");
boxOutDir->setToolTip(errTip);
+ if(receiver)
+ boxOutDir->setTitle("Receiver Output Directory*");
+ else
+ boxOutDir->setTitle("Output Directory*");
+
return slsDetectorDefs::FAIL;
}
//no error
else{
#ifdef VERBOSE
- cout << "The output path has been verified" << endl;
+ cout << "The output path has been verified" << endl;
#endif
dispReadOutputDir->setPalette(*black1);
boxOutDir->setPalette(black);
- if(!comboDetector->itemText(0).compare("All"))
- boxOutDir->setTitle("Output Directory");
- else
- boxOutDir->setTitle("Receiver Output Directory");
boxOutDir->setToolTip(outDirTip);
+
+ if(receiver)
+ boxOutDir->setTitle("Receiver Output Directory");
+ else
+ boxOutDir->setTitle("Output Directory");
}
return slsDetectorDefs::OK;
+
}
@@ -759,6 +757,7 @@ void qTabDataOutput::SetOutputDir(){
#endif
bool error = false;
+ bool receiver = (!comboDetector->itemText(0).compare("All"));
QString path = dispOutputDir->text();
if(path.isEmpty())
@@ -766,42 +765,64 @@ void qTabDataOutput::SetOutputDir(){
disconnect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir()));
+
//gets rid of the end '/'s
while(path.endsWith('/')) path.chop(1);
dispOutputDir->setText(path);
- if(!comboDetector->itemText(0).compare("All")){
- myDet->setFilePath(string(dispOutputDir->text().toAscii().constData()));
- if(!qDefs::checkErrorMessage(myDet).empty()){
+
+ if(receiver){
+ slsDetector *det = myDet->getSlsDetector(comboDetector->currentIndex());
+ qDefs::checkErrorMessage(myDet);
+ det->setFilePath(string(dispOutputDir->text().toAscii().constData()));
+ if(!qDefs::checkErrorMessage(det).empty()){
#ifdef VERBOSE
- cout << "The output path could not be set" << endl;
+ cout << "The output path could not be set" << endl;
#endif
- myDet->setFilePath(string(dispReadOutputDir->text().toAscii().constData()));
+ det->setFilePath(string(dispReadOutputDir->text().toAscii().constData()));
error = true;
dispOutputDir->setPalette(*red1);
}
+ myDet->setFilePath(det->getFilePath());
}
+
else{
- slsDetector *det = myDet->getSlsDetector(comboDetector->currentIndex());
+ //for each detector
+ for(int i=0;igetNumberOfDetectors();i++){
+ slsDetector *det = myDet->getSlsDetector(i);
qDefs::checkErrorMessage(myDet);
- det->setFilePath(string(dispOutputDir->text().toAscii().constData()));
- if(!qDefs::checkErrorMessage(det).empty()){
-#ifdef VERBOSE
- cout << "The output path could not be set" << endl;
-#endif
- det->setFilePath(string(dispReadOutputDir->text().toAscii().constData()));
+ if(det->setFilePath(string(path.toAscii().constData())).empty()){
+ qDefs::Message(qDefs::WARNING,string("Enter a valid output directory "),"Data Output");
+ error = true;
+ }else if(!qDefs::checkErrorMessage(det).empty()){
error = true;
- dispOutputDir->setPalette(*red1);
}
+ myDet->setFilePath(det->getFilePath());
+ }
- cout<<"filepath:"<getFilePath()<getNumberOfDetectors();i++){
+ slsDetector *det = myDet->getSlsDetector(i);
+ qDefs::checkErrorMessage(myDet);
+ det->setFilePath(string(dispReadOutputDir->text().toAscii().constData()));
+ }
+ }
+ dispReadOutputDir->setText(QString(myDet->getFilePath().c_str()));
}
- if(!error){
+
+ if(error){
#ifdef VERBOSE
- cout << "The output path has been modified" << endl;
+ cout << "The output path could not be set" << endl;
+#endif
+ dispOutputDir->setPalette(*red1);
+ }
+ else{
+#ifdef VERBOSE
+ cout << "The output path has been modified" << endl;
#endif
dispOutputDir->setPalette(*black1);
dispReadOutputDir->setText(dispOutputDir->text());
@@ -809,6 +830,7 @@ void qTabDataOutput::SetOutputDir(){
VerifyOutputDirectory();
}
+
connect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir()));
}