GitEditor: Fix resolving of working directory for non-existent source

Change-Id: Ie92be6b0aa6816b5c3a2bfed4a89163f2260d12b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Orgad Shaneh
2018-10-24 16:34:11 +03:00
committed by Orgad Shaneh
parent 039a34a369
commit 618d8e02d1

View File

@@ -286,21 +286,17 @@ void GitEditorWidget::aboutToOpen(const QString &fileName, const QString &realFi
QString GitEditorWidget::decorateVersion(const QString &revision) const
{
const QFileInfo fi(source());
const QString workingDirectory = fi.absolutePath();
// Format verbose, SHA1 being first token
return GitPlugin::client()->synchronousShortDescription(workingDirectory, revision);
return GitPlugin::client()->synchronousShortDescription(sourceWorkingDirectory(), revision);
}
QStringList GitEditorWidget::annotationPreviousVersions(const QString &revision) const
{
QStringList revisions;
QString errorMessage;
const QFileInfo fi(source());
const QString workingDirectory = fi.absolutePath();
// Get the SHA1's of the file.
if (!GitPlugin::client()->synchronousParentRevisions(workingDirectory, revision, &revisions, &errorMessage)) {
if (!GitPlugin::client()->synchronousParentRevisions(sourceWorkingDirectory(),
revision, &revisions, &errorMessage)) {
VcsOutputWindow::appendSilently(errorMessage);
return QStringList();
}
@@ -371,8 +367,12 @@ QString GitEditorWidget::fileNameForLine(int line) const
QString GitEditorWidget::sourceWorkingDirectory() const
{
const QFileInfo fi(source());
return fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath();
Utils::FileName path = Utils::FileName::fromString(source());
if (!path.isEmpty() && !path.toFileInfo().isDir())
path = path.parentDir();
while (!path.isEmpty() && !path.exists())
path = path.parentDir();
return path.toString();
}
} // namespace Internal