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