diff --git a/src/musrgui/PFileWatcher.cpp b/src/musrgui/PFileWatcher.cpp index d79267bd..4785d8af 100644 --- a/src/musrgui/PFileWatcher.cpp +++ b/src/musrgui/PFileWatcher.cpp @@ -73,8 +73,10 @@ bool PFileWatcher::modified() fFileInfo->refresh(); - if (fFileInfo->lastModified() > fLastModified) + if (fFileInfo->lastModified() > fLastModified) { + fLastModified = fFileInfo->lastModified(); result = true; + } return result; } @@ -102,6 +104,7 @@ void PFileWatcher::checkIfModified() fFileInfo->refresh(); if (fFileInfo->lastModified() > fLastModified) { + fLastModified = fFileInfo->lastModified(); fTimerCheck->stop(); emit changed(); } diff --git a/src/musrgui/PTextEdit.cpp b/src/musrgui/PTextEdit.cpp index d498756b..734d4000 100644 --- a/src/musrgui/PTextEdit.cpp +++ b/src/musrgui/PTextEdit.cpp @@ -519,8 +519,28 @@ void PTextEdit::fileOpen() tr( fAdmin->getDefaultSavePath() ), this); QStringList::Iterator it = flns.begin(); + QFileInfo finfo1, finfo2; + QString tabFln; + bool alreadyOpen = false; + while( it != flns.end() ) { - load(*it); + // check if the file is not already open + finfo1.setFile(*it); + for (int i=0; icount(); i++) { + tabFln = *fFilenames.find( (PSubTextEdit*)fTabWidget->page(i) ); + finfo2.setFile(tabFln); + if (finfo1.absFilePath() == finfo2.absFilePath()) { + alreadyOpen = true; + fTabWidget->setCurrentPage(i); + break; + } + } + + if (!alreadyOpen) + load(*it); + else + fileReload(); + ++it; } }