Show proper diff when one of diff files is missing

Task-number: QTCREATORBUG-16540
Change-Id: I185ac8e7c8be364c1e2f74bfe0af6f9e393c89be
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2016-07-25 13:09:06 +02:00
committed by Jarek Kobus
parent 3c1647e6b2
commit adbc3f611f

View File

@@ -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<FileData> fileDataList;
fileDataList << fileData;