diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 7a86cd3ec146253feb535e0d19a7eb7ea2c3a72e..a18c9a0d397c1aff3694b33c4038f591af39f618 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 841f16150f075248c2a203fb7d91c8d1726bb134..c9e7dbcffdb0ce68705cff384b203a101df76e3c 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 92c50a68785012c98616efc1da04edc5f34b246c..8f7be998ad6a107c02496d25666f367956e764c4 100644 --- a/src/plugins/git/branchdialog.ui +++ b/src/plugins/git/branchdialog.ui @@ -130,6 +130,13 @@ </property> </widget> </item> + <item> + <widget class="QPushButton" name="resetButton"> + <property name="text"> + <string>Reset</string> + </property> + </widget> + </item> </layout> </item> <item>