diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index 927bd58c8abbff21dc8a7e9d9f3eae41d47bf57a..ed8df9321f3bbef83a4a9a50b1794cbfe0f04d0f 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -431,7 +431,7 @@ void BranchModel::checkoutBranch(const QModelIndex &idx) return; QString errorMessage; - switch (m_client->ensureStash(m_workingDirectory, &errorMessage)) { + switch (m_client->ensureStash(m_workingDirectory, QLatin1String("Branch-Checkout"), 0, &errorMessage)) { case GitClient::StashUnchanged: case GitClient::Stashed: case GitClient::NotStashed: diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 3b0630df5ec1152ccccb00adac8c9a8dc1a23c84..a873f1987328a6f0dffc9dd6d136f0f9ceb71d1a 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1568,17 +1568,17 @@ static inline int askWithDetailedText(QWidget *parent, } // Convenience that pops up an msg box. -GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory) +GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, const QString &keyword, QString *message) { QString errorMessage; - const StashResult sr = ensureStash(workingDirectory, &errorMessage); + const StashResult sr = ensureStash(workingDirectory, keyword, message, &errorMessage); if (sr == StashFailed) outputWindow()->appendError(errorMessage); return sr; } // Ensure that changed files are stashed before a pull or similar -GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, QString *errorMessage) +GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, const QString &keyword, QString *message, QString *errorMessage) { QString statusOutput; switch (gitStatus(workingDirectory, StatusMode(NoUntracked | NoSubmodules), @@ -1597,14 +1597,17 @@ GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, Q switch (answer) { case QMessageBox::Cancel: return StashCanceled; - case QMessageBox::Yes: - if (!executeSynchronousStash(workingDirectory, creatorStashMessage(QLatin1String("push")), errorMessage)) + case QMessageBox::Yes: { + const QString stashMessage = creatorStashMessage(keyword); + if (!executeSynchronousStash(workingDirectory, stashMessage, errorMessage)) return StashFailed; + if (message) + *message = stashMessage; break; + } case QMessageBox::No: // At your own risk, so. return NotStashed; } - return Stashed; } diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index d7eb76a41fa46e2b1c83a72de5de7e753a733d0c..f0e36309a6e466a2457449a4281528349921cd08 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -207,8 +207,8 @@ public: enum StashResult { StashUnchanged, StashCanceled, StashFailed, Stashed, NotStashed /* User did not want it */ }; - StashResult ensureStash(const QString &workingDirectory, QString *errorMessage); - StashResult ensureStash(const QString &workingDirectory); + StashResult ensureStash(const QString &workingDirectory, const QString &keyword, QString *message = 0); + StashResult ensureStash(const QString &workingDirectory, const QString &keyword, QString *message, QString *errorMessage); bool getCommitData(const QString &workingDirectory, bool amend, QString *commitTemplate, CommitData *commitData, diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index e4ffae16283823decba93408fe1c41bd771766ad..6a4491343f1877f01d4efa6800147d209a62ba25 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -901,7 +901,7 @@ void GitPlugin::pull() } } - GitClient::StashResult stashResult = m_gitClient->ensureStash(state.topLevel()); + GitClient::StashResult stashResult = m_gitClient->ensureStash(state.topLevel(), QLatin1String("Pull")); switch (stashResult) { case GitClient::StashUnchanged: case GitClient::Stashed: @@ -1031,7 +1031,7 @@ void GitPlugin::promptApplyPatch() void GitPlugin::applyPatch(const QString &workingDirectory, QString file) { // Ensure user has been notified about pending changes - switch (m_gitClient->ensureStash(workingDirectory)) { + switch (m_gitClient->ensureStash(workingDirectory, QLatin1String("Apply-Patch"))) { case GitClient::StashUnchanged: case GitClient::Stashed: case GitClient::NotStashed: