diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index 69e4ee54664cce9332ae489f052640deda6426a0..4d577597f11890afbd3b2ef8cee825766e1c66fc 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -74,7 +74,7 @@ public: bool isLeaf() const { - return children.isEmpty(); + return children.isEmpty() && parent && parent->parent; } bool isTag() const @@ -331,8 +331,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; @@ -341,9 +345,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)