improve msr2data handling
It is now checked if a msr-file is already open so that the corresponding tab is reloaded after msr2data is carried out with a file open request.
This commit is contained in:
parent
5bb47dc9fb
commit
5ab041a4f2
@ -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) {
|
||||
@ -1071,23 +1071,17 @@ void PTextEdit::fileOpen()
|
||||
fLastDirInUse = finfo1.absoluteFilePath();
|
||||
}
|
||||
|
||||
while( it != flns.end() ) {
|
||||
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;
|
||||
}
|
||||
@ -2058,7 +2052,6 @@ void PTextEdit::musrMsr2Data()
|
||||
}
|
||||
|
||||
if (dlg->exec() == QDialog::Accepted) {
|
||||
QString first, last;
|
||||
QString runList;
|
||||
QString runListFileName;
|
||||
QFileInfo fi;
|
||||
@ -2251,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()) {
|
||||
@ -2269,7 +2265,14 @@ void PTextEdit::musrMsr2Data()
|
||||
if (fTabWidget->count() != 0) {
|
||||
workDir = QFileInfo(*fFilenames.find( currentEditor() )).absolutePath();
|
||||
}
|
||||
load(workDir + "/" + fln);
|
||||
finfo.setFile(workDir + "/" + fln);
|
||||
alreadOpen = fileAlreadyOpen(finfo, idx);
|
||||
if (!alreadOpen) {
|
||||
load(workDir + "/" + fln);
|
||||
} else {
|
||||
fTabWidget->setCurrentIndex(idx);
|
||||
fileReload();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: // run list file
|
||||
@ -2295,7 +2298,14 @@ void PTextEdit::musrMsr2Data()
|
||||
if (fTabWidget->count() != 0) {
|
||||
workDir = QFileInfo(*fFilenames.find( currentEditor() )).absolutePath();
|
||||
}
|
||||
load(workDir + "/" + fln);
|
||||
finfo.setFile(workDir + "/" + fln);
|
||||
alreadOpen = fileAlreadyOpen(finfo, idx);
|
||||
if (!alreadOpen) {
|
||||
load(workDir + "/" + fln);
|
||||
} else {
|
||||
fTabWidget->setCurrentIndex(idx);
|
||||
fileReload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3207,6 +3217,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
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user