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