diff options
Diffstat (limited to 'src/plugins/git/branchmodel.cpp')
-rw-r--r-- | src/plugins/git/branchmodel.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index feee651ed8..1a07e15692 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -80,7 +80,7 @@ public: bool isLeaf() const { - return children.isEmpty(); + return children.isEmpty() && parent && parent->parent; } bool childOf(BranchNode *node) const @@ -339,8 +339,12 @@ void BranchModel::clear() bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage) { - if (workingDirectory.isEmpty()) + beginResetModel(); + clear(); + if (workingDirectory.isEmpty()) { + endResetModel(); return false; + } m_currentSha = m_client->synchronousTopRevision(workingDirectory); QStringList args; @@ -349,9 +353,6 @@ bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage if (!m_client->synchronousForEachRefCmd(workingDirectory, args, &output, errorMessage)) VcsBase::VcsBaseOutputWindow::instance()->appendError(*errorMessage); - beginResetModel(); - clear(); - m_workingDirectory = workingDirectory; const QStringList lines = output.split(QLatin1Char('\n')); foreach (const QString &l, lines) |