Handle internally triggered deletes more gracefull

If the user has enabled "Reload unmodified" then on remove the
unmodified editors are closed. Otherwise the user is asked as before.
Also modify the message to indicate if the change was triggred
externally.
This commit is contained in:
dt_
2011-04-27 15:52:24 +02:00
parent 2224eb70bb
commit 060778ddf4
4 changed files with 16 additions and 6 deletions

View File

@@ -920,7 +920,6 @@ void FileManager::checkForReload()
IFile::ChangeType fileChange = changeTypes.value(fileName);
if (fileChange == IFile::TypeRemoved) {
type = IFile::TypeRemoved;
trigger = IFile::TriggerExternal; // removed files always trigger externally
} else if (fileChange == IFile::TypeContents && type == IFile::TypePermissions) {
type = IFile::TypeContents;
}
@@ -946,6 +945,11 @@ void FileManager::checkForReload()
success = file->reload(&errorString, IFile::FlagReload, type);
// file was removed or it's a content change and the default behavior for
// unmodified files didn't kick in
} else if (defaultBehavior == IFile::ReloadUnmodified
&& type == IFile::TypeRemoved && !file->isModified()) {
// file removed, but unmodified files should be reloaded
// so we close the file
editorsToClose << EditorManager::instance()->editorsForFile(file);
} else if (defaultBehavior == IFile::IgnoreAll) {
// content change or removed, but settings say ignore
success = file->reload(&errorString, IFile::FlagIgnore, type);
@@ -985,7 +989,7 @@ void FileManager::checkForReload()
// Ask about removed file
bool unhandled = true;
while (unhandled) {
switch (Utils::fileDeletedPrompt(file->fileName(), QApplication::activeWindow())) {
switch (Utils::fileDeletedPrompt(file->fileName(), trigger == IFile::TriggerExternal, QApplication::activeWindow())) {
case Utils::FileDeletedSave:
filesToSave.insert(file, file->fileName());
unhandled = false;