aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/bazaar/bazaarplugin.cpp3
-rw-r--r--src/plugins/clearcase/clearcaseplugin.cpp8
-rw-r--r--src/plugins/clearcase/clearcaseplugin.h1
-rw-r--r--src/plugins/cvs/cvsplugin.cpp3
-rw-r--r--src/plugins/git/gitplugin.cpp3
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp5
-rw-r--r--src/plugins/perforce/perforceplugin.cpp7
-rw-r--r--src/plugins/perforce/perforceplugin.h1
-rw-r--r--src/plugins/subversion/subversionplugin.cpp3
-rw-r--r--src/plugins/vcsbase/vcsbaseplugin.cpp10
-rw-r--r--src/plugins/vcsbase/vcsbaseplugin.h5
11 files changed, 48 insertions, 1 deletions
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index a441b5e78fc..426c55bfc30 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -509,6 +509,9 @@ void BazaarPlugin::createSubmitEditorActions()
void BazaarPlugin::commit()
{
+ if (!promptBeforeCommit()))
+ return;
+
if (raiseSubmitEditor())
return;
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index 8f215be159e..03f570d9814 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -837,6 +837,11 @@ void ClearCasePlugin::updateActions(VcsBasePlugin::ActionState as)
updateStatusActions();
}
+QString ClearCasePlugin::commitDisplayName() const
+{
+ return tr("check in", "\"commit\" action for ClearCase.");
+}
+
void ClearCasePlugin::checkOutCurrentFile()
{
const VcsBasePluginState state = currentState();
@@ -1206,6 +1211,9 @@ void ClearCasePlugin::startCheckInActivity()
* check in will start. */
void ClearCasePlugin::startCheckIn(const QString &workingDir, const QStringList &files)
{
+ if (!promptBeforeCommit())
+ return;
+
if (raiseSubmitEditor())
return;
diff --git a/src/plugins/clearcase/clearcaseplugin.h b/src/plugins/clearcase/clearcaseplugin.h
index d2db83a8ac8..70c18334263 100644
--- a/src/plugins/clearcase/clearcaseplugin.h
+++ b/src/plugins/clearcase/clearcaseplugin.h
@@ -199,6 +199,7 @@ private:
void syncSlot();
Q_INVOKABLE void updateStatusActions();
+ QString commitDisplayName() const final;
void checkOutCurrentFile();
void addCurrentFile();
void undoCheckOutCurrent();
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 16a0fa211dd..e312cda6398 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -651,6 +651,9 @@ void CvsPlugin::startCommitAll()
* commit will start. */
void CvsPlugin::startCommit(const QString &workingDir, const QString &file)
{
+ if (!promptBeforeCommit())
+ return;
+
if (raiseSubmitEditor())
return;
if (isCommitEditorOpen()) {
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 311127aaa7e..a310e132cb4 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -926,6 +926,9 @@ void GitPlugin::gitGui()
void GitPlugin::startCommit(CommitType commitType)
{
+ if (!promptBeforeCommit())
+ return;
+
if (raiseSubmitEditor())
return;
if (isCommitEditorOpen()) {
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index e982b51cdf4..5c12b42c519 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -37,12 +37,12 @@
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/command.h>
+#include <coreplugin/documentmanager.h>
#include <coreplugin/id.h>
#include <coreplugin/vcsmanager.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
-#include <coreplugin/documentmanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/locator/commandlocator.h>
@@ -494,6 +494,9 @@ void MercurialPlugin::createSubmitEditorActions()
void MercurialPlugin::commit()
{
+ if (!promptBeforeCommit())
+ return;
+
if (raiseSubmitEditor())
return;
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index c4a1e50ac46..0278cd6403c 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -556,6 +556,8 @@ void PerforcePlugin::printOpenedFileList()
void PerforcePlugin::startSubmitProject()
{
+ if (!promptBeforeCommit())
+ return;
if (raiseSubmitEditor())
return;
@@ -1225,6 +1227,11 @@ void PerforceDiffConfig::triggerReRun()
emit reRunDiff(effectiveParameters);
}
+QString PerforcePlugin::commitDisplayName() const
+{
+ return tr("submit", "\"commit\" action for perforce");
+}
+
void PerforcePlugin::p4Diff(const QString &workingDir, const QStringList &files)
{
PerforceDiffParameters p;
diff --git a/src/plugins/perforce/perforceplugin.h b/src/plugins/perforce/perforceplugin.h
index ae90276f977..814969537ad 100644
--- a/src/plugins/perforce/perforceplugin.h
+++ b/src/plugins/perforce/perforceplugin.h
@@ -113,6 +113,7 @@ private slots:
#endif
private:
+ QString commitDisplayName() const final;
void p4Diff(const PerforceDiffParameters &p);
void openCurrentFile();
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index c72dbf703d3..d35d027b57e 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -642,6 +642,9 @@ void SubversionPlugin::startCommitProject()
* commit will start. */
void SubversionPlugin::startCommit(const QString &workingDir, const QStringList &files)
{
+ if (!promptBeforeCommit())
+ return;
+
if (raiseSubmitEditor())
return;
if (isCommitEditorOpen()) {
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index edc68b2a0cf..dcf648a4e7c 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -641,6 +641,16 @@ bool VcsBasePlugin::enableMenuAction(ActionState as, QAction *menuAction) const
return true;
}
+QString VcsBasePlugin::commitDisplayName() const
+{
+ return tr("commit", "name of \"commit\" action of the VCS.");
+}
+
+bool VcsBasePlugin::promptBeforeCommit()
+{
+ return DocumentManager::saveAllModifiedDocuments(tr("Save before %1?").arg(commitDisplayName());
+}
+
void VcsBasePlugin::promptToDeleteCurrentFile()
{
const VcsBasePluginState state = currentState();
diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h
index 0312d637242..72b2c5a46eb 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.h
+++ b/src/plugins/vcsbase/vcsbaseplugin.h
@@ -178,6 +178,11 @@ public:
const QProcessEnvironment &env = QProcessEnvironment());
protected:
+ // Display name of the commit action:
+ virtual QString commitDisplayName() const;
+ // Prompt to save all files before commit:
+ bool promptBeforeCommit();
+
// Convenience slot for "Delete current file" action. Prompts to
// delete the file via VcsManager.
void promptToDeleteCurrentFile();