diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index f1978ecafa6014455869216451334ba5688fc6b7..0dc421495a136b0fcf67e88a33005f651dfb44e2 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -107,10 +107,10 @@ BranchDialog::BranchDialog(QWidget *parent) : connect(m_ui->localBranchListView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(slotEnableButtons())); + this, SLOT(slotEnableButtons(QItemSelection))); connect(m_ui->remoteBranchListView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(slotEnableButtons())); + this, SLOT(slotEnableButtons(QItemSelection))); slotEnableButtons(); } @@ -150,8 +150,15 @@ int BranchDialog::selectedRemoteBranchIndex() const return selectedRow(m_ui->remoteBranchListView); } -void BranchDialog::slotEnableButtons() +void BranchDialog::slotEnableButtons(const QItemSelection &selected) { + if (!selected.indexes().isEmpty()) { + if (selected.indexes().at(0).model() == m_localModel) + m_ui->remoteBranchListView->clearSelection(); + else + m_ui->localBranchListView->clearSelection(); + } + // We can switch to or delete branches that are not current. const bool hasRepository = !m_repository.isEmpty(); const int selectedLocalRow = selectedLocalBranchIndex(); diff --git a/src/plugins/git/branchdialog.h b/src/plugins/git/branchdialog.h index ac85c4c25a6da323e3d157d8fb8b436ce6e722f2..bf21a746e34615aa7e300b790885d246409ac1d1 100644 --- a/src/plugins/git/branchdialog.h +++ b/src/plugins/git/branchdialog.h @@ -31,6 +31,7 @@ #define BRANCHDIALOG_H #include <QtGui/QDialog> +#include <QtGui/QItemSelection> QT_BEGIN_NAMESPACE class QPushButton; @@ -64,7 +65,7 @@ public slots: void refresh(const QString &repository, bool force); private slots: - void slotEnableButtons(); + void slotEnableButtons(const QItemSelection &selected = QItemSelection()); void slotCheckoutSelectedBranch(); void slotDeleteSelectedBranch(); void slotDiffSelected();