diff --git a/src/qtapp/mdemList.cpp b/src/qtapp/mdemList.cpp index c6c788e..d6d1f76 100644 --- a/src/qtapp/mdemList.cpp +++ b/src/qtapp/mdemList.cpp @@ -1154,27 +1154,40 @@ QMainWindow *initMdemListWindow() { fileDialog->open(); QObject::disconnect(fileDialog, 0, 0, 0); fileDialog->connect( - fileDialog, + fileDialog, &QFileDialog::fileSelected, [](QString directory) { - auto answer = showPrompt( - "Atmiņas bāzes maiņa", - "Vai saglabāt atmiņas bāzi pirms to mainīt?", - "Saglabāt un mainīt", - "Mainīt bez saglabāšanas", - "Nemainīt atmiņas bāzi" - ); - switch (answer) { - case YES: { - for (auto pair: buffers) { - saveMdem(pair.second, pair.first); - pair.second->isModified = false; - } - pickDirectory(directory); - } break; - case NO: { - pickDirectory(directory); - } break; + + // MARK + bool unsavedMdem = false; + for (auto pair: buffers) { + if (pair.second->isModified) { + unsavedMdem = true; + break; + } + } + if (unsavedMdem) { + auto answer = showPrompt( + "Atmiņas bāzes maiņa", + "Vai saglabāt atmiņas bāzi pirms to mainīt?", + "Saglabāt un mainīt", + "Mainīt bez saglabāšanas", + "Nemainīt atmiņas bāzi" + ); + switch (answer) { + case YES: { + for (auto pair: buffers) { + saveMdem(pair.second, pair.first); + pair.second->isModified = false; + } + pickDirectory(directory); + } break; + case NO: { + pickDirectory(directory); + } break; + } + } else { + pickDirectory(directory); } } );