diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 7a86cd3ec14..a18c9a0d397 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -71,6 +71,7 @@ BranchDialog::BranchDialog(QWidget *parent) : connect(m_ui->renameButton, SIGNAL(clicked()), this, SLOT(rename())); connect(m_ui->diffButton, SIGNAL(clicked()), this, SLOT(diff())); connect(m_ui->logButton, SIGNAL(clicked()), this, SLOT(log())); + connect(m_ui->resetButton, SIGNAL(clicked()), this, SLOT(reset())); connect(m_ui->mergeButton, SIGNAL(clicked()), this, SLOT(merge())); connect(m_ui->rebaseButton, SIGNAL(clicked()), this, SLOT(rebase())); connect(m_ui->cherryPickButton, SIGNAL(clicked()), this, SLOT(cherryPick())); @@ -320,6 +321,22 @@ void BranchDialog::log() GitPlugin::instance()->gitClient()->log(QString(m_repository), QString(), false, QStringList(branchName)); } +void BranchDialog::reset() +{ + QString currentName = m_model->fullName(m_model->currentBranch(), true); + QString branchName = m_model->fullName(selectedIndex(), true); + if (currentName.isEmpty() || branchName.isEmpty()) + return; + + if (QMessageBox::question(this, tr("Git Reset"), tr("Hard reset branch '%1' to '%2'?") + .arg(currentName).arg(branchName), + QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) { + GitPlugin::instance()->gitClient()->reset(QString(m_repository), QLatin1String("--hard"), + branchName); + + } +} + void BranchDialog::merge() { if (!Core::DocumentManager::saveAllModifiedDocuments()) diff --git a/src/plugins/git/branchdialog.h b/src/plugins/git/branchdialog.h index 841f16150f0..c9e7dbcffdb 100644 --- a/src/plugins/git/branchdialog.h +++ b/src/plugins/git/branchdialog.h @@ -70,6 +70,7 @@ private slots: void rename(); void diff(); void log(); + void reset(); void merge(); void rebase(); void cherryPick(); diff --git a/src/plugins/git/branchdialog.ui b/src/plugins/git/branchdialog.ui index 92c50a68785..8f7be998ad6 100644 --- a/src/plugins/git/branchdialog.ui +++ b/src/plugins/git/branchdialog.ui @@ -130,6 +130,13 @@ + + + + Reset + + +