aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2015-06-11 09:14:01 +0300
committerOrgad Shaneh <orgads@gmail.com>2015-06-11 09:02:52 +0000
commita4890d838d4e216c45a7eca2bfd8492cdceb756f (patch)
tree8a805787f51bc075fb6e2d5bec705bae6ea87394 /src/plugins/git
parente0671c0d7805c2897c32304f89dceafa30ee0dee (diff)
Git: Always warn on hard reset when there are modified files
A warning is currently only displayed for reset via context-menu. Change-Id: If01c6c58dfe8ad0d066f4c6fe02ea3d7bb2c8a55 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/git')
-rw-r--r--src/plugins/git/gitclient.cpp12
-rw-r--r--src/plugins/git/giteditor.cpp17
2 files changed, 13 insertions, 16 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 0070ad6fa67..27032a711c3 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1043,8 +1043,18 @@ void GitClient::reset(const QString &workingDirectory, const QString &argument,
arguments << commit;
unsigned flags = 0;
- if (argument == QLatin1String("--hard"))
+ if (argument == QLatin1String("--hard")) {
+ if (gitStatus(workingDirectory, StatusMode(NoUntracked | NoSubmodules)) != StatusUnchanged) {
+ if (QMessageBox::question(
+ Core::ICore::mainWindow(), tr("Reset"),
+ tr("All changes in working directory will be discarded. Are you sure?"),
+ QMessageBox::Yes | QMessageBox::No,
+ QMessageBox::No) == QMessageBox::No) {
+ return;
+ }
+ }
flags |= VcsCommand::ExpectRepoChanges;
+ }
vcsExec(workingDirectory, arguments, 0, true, flags);
}
diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp
index 2ec49b3de4d..3be3eee670f 100644
--- a/src/plugins/git/giteditor.cpp
+++ b/src/plugins/git/giteditor.cpp
@@ -205,21 +205,8 @@ void GitEditorWidget::checkoutChange()
void GitEditorWidget::resetChange(const QByteArray &resetType)
{
- const QString workingDir = sourceWorkingDirectory();
-
- GitClient *client = GitPlugin::instance()->client();
- if (resetType == "hard"
- && client->gitStatus(workingDir, StatusMode(NoUntracked | NoSubmodules))
- != GitClient::StatusUnchanged) {
- if (QMessageBox::question(
- Core::ICore::mainWindow(), tr("Reset"),
- tr("All changes in working directory will be discarded. Are you sure?"),
- QMessageBox::Yes | QMessageBox::No,
- QMessageBox::No) == QMessageBox::No) {
- return;
- }
- }
- client->reset(workingDir, QLatin1String("--" + resetType), m_currentChange);
+ GitPlugin::instance()->client()->reset(
+ sourceWorkingDirectory(), QLatin1String("--" + resetType), m_currentChange);
}
void GitEditorWidget::cherryPickChange()