diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 969464cd441..73e8d273f65 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -3308,10 +3308,21 @@ GitClient::StashGuard::StashGuard(const QString &workingDirectory, const QString m_client = GitPlugin::instance()->gitClient(); QString errorMessage; - if (m_flags & NoPrompt) - executeStash(keyword, &errorMessage); - else - stashPrompt(keyword, &errorMessage); + QString statusOutput; + switch (m_client->gitStatus(m_workingDir, StatusMode(NoUntracked | NoSubmodules), + &statusOutput, &errorMessage)) { + case GitClient::StatusChanged: + if (m_flags & NoPrompt) + executeStash(keyword, &errorMessage); + else + stashPrompt(keyword, statusOutput, &errorMessage); + case GitClient::StatusUnchanged: + m_stashResult = StashUnchanged; + break; + case GitClient::StatusFailed: + m_stashResult = StashFailed; + break; + } if (m_stashResult == StashFailed) VcsBase::VcsBaseOutputWindow::instance()->appendError(errorMessage); @@ -3326,21 +3337,9 @@ GitClient::StashGuard::~StashGuard() } } -void GitClient::StashGuard::stashPrompt(const QString &keyword, QString *errorMessage) +void GitClient::StashGuard::stashPrompt(const QString &keyword, const QString &statusOutput, + QString *errorMessage) { - QString statusOutput; - switch (m_client->gitStatus(m_workingDir, StatusMode(NoUntracked | NoSubmodules), - &statusOutput, errorMessage)) { - case GitClient::StatusChanged: - break; - case GitClient::StatusUnchanged: - m_stashResult = StashUnchanged; - return; - case GitClient::StatusFailed: - m_stashResult = StashFailed; - return; - } - QMessageBox msgBox(QMessageBox::Question, tr("Uncommitted Changes Found"), tr("What would you like to do with local changes in:") + QLatin1String("\n\n\"") + m_workingDir + QLatin1Char('\"'), diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 1b754f3cc2c..986f24b2e40 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -110,7 +110,7 @@ public: QString stashMessage() const { return m_message; } private: - void stashPrompt(const QString &keyword, QString *errorMessage); + void stashPrompt(const QString &keyword, const QString &statusOutput, QString *errorMessage); void executeStash(const QString &keyword, QString *errorMessage); bool m_pop;