From 41b51ff67fccdd788cc5257d36b57ee8d483be23 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Wed, 26 Jun 2013 22:32:55 +0300 Subject: [PATCH] Git: Preserve reset type Task-number: QTCREATORBUG-9666 Change-Id: I364bc0eefef376a9a14953b259e9d7b2eb29c228 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- src/plugins/git/gitsettings.cpp | 2 ++ src/plugins/git/gitsettings.h | 1 + src/plugins/git/logchangedialog.cpp | 13 ++++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp index 64feea302ed..197c13d7249 100644 --- a/src/plugins/git/gitsettings.cpp +++ b/src/plugins/git/gitsettings.cpp @@ -48,6 +48,7 @@ const QLatin1String GitSettings::gitkOptionsKey("GitKOptions"); const QLatin1String GitSettings::logDiffKey("LogDiff"); const QLatin1String GitSettings::repositoryBrowserCmd("RepositoryBrowserCmd"); const QLatin1String GitSettings::graphLogKey("GraphLog"); +const QLatin1String GitSettings::lastResetIndexKey("LastResetIndex"); GitSettings::GitSettings() { @@ -68,6 +69,7 @@ GitSettings::GitSettings() declareKey(logDiffKey, false); declareKey(repositoryBrowserCmd, QString()); declareKey(graphLogKey, false); + declareKey(lastResetIndexKey, 0); } QString GitSettings::gitBinaryPath(bool *ok, QString *errorMessage) const diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h index dcf5fd940e4..33980173b71 100644 --- a/src/plugins/git/gitsettings.h +++ b/src/plugins/git/gitsettings.h @@ -61,6 +61,7 @@ public: static const QLatin1String logDiffKey; static const QLatin1String repositoryBrowserCmd; static const QLatin1String graphLogKey; + static const QLatin1String lastResetIndexKey; QString gitBinaryPath(bool *ok = 0, QString *errorMessage = 0) const; diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp index 3dba3eb3a73..f96cb5b137e 100644 --- a/src/plugins/git/logchangedialog.cpp +++ b/src/plugins/git/logchangedialog.cpp @@ -180,6 +180,9 @@ LogChangeDialog::LogChangeDialog(bool isReset, QWidget *parent) : m_resetTypeComboBox->addItem(tr("Hard"), QLatin1String("--hard")); m_resetTypeComboBox->addItem(tr("Mixed"), QLatin1String("--mixed")); m_resetTypeComboBox->addItem(tr("Soft"), QLatin1String("--soft")); + GitClient *client = GitPlugin::instance()->gitClient(); + m_resetTypeComboBox->setCurrentIndex(client->settings()->intValue( + GitSettings::lastResetIndexKey)); popUpLayout->addWidget(m_resetTypeComboBox); popUpLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); } @@ -203,7 +206,15 @@ bool LogChangeDialog::runDialog(const QString &repository, const QString &commit if (!widget->init(repository, commit, includeRemote)) return false; - return QDialog::exec() == QDialog::Accepted; + if (QDialog::exec() == QDialog::Accepted) { + if (m_resetTypeComboBox) { + GitClient *client = GitPlugin::instance()->gitClient(); + client->settings()->setValue(GitSettings::lastResetIndexKey, + m_resetTypeComboBox->currentIndex()); + } + return true; + } + return false; } QString LogChangeDialog::commit() const -- GitLab