From adbc3f611f9101aafbcb2d852ef2121276db1103 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 25 Jul 2016 13:09:06 +0200 Subject: [PATCH] Show proper diff when one of diff files is missing Task-number: QTCREATORBUG-16540 Change-Id: I185ac8e7c8be364c1e2f74bfe0af6f9e393c89be Reviewed-by: Orgad Shaneh --- src/plugins/diffeditor/diffeditorplugin.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/diffeditor/diffeditorplugin.cpp b/src/plugins/diffeditor/diffeditorplugin.cpp index 8f7ffd5216e..9f0e42738fc 100644 --- a/src/plugins/diffeditor/diffeditorplugin.cpp +++ b/src/plugins/diffeditor/diffeditorplugin.cpp @@ -74,19 +74,21 @@ void FileDiffController::reload() format.codec = Core::EditorManager::defaultTextCodec(); QString leftText; + bool leftFileExists = true; if (Utils::TextFileFormat::readFile(m_leftFileName, format.codec, &leftText, &format, &errorString) != Utils::TextFileFormat::ReadSuccess) { - return; + leftFileExists = false; } QString rightText; + bool rightFileExists = true; if (Utils::TextFileFormat::readFile(m_rightFileName, format.codec, &rightText, &format, &errorString) != Utils::TextFileFormat::ReadSuccess) { - return; + rightFileExists = false; } Differ differ; @@ -115,6 +117,10 @@ void FileDiffController::reload() FileData fileData = DiffUtils::calculateContextData(chunkData, contextLineCount(), 0); fileData.leftFileInfo.fileName = m_leftFileName; fileData.rightFileInfo.fileName = m_rightFileName; + if (!leftFileExists && rightFileExists) + fileData.fileOperation = FileData::NewFile; + else if (leftFileExists && !rightFileExists) + fileData.fileOperation = FileData::DeleteFile; QList fileDataList; fileDataList << fileData;