diff options
author | Friedemann Kleint <[email protected]> | 2009-05-27 16:17:24 +0200 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2009-05-27 16:17:24 +0200 |
commit | e5c6a29fc4231b22ab418c9621e91f4c59b75adc (patch) | |
tree | 9564ff0e392818959cfb1ce899a338edaa9f85d8 /src/plugins | |
parent | 192afe08258cc374d2f47cc3f7663dee349709d5 (diff) |
Raise existing submit window if there is one when Submit is invoked.
Introduce convenience to VCSBaseSubmitEditor.
Task-number: 254644
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/git/gitplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/perforce/perforceplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/subversion/subversionplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbasesubmiteditor.cpp | 20 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbasesubmiteditor.h | 5 |
5 files changed, 31 insertions, 2 deletions
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 702f2aa770c..4f240a21fe8 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -588,6 +588,8 @@ void GitPlugin::revertFile() void GitPlugin::startCommit() { + if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) + return; if (m_changeTmpFile) { m_outputWindow->append(tr("Another submit is currently beeing executed.")); m_outputWindow->popup(false); diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 4c4c3190755..2bbbb705aef 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -485,6 +485,9 @@ void PerforcePlugin::printOpenedFileList() void PerforcePlugin::submit() { + if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) + return; + if (!checkP4Command()) { showOutput(tr("No p4 executable specified!"), true); return; diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 2cb82e13f89..532beecdf45 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -712,7 +712,8 @@ void SubversionPlugin::startCommit(const QStringList &files) { if (files.empty()) return; - + if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) + return; if (m_changeTmpFile) { showOutput(tr("Another commit is currently being executed.")); return; diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 204c8257939..a77455f44fc 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -36,6 +36,7 @@ #include <aggregation/aggregate.h> #include <coreplugin/ifile.h> #include <coreplugin/icore.h> +#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/uniqueidmanager.h> #include <coreplugin/actionmanager/actionmanager.h> #include <utils/submiteditorwidget.h> @@ -592,4 +593,23 @@ QStringList VCSBaseSubmitEditor::currentProjectFiles(bool nativeSeparators, QStr } return files; } + +// Helper to raise an already open submit editor to prevent opening twice. +bool VCSBaseSubmitEditor::raiseSubmitEditor() +{ + Core::EditorManager *em = Core::EditorManager::instance(); + // Nothing to do? + if (Core::IEditor *ce = em->currentEditor()) + if (qobject_cast<VCSBaseSubmitEditor*>(ce)) + return true; + // Try to activate a hidden one + foreach (Core::IEditor *e, em->openedEditors()) { + if (qobject_cast<VCSBaseSubmitEditor*>(e)) { + em->activateEditor(e, Core::EditorManager::IgnoreNavigationHistory); + return true; + } + } + return false; +} + } // namespace VCSBase diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.h b/src/plugins/vcsbase/vcsbasesubmiteditor.h index 6b0138df396..f949177aade 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.h +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.h @@ -159,7 +159,10 @@ public: // be restricted to them static QStringList currentProjectFiles(bool nativeSeparators, QString *name = 0); - bool temporaryEditor() const { return true; } + virtual bool temporaryEditor() const { return true; } + + // Helper to raise an already open submit editor to prevent opening twice. + static bool raiseSubmitEditor(); signals: void diffSelectedFiles(const QStringList &files); |