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(); format.codec = Core::EditorManager::defaultTextCodec();
QString leftText; QString leftText;
bool leftFileExists = true;
if (Utils::TextFileFormat::readFile(m_leftFileName, if (Utils::TextFileFormat::readFile(m_leftFileName,
format.codec, format.codec,
&leftText, &format, &errorString) &leftText, &format, &errorString)
!= Utils::TextFileFormat::ReadSuccess) { != Utils::TextFileFormat::ReadSuccess) {
return; leftFileExists = false;
} }
QString rightText; QString rightText;
bool rightFileExists = true;
if (Utils::TextFileFormat::readFile(m_rightFileName, if (Utils::TextFileFormat::readFile(m_rightFileName,
format.codec, format.codec,
&rightText, &format, &errorString) &rightText, &format, &errorString)
!= Utils::TextFileFormat::ReadSuccess) { != Utils::TextFileFormat::ReadSuccess) {
return; rightFileExists = false;
} }
Differ differ; Differ differ;
@@ -115,6 +117,10 @@ void FileDiffController::reload()
FileData fileData = DiffUtils::calculateContextData(chunkData, contextLineCount(), 0); FileData fileData = DiffUtils::calculateContextData(chunkData, contextLineCount(), 0);
fileData.leftFileInfo.fileName = m_leftFileName; fileData.leftFileInfo.fileName = m_leftFileName;
fileData.rightFileInfo.fileName = m_rightFileName; fileData.rightFileInfo.fileName = m_rightFileName;
if (!leftFileExists && rightFileExists)
fileData.fileOperation = FileData::NewFile;
else if (leftFileExists && !rightFileExists)
fileData.fileOperation = FileData::DeleteFile;
QList<FileData> fileDataList; QList<FileData> fileDataList;
fileDataList << fileData; fileDataList << fileData;