Merged muonspin/musrfit:root6 into master

This commit is contained in:
Zaher Salman 2019-04-03 08:46:24 +02:00
commit aa6579af41
2 changed files with 60 additions and 17 deletions

View File

@ -1061,9 +1061,9 @@ void PTextEdit::fileOpen()
tr( "msr-Files (*.msr);;msr-Files (*.msr *.mlog);;All Files (*)" ));
QStringList::Iterator it = flns.begin();
QFileInfo finfo1, finfo2;
QString tabFln;
QFileInfo finfo1;
bool alreadyOpen = false;
int idx;
// if flns are present, keep the corresponding directory
if (flns.size() > 0) {
@ -1074,20 +1074,14 @@ void PTextEdit::fileOpen()
while( it != flns.end() ) {
// check if the file is not already open
finfo1.setFile(*it);
for (int i=0; i<fTabWidget->count(); i++) {
tabFln = *fFilenames.find( dynamic_cast<PSubTextEdit*>(fTabWidget->widget(i)));
finfo2.setFile(tabFln);
if (finfo1.absoluteFilePath() == finfo2.absoluteFilePath()) {
alreadyOpen = true;
fTabWidget->setCurrentIndex(i);
break;
}
}
alreadyOpen = fileAlreadyOpen(finfo1, idx);
if (!alreadyOpen)
if (!alreadyOpen) {
load(*it);
else
} else {
fTabWidget->setCurrentIndex(idx);
fileReload();
}
++it;
}
@ -1368,8 +1362,13 @@ void PTextEdit::filePrint()
*/
void PTextEdit::fileClose(const bool check)
{
// first check if there is any tab present
if (fTabWidget->count()==0) // no tabs present
return;
// check if the has modification
int idx = fTabWidget->currentIndex();
if ((fTabWidget->tabText(idx).indexOf("*")>0) && check) {
int result = QMessageBox::warning(this, "**WARNING**",
"Do you really want to close this file.\nChanges will be lost",
@ -2053,7 +2052,6 @@ void PTextEdit::musrMsr2Data()
}
if (dlg->exec() == QDialog::Accepted) {
QString first, last;
QString runList;
QString runListFileName;
QFileInfo fi;
@ -2246,6 +2244,9 @@ void PTextEdit::musrMsr2Data()
QString fln;
QFile *file;
QTextStream *stream;
QFileInfo finfo;
bool alreadOpen=false;
int idx=0;
if (!fMsr2DataParam->global) { // standard fits
switch(dlg->getRunTag()) {
@ -2264,7 +2265,14 @@ void PTextEdit::musrMsr2Data()
if (fTabWidget->count() != 0) {
workDir = QFileInfo(*fFilenames.find( currentEditor() )).absolutePath();
}
finfo.setFile(workDir + "/" + fln);
alreadOpen = fileAlreadyOpen(finfo, idx);
if (!alreadOpen) {
load(workDir + "/" + fln);
} else {
fTabWidget->setCurrentIndex(idx);
fileReload();
}
}
break;
case 1: // run list file
@ -2290,7 +2298,14 @@ void PTextEdit::musrMsr2Data()
if (fTabWidget->count() != 0) {
workDir = QFileInfo(*fFilenames.find( currentEditor() )).absolutePath();
}
finfo.setFile(workDir + "/" + fln);
alreadOpen = fileAlreadyOpen(finfo, idx);
if (!alreadOpen) {
load(workDir + "/" + fln);
} else {
fTabWidget->setCurrentIndex(idx);
fileReload();
}
}
}
@ -3196,6 +3211,32 @@ QStringList PTextEdit::getRunList(QString runListStr, bool &ok)
return result;
}
//----------------------------------------------------------------------------------------------------
/**
* @brief PTextEdit::fileAlreadyOpen
* @param finfo
* @param idx
* @return
*/
bool PTextEdit::fileAlreadyOpen(QFileInfo &finfo, int &idx)
{
bool result = false;
QFileInfo finfo2;
QString tabFln;
for (int i=0; i<fTabWidget->count(); i++) {
tabFln = *fFilenames.find( dynamic_cast<PSubTextEdit*>(fTabWidget->widget(i)));
finfo2.setFile(tabFln);
if (finfo.absoluteFilePath() == finfo2.absoluteFilePath()) {
result = true;
idx = i;
break;
}
}
return result;
}
//----------------------------------------------------------------------------------------------------
// END
//----------------------------------------------------------------------------------------------------

View File

@ -38,6 +38,7 @@
#include <QString>
#include <QVector>
#include <QProcess>
#include <QFileInfo>
#include <QtDebug>
@ -186,6 +187,7 @@ private:
void getTheme();
void fillRecentFiles();
QStringList getRunList(QString runListStr, bool &ok);
bool fileAlreadyOpen(QFileInfo &finfo, int &idx);
};