Git: Fix branch expansion on show before the diff display is done

The description is shown first (with the <Expand> placeholder), and the
diff parsing can be long. If <Expand> is clicked during parsing, it fails
because the base directory is not set yet.

Change-Id: Ib5e839b292c32091c726f24eb643d0fa5a142cb7
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Orgad Shaneh
2019-08-15 08:49:50 +03:00
committed by Orgad Shaneh
parent 2b650f713a
commit eaf8ccf118
5 changed files with 15 additions and 1 deletions

View File

@@ -55,6 +55,11 @@ QString DiffEditorController::baseDirectory() const
return m_document->baseDirectory(); return m_document->baseDirectory();
} }
void DiffEditorController::setBaseDirectory(const QString &directory)
{
m_document->setBaseDirectory(directory);
}
int DiffEditorController::contextLineCount() const int DiffEditorController::contextLineCount() const
{ {
return m_document->contextLineCount(); return m_document->contextLineCount();

View File

@@ -48,6 +48,7 @@ public:
bool isReloading() const; bool isReloading() const;
QString baseDirectory() const; QString baseDirectory() const;
void setBaseDirectory(const QString &directory);
int contextLineCount() const; int contextLineCount() const;
bool ignoreWhitespace() const; bool ignoreWhitespace() const;

View File

@@ -113,6 +113,7 @@ void DiffEditorDocument::setDiffFiles(const QList<FileData> &data, const QString
const QString &startupFile) const QString &startupFile)
{ {
m_diffFiles = data; m_diffFiles = data;
if (!directory.isEmpty())
m_baseDirectory = directory; m_baseDirectory = directory;
m_startupFile = startupFile; m_startupFile = startupFile;
emit documentChanged(); emit documentChanged();
@@ -128,6 +129,11 @@ QString DiffEditorDocument::baseDirectory() const
return m_baseDirectory; return m_baseDirectory;
} }
void DiffEditorDocument::setBaseDirectory(const QString &directory)
{
m_baseDirectory = directory;
}
QString DiffEditorDocument::startupFile() const QString DiffEditorDocument::startupFile() const
{ {
return m_startupFile; return m_startupFile;

View File

@@ -60,6 +60,7 @@ public:
const QString &startupFile = QString()); const QString &startupFile = QString());
QList<FileData> diffFiles() const; QList<FileData> diffFiles() const;
QString baseDirectory() const; QString baseDirectory() const;
void setBaseDirectory(const QString &directory);
QString startupFile() const; QString startupFile() const;
void setDescription(const QString &description); void setDescription(const QString &description);

View File

@@ -236,6 +236,7 @@ VcsBaseDiffEditorController::VcsBaseDiffEditorController(IDocument *document,
: DiffEditorController(document) : DiffEditorController(document)
, d(new VcsBaseDiffEditorControllerPrivate(this, client, workingDirectory)) , d(new VcsBaseDiffEditorControllerPrivate(this, client, workingDirectory))
{ {
setBaseDirectory(workingDirectory);
} }
VcsBaseDiffEditorController::~VcsBaseDiffEditorController() VcsBaseDiffEditorController::~VcsBaseDiffEditorController()