Commit e5c6a29f authored by Friedemann Kleint's avatar Friedemann Kleint
Browse files

Raise existing submit window if there is one when Submit is invoked.

Introduce convenience to VCSBaseSubmitEditor.
Task-number: 254644
parent 192afe08
...@@ -588,6 +588,8 @@ void GitPlugin::revertFile() ...@@ -588,6 +588,8 @@ void GitPlugin::revertFile()
void GitPlugin::startCommit() void GitPlugin::startCommit()
{ {
if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor())
return;
if (m_changeTmpFile) { if (m_changeTmpFile) {
m_outputWindow->append(tr("Another submit is currently beeing executed.")); m_outputWindow->append(tr("Another submit is currently beeing executed."));
m_outputWindow->popup(false); m_outputWindow->popup(false);
......
...@@ -485,6 +485,9 @@ void PerforcePlugin::printOpenedFileList() ...@@ -485,6 +485,9 @@ void PerforcePlugin::printOpenedFileList()
void PerforcePlugin::submit() void PerforcePlugin::submit()
{ {
if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor())
return;
if (!checkP4Command()) { if (!checkP4Command()) {
showOutput(tr("No p4 executable specified!"), true); showOutput(tr("No p4 executable specified!"), true);
return; return;
......
...@@ -712,7 +712,8 @@ void SubversionPlugin::startCommit(const QStringList &files) ...@@ -712,7 +712,8 @@ void SubversionPlugin::startCommit(const QStringList &files)
{ {
if (files.empty()) if (files.empty())
return; return;
if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor())
return;
if (m_changeTmpFile) { if (m_changeTmpFile) {
showOutput(tr("Another commit is currently being executed.")); showOutput(tr("Another commit is currently being executed."));
return; return;
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <aggregation/aggregate.h> #include <aggregation/aggregate.h>
#include <coreplugin/ifile.h> #include <coreplugin/ifile.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/uniqueidmanager.h> #include <coreplugin/uniqueidmanager.h>
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
#include <utils/submiteditorwidget.h> #include <utils/submiteditorwidget.h>
...@@ -592,4 +593,23 @@ QStringList VCSBaseSubmitEditor::currentProjectFiles(bool nativeSeparators, QStr ...@@ -592,4 +593,23 @@ QStringList VCSBaseSubmitEditor::currentProjectFiles(bool nativeSeparators, QStr
} }
return files; 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 } // namespace VCSBase
...@@ -159,7 +159,10 @@ public: ...@@ -159,7 +159,10 @@ public:
// be restricted to them // be restricted to them
static QStringList currentProjectFiles(bool nativeSeparators, QString *name = 0); 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: signals:
void diffSelectedFiles(const QStringList &files); void diffSelectedFiles(const QStringList &files);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment