diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2011-12-07 14:02:36 +0100 |
---|---|---|
committer | Hugues Delorme <delorme.hugues@fougsys.fr> | 2011-12-08 11:18:10 +0100 |
commit | 02d74bd3e7b8be6500c0d08b782c79f451a887bb (patch) | |
tree | ceaa9084e308f5e00cdc9a95f76b47b40394b5ee /src/plugins/git/remotedialog.cpp | |
parent | f517215a3d85f82485a6a92ee674eb860a8b76b8 (diff) | |
download | qt-creator-02d74bd3e7b8be6500c0d08b782c79f451a887bb.tar.gz |
Git: Push to non-default remotes
Allow pushing into any of the defined remotes via Tools->Git->Remotes...
Task-number: QTCREATORBUG-6382
Change-Id: I0bab34da4ec27c377993782b905b1d6c4f5a14b9
Reviewed-by: Hugues Delorme <delorme.hugues@fougsys.fr>
Diffstat (limited to 'src/plugins/git/remotedialog.cpp')
-rw-r--r-- | src/plugins/git/remotedialog.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/git/remotedialog.cpp b/src/plugins/git/remotedialog.cpp index 5c225ec74d..9dba3bd746 100644 --- a/src/plugins/git/remotedialog.cpp +++ b/src/plugins/git/remotedialog.cpp @@ -106,8 +106,14 @@ RemoteDialog::RemoteDialog(QWidget *parent) : connect(m_ui->addButton, SIGNAL(clicked()), this, SLOT(addRemote())); connect(m_ui->fetchButton, SIGNAL(clicked()), this, SLOT(fetchFromRemote())); + connect(m_ui->pushButton, SIGNAL(clicked()), this, SLOT(pushToRemote())); connect(m_ui->removeButton, SIGNAL(clicked()), this, SLOT(removeRemote())); connect(m_ui->refreshButton, SIGNAL(clicked()), this, SLOT(refreshRemotes())); + + connect(m_ui->remoteView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), + this, SLOT(updateButtonState())); + + updateButtonState(); } RemoteDialog::~RemoteDialog() @@ -163,6 +169,17 @@ void RemoteDialog::removeRemote() } } +void RemoteDialog::pushToRemote() +{ + const QModelIndexList indexList = m_ui->remoteView->selectionModel()->selectedIndexes(); + if (indexList.count() == 0) + return; + + const int row = indexList.at(0).row(); + const QString remoteName = m_remoteModel->remoteName(row); + m_remoteModel->client()->synchronousPush(m_remoteModel->workingDirectory(), remoteName); +} + void RemoteDialog::fetchFromRemote() { const QModelIndexList indexList = m_ui->remoteView->selectionModel()->selectedIndexes(); @@ -174,6 +191,17 @@ void RemoteDialog::fetchFromRemote() m_remoteModel->client()->synchronousFetch(m_remoteModel->workingDirectory(), remoteName); } +void RemoteDialog::updateButtonState() +{ + const QModelIndexList indexList = m_ui->remoteView->selectionModel()->selectedIndexes(); + + const bool haveSelection = (indexList.count() > 0); + m_ui->addButton->setEnabled(true); + m_ui->fetchButton->setEnabled(haveSelection); + m_ui->pushButton->setEnabled(haveSelection); + m_ui->removeButton->setEnabled(haveSelection); +} + void RemoteDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); |