diff --git a/slsDetectorGui/src/qActionsWidget.cpp b/slsDetectorGui/src/qActionsWidget.cpp
index aa62dc80e..74005766e 100644
--- a/slsDetectorGui/src/qActionsWidget.cpp
+++ b/slsDetectorGui/src/qActionsWidget.cpp
@@ -129,29 +129,30 @@ void qActionsWidget::SetScriptFile(){
cout << "Setting\taction:" << id << "\tscript:" << fName.toAscii().constData() << endl;
#endif
bool set = false;
+ struct stat st_buf;
//blank
- if(fName.isEmpty()) set = true;
- else if(!fName.compare("none")) set = true;
+ if(fName.isEmpty())
+ set = true;
+ else if(!fName.compare("none"))
+ set = true;
//not blank
else{
- QString file = dispScript->text().section('/',-1);
- //is a file
- if(file.contains('.')){
- //check if it exists and set the script file
- if(QFile::exists(fName)) set = true;
- //if the file doesnt exist, set it to what it was before
- else{
- qDefs::Message(qDefs::WARNING,"The script file entered does not exist","ActionsWidget");
- dispScript->setText(QString(myDet->getActionScript(id).c_str()));
- }
- }//not a file, set it to what it was before
- else {
+ //path doesnt exist
+ if(stat(fName.toAscii().constData(),&st_buf)){
+ qDefs::Message(qDefs::WARNING,"The script file entered does not exist","ActionsWidget");
+ dispScript->setText(QString(myDet->getActionScript(id).c_str()));
+ }
+ //if its not a file
+ else if (!S_ISREG (st_buf.st_mode)) {
qDefs::Message(qDefs::WARNING,"The script file path entered is not a file","ActionsWidget");
dispScript->setText(QString(myDet->getActionScript(id).c_str()));
}
+ else
+ set=true;
}
+
//if blank or valid file
if(set){
//scan and positions wouldnt get here
diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp
index 25e459bd8..7201e97d5 100644
--- a/slsDetectorGui/src/qDetectorMain.cpp
+++ b/slsDetectorGui/src/qDetectorMain.cpp
@@ -285,12 +285,24 @@ void qDetectorMain::LoadConfigFile(const string fName){
#ifdef VERBOSE
cout << "Loading config file at start up:" << fName << endl;
#endif
- QString file = QString(fName.c_str());//.section('/',-1);
- if((file.contains('.'))&&(QFile::exists(file))){
- if(myDet->readConfigurationFile(fName)!=slsDetectorDefs::FAIL)
- qDefs::Message(qDefs::INFORMATION,"The Configuration Parameters have been loaded successfully at start up.","Main");
- else qDefs::Message(qDefs::WARNING,string("Could not load the Configuration Parameters at start up from file:
")+fName,"Main");
- }else qDefs::Message(qDefs::WARNING,string("Start up configuration failed to load. The following file does not exist:
")+fName,"Main");
+ struct stat st_buf;
+ QString file = QString(fName.c_str());
+
+ //path doesnt exist
+ if(stat(fName.c_str(),&st_buf))
+ qDefs::Message(qDefs::WARNING,string("Start up configuration failed to load. The following file does not exist:
")+fName,"Main");
+
+ //not a file
+ else if (!S_ISREG (st_buf.st_mode))
+ qDefs::Message(qDefs::WARNING,string("Start up configuration failed to load. The following file is not a recognized file format:
")+fName,"Main");
+
+ //could not load config file
+ else if(myDet->readConfigurationFile(fName)==slsDetectorDefs::FAIL)
+ qDefs::Message(qDefs::INFORMATION,"The Configuration Parameters have been loaded successfully at start up.","Main");
+
+ //successful
+ else
+ qDefs::Message(qDefs::INFORMATION,"The Configuration Parameters have been loaded successfully at start up.","Main");
}
diff --git a/slsDetectorGui/src/qScanWidget.cpp b/slsDetectorGui/src/qScanWidget.cpp
index dabe62075..666f2a23d 100644
--- a/slsDetectorGui/src/qScanWidget.cpp
+++ b/slsDetectorGui/src/qScanWidget.cpp
@@ -445,11 +445,12 @@ void qScanWidget::SetScriptFile(){
#ifdef VERYVERBOSE
cout << "Entering SetScriptFile()" << endl;
#endif
- QString fName = dispScript->text();bool set = false;
+ QString fName = dispScript->text();
#ifdef VERBOSE
cout << "Setting\tscan:" << id << "\tscript:" << fName.toAscii().constData() << endl;
#endif
-
+ bool set = false;
+ struct stat st_buf;
//blank
if(fName.isEmpty())
@@ -466,22 +467,18 @@ void qScanWidget::SetScriptFile(){
}
//not blank and custom script mode
if(!set){
- QString file = dispScript->text().section('/',-1);
- //is a file
- if(file.contains('.')){
- //check if it exists and set the script file
- if(QFile::exists(fName))
- set = true;
- //if the file doesnt exist, set it to what it was before
- else{
- qDefs::Message(qDefs::WARNING,"The script file entered does not exist","ScanWidget");
- dispScript->setText(QString(myDet->getScanScript(id).c_str()));
- }
- }//not a file, set it to what it was before
- else {
+ //path doesnt exist
+ if(stat(fName.toAscii().constData(),&st_buf)){
+ qDefs::Message(qDefs::WARNING,"The script file entered does not exist","ScanWidget");
+ dispScript->setText(QString(myDet->getScanScript(id).c_str()));
+ }
+ //if its not a file
+ else if (!S_ISREG (st_buf.st_mode)) {
qDefs::Message(qDefs::WARNING,"The script file path entered is not a file","ScanWidget");
dispScript->setText(QString(myDet->getScanScript(id).c_str()));
}
+ else
+ set=true;
}
//if blank or valid file
@@ -974,8 +971,10 @@ void qScanWidget::SetFileSteps(){
cout << "Setting\tscan:" << id << "\tfile\t:" << fName.toAscii().constData() << endl;
#endif
bool set = false;
+ struct stat st_buf;
- if(fName.isEmpty()){ //blank
+ //blank
+ if(fName.isEmpty()){
#ifdef VERBOSE
cout << "Empty file" << endl;
#endif
@@ -983,21 +982,23 @@ void qScanWidget::SetFileSteps(){
radioFile->setText("Values from File:*");
QString errTip = fileTip + QString("
The file path is empty.");;
radioFile->setToolTip(errTip);dispFile->setToolTip(errTip);btnFile->setToolTip(errTip);
- }else{
+ }
+ //not a blank
+ else{
QString file = dispFile->text().section('/',-1);
- if(file.contains('.')){ //is a file
- //check if it exists and set the script file
- if(QFile::exists(fName)) set = true;
- else{//if the file doesnt exist, set it to what it was before
+
+ //path doesnt exist
+ if(stat(file.toAscii().constData(),&st_buf)){
#ifdef VERBOSE
- cout << "The file entered does not exist." << endl;
+ cout << "The file entered does not exist." << endl;
#endif
- radioFile->setPalette(red);
- radioFile->setText("Values from File:*");
- QString errTip = fileTip + QString("
The file entered does not exist.");
- radioFile->setToolTip(errTip);dispFile->setToolTip(errTip);btnFile->setToolTip(errTip);
- }
- } else {//not a file, set it to what it was before
+ radioFile->setPalette(red);
+ radioFile->setText("Values from File:*");
+ QString errTip = fileTip + QString("
The file entered does not exist.");
+ radioFile->setToolTip(errTip);dispFile->setToolTip(errTip);btnFile->setToolTip(errTip);
+ }
+ //if its not a file
+ else if (!S_ISREG (st_buf.st_mode)) {
#ifdef VERBOSE
cout << "The file path entered is not a file." << endl;
#endif
@@ -1006,6 +1007,8 @@ void qScanWidget::SetFileSteps(){
QString errTip = fileTip + QString("
The file path entered is not a file.");
radioFile->setToolTip(errTip); dispFile->setToolTip(errTip);btnFile->setToolTip(errTip);
}
+ else
+ set = true;
}
//if valid file