diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-06-11 09:14:01 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-06-11 09:02:52 +0000 |
commit | a4890d838d4e216c45a7eca2bfd8492cdceb756f (patch) | |
tree | 8a805787f51bc075fb6e2d5bec705bae6ea87394 /src/plugins/git | |
parent | e0671c0d7805c2897c32304f89dceafa30ee0dee (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.cpp | 12 | ||||
-rw-r--r-- | src/plugins/git/giteditor.cpp | 17 |
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() |