diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index b496734f3408d46cd9e1ac17a0bdd168696743b4..82ff778431a435a4cc80e6893043f887fe85ecd8 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -869,10 +869,10 @@ bool GitClient::synchronousCheckout(const QString &workingDirectory, return true; } -void GitClient::hardReset(const QString &workingDirectory, const QString &commit) +void GitClient::reset(const QString &workingDirectory, const QString &argument, const QString &commit) { QStringList arguments; - arguments << QLatin1String("reset") << QLatin1String("--hard"); + arguments << QLatin1String("reset") << argument; if (!commit.isEmpty()) arguments << commit; @@ -880,18 +880,6 @@ void GitClient::hardReset(const QString &workingDirectory, const QString &commit connectRepositoryChanged(workingDirectory, cmd); } -void GitClient::softReset(const QString &workingDirectory, const QString &commit) -{ - if (commit.isEmpty()) - return; - - QStringList arguments; - arguments << QLatin1String("reset") << QLatin1String("--soft") << commit; - - VcsBase::Command *cmd = executeGit(workingDirectory, arguments, 0, true); - connectRepositoryChanged(workingDirectory, cmd); -} - void GitClient::addFile(const QString &workingDirectory, const QString &fileName) { QStringList arguments; diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 5cacc82f143f3b6cf3523f40f66f5f57026780cb..565960ec2d7312254f88ecd4342150ea122e34c2 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -137,8 +137,7 @@ public: bool enableAnnotationContextMenu = false, const QStringList &args = QStringList()); void blame(const QString &workingDirectory, const QStringList &args, const QString &fileName, const QString &revision = QString(), int lineNumber = -1); - void hardReset(const QString &workingDirectory, const QString &commit = QString()); - void softReset(const QString &workingDirectory, const QString &commit); + void reset(const QString &workingDirectory, const QString &argument, const QString &commit = QString()); void addFile(const QString &workingDirectory, const QString &fileName); bool synchronousLog(const QString &workingDirectory, const QStringList &arguments, diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 3dce0b7cf042b7afd41777e732003cf6be210996..f80b661a6b011e89402171a740d03616d587752b 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -708,14 +708,7 @@ void GitPlugin::resetRepository() LogChangeDialog dialog(true); dialog.setWindowTitle(tr("Undo Changes to %1").arg(QDir::toNativeSeparators(topLevel))); if (dialog.runDialog(topLevel)) - switch (dialog.resetType()) { - case HardReset: - m_gitClient->hardReset(topLevel, dialog.commit()); - break; - case SoftReset: - m_gitClient->softReset(topLevel, dialog.commit()); - break; - } + m_gitClient->reset(topLevel, dialog.resetFlag(), dialog.commit()); } void GitPlugin::startRebase() diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp index 28a3e44d8ffb2981d5a454ccead9717b29d36d4b..b8074707d51445e5dc9d03cbae2e4d288393a242 100644 --- a/src/plugins/git/logchangedialog.cpp +++ b/src/plugins/git/logchangedialog.cpp @@ -72,8 +72,8 @@ LogChangeDialog::LogChangeDialog(bool isReset, QWidget *parent) if (isReset) { popUpLayout->addWidget(new QLabel(tr("Reset type:"), this)); m_resetTypeComboBox = new QComboBox(this); - m_resetTypeComboBox->addItem(tr("Hard Reset"), HardReset); - m_resetTypeComboBox->addItem(tr("Soft Reset"), SoftReset); + m_resetTypeComboBox->addItem(tr("Hard"), QLatin1String("--hard")); + m_resetTypeComboBox->addItem(tr("Soft"), QLatin1String("--soft")); popUpLayout->addWidget(m_resetTypeComboBox); popUpLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); } @@ -112,11 +112,11 @@ QString LogChangeDialog::commit() const return QString(); } -ResetType LogChangeDialog::resetType() const +QString LogChangeDialog::resetFlag() const { if (!m_resetTypeComboBox) - return HardReset; - return static_cast<ResetType>(m_resetTypeComboBox->itemData(m_resetTypeComboBox->currentIndex()).toInt()); + return QString(); + return m_resetTypeComboBox->itemData(m_resetTypeComboBox->currentIndex()).toString(); } bool LogChangeDialog::populateLog(const QString &repository) diff --git a/src/plugins/git/logchangedialog.h b/src/plugins/git/logchangedialog.h index 78f61f9cfc9d0d902698736588f11743f3ab030e..f0b3b1267be17056945c617518bd73f4cb37f035 100644 --- a/src/plugins/git/logchangedialog.h +++ b/src/plugins/git/logchangedialog.h @@ -44,13 +44,7 @@ namespace Git { namespace Internal { // A dialog that lists SHA1 and subject of the changes -// for reset --hard and --soft. - -enum ResetType { - HardReset, - SoftReset -}; - +// Used for reset and interactive rebased class LogChangeDialog : public QDialog { Q_OBJECT @@ -60,7 +54,7 @@ public: bool runDialog(const QString &repository); QString commit() const; - ResetType resetType() const; + QString resetFlag() const; private: bool populateLog(const QString &repository);