Vcs: Move responsibility to set editor parameters to editor factory

So it doesn't need to be named twice in the editor factory setup.

This intentially includes a de-optimiztion: storing the parameters
by value, not by pointer. That's more natural, does not need to
keep the parameters alive on the caller side, and it's uncritical
in this context.

Change-Id: I92867d3f2f75c38911ae82d3eeb4759cba71b723
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2020-02-05 09:27:26 +01:00
parent c17767c78e
commit 7f37c503db
27 changed files with 66 additions and 70 deletions

View File

@@ -41,22 +41,23 @@ const char SUBMIT[] = "Vcs.Submit";
const char DIFF_SELECTED[] = "Vcs.DiffSelectedFiles";
VcsSubmitEditorFactory::VcsSubmitEditorFactory
(const VcsBaseSubmitEditorParameters *parameters,
(const VcsBaseSubmitEditorParameters &parameters,
const EditorCreator &editorCreator,
VcsBasePluginPrivate *plugin)
: IEditorFactory(plugin)
{
setId(parameters->id);
setDisplayName(QLatin1String(parameters->displayName));
addMimeType(parameters->mimeType);
setId(parameters.id);
setDisplayName(QLatin1String(parameters.displayName));
addMimeType(parameters.mimeType);
setEditorCreator([this, editorCreator] {
setEditorCreator([this, editorCreator, parameters] {
VcsBaseSubmitEditor *editor = editorCreator();
editor->setParameters(parameters);
editor->registerActions(m_undoAction, m_redoAction, m_submitAction, m_diffAction);
return editor;
});
Context context(parameters->id);
Context context(parameters.id);
m_undoAction = new QAction(tr("&Undo"), this);
ActionManager::registerAction(m_undoAction, Core::Constants::UNDO, context);