summaryrefslogtreecommitdiff
path: root/src/plugins/git/branchmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/git/branchmodel.cpp')
-rw-r--r--src/plugins/git/branchmodel.cpp11
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)