aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/mercurial
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-04-18 12:06:43 +0200
committerEike Ziller <eike.ziller@digia.com>2013-04-19 16:21:06 +0200
commite31575a493c70116c46eb09fd9d469a70ddd2298 (patch)
tree5c1a0032ba5ce11950dd30bea76026bdd0525cbe /src/plugins/mercurial
parentd4f763edc696e9c6413f2f68b0fc9f7091dfe7de (diff)
VCS: Clean up submit editor handling
It was not possible to simultaneously open two commit editors for different version control systems, also there was no reason to scan all open editors for the submit editor, since the plugins can just remember the editor that they opened. Change-Id: I1bea6ece3cd6faa1ecc0566bdd6f5fb10c816963 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/mercurial')
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp15
-rw-r--r--src/plugins/mercurial/mercurialplugin.h2
2 files changed, 9 insertions, 8 deletions
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index ebdb31a913..e076c81dd7 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -115,7 +115,7 @@ static const VcsBaseSubmitEditorParameters submitEditorParameters = {
MercurialPlugin *MercurialPlugin::m_instance = 0;
MercurialPlugin::MercurialPlugin() :
- VcsBasePlugin(Constants::COMMIT_ID),
+ VcsBasePlugin(),
optionsPage(0),
m_client(0),
core(0),
@@ -534,7 +534,7 @@ void MercurialPlugin::createSubmitEditorActions()
void MercurialPlugin::commit()
{
- if (VcsBaseSubmitEditor::raiseSubmitEditor())
+ if (raiseSubmitEditor())
return;
const VcsBasePluginState state = currentState();
@@ -578,6 +578,7 @@ void MercurialPlugin::showCommitWidget(const QList<VcsBaseClient::StatusItem> &s
QTC_ASSERT(qobject_cast<CommitEditor *>(editor), return);
CommitEditor *commitEditor = static_cast<CommitEditor *>(editor);
+ setSubmitEditor(commitEditor);
commitEditor->registerActions(editorUndo, editorRedo, editorCommit, editorDiff);
connect(commitEditor, SIGNAL(diffSelectedFiles(QStringList)),
@@ -606,12 +607,12 @@ void MercurialPlugin::commitFromEditor()
Core::ICore::editorManager()->closeEditor();
}
-bool MercurialPlugin::submitEditorAboutToClose(VcsBaseSubmitEditor *submitEditor)
+bool MercurialPlugin::submitEditorAboutToClose()
{
- Core::IDocument *editorFile = submitEditor->document();
- CommitEditor *commitEditor = qobject_cast<CommitEditor *>(submitEditor);
- if (!editorFile || !commitEditor)
- return true;
+ CommitEditor *commitEditor = qobject_cast<CommitEditor *>(submitEditor());
+ QTC_ASSERT(commitEditor, return true);
+ Core::IDocument *editorFile = commitEditor->document();
+ QTC_ASSERT(editorFile, return true);
bool dummyPrompt = mercurialSettings.boolValue(MercurialSettings::promptOnSubmitKey);
const VcsBaseSubmitEditor::PromptSubmitResult response =
diff --git a/src/plugins/mercurial/mercurialplugin.h b/src/plugins/mercurial/mercurialplugin.h
index a6c1265969..824bc04eb1 100644
--- a/src/plugins/mercurial/mercurialplugin.h
+++ b/src/plugins/mercurial/mercurialplugin.h
@@ -125,7 +125,7 @@ private slots:
protected:
void updateActions(VcsBase::VcsBasePlugin::ActionState);
- bool submitEditorAboutToClose(VcsBase::VcsBaseSubmitEditor *submitEditor);
+ bool submitEditorAboutToClose();
private:
void createMenu();