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

@@ -204,8 +204,8 @@ public:
OptionsPage m_optionsPage{[this] { configurationChanged(); }, &m_settings}; OptionsPage m_optionsPage{[this] { configurationChanged(); }, &m_settings};
VcsSubmitEditorFactory m_submitEditorFactory { VcsSubmitEditorFactory m_submitEditorFactory {
&submitEditorParameters, submitEditorParameters,
[] { return new CommitEditor(&submitEditorParameters); }, [] { return new CommitEditor; },
this this
}; };
Core::CommandLocator *m_commandLocator = nullptr; Core::CommandLocator *m_commandLocator = nullptr;

View File

@@ -35,8 +35,8 @@
using namespace Bazaar::Internal; using namespace Bazaar::Internal;
CommitEditor::CommitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters) : CommitEditor::CommitEditor() :
VcsBase::VcsBaseSubmitEditor(parameters, new BazaarCommitWidget) VcsBase::VcsBaseSubmitEditor(new BazaarCommitWidget)
{ {
document()->setPreferredDisplayName(tr("Commit Editor")); document()->setPreferredDisplayName(tr("Commit Editor"));
} }

View File

@@ -41,7 +41,7 @@ class CommitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
explicit CommitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); CommitEditor();
void setFields(const QString &repositoryRoot, const BranchInfo &branch, void setFields(const QString &repositoryRoot, const BranchInfo &branch,
const QString &userName, const QString &email, const QString &userName, const QString &email,

View File

@@ -439,8 +439,7 @@ ClearCasePluginPrivate::ClearCasePluginPrivate()
new ClearCaseSettingsPage(this); new ClearCaseSettingsPage(this);
new VcsSubmitEditorFactory(&submitParameters, new VcsSubmitEditorFactory(submitParameters, [] { return new ClearCaseSubmitEditor; }, this);
[]() { return new ClearCaseSubmitEditor(&submitParameters); }, this);
// any editor responds to describe (when clicking a version) // any editor responds to describe (when clicking a version)
const auto describeFunc = [this](const QString &source, const QString &changeNr) { const auto describeFunc = [this](const QString &source, const QString &changeNr) {

View File

@@ -33,8 +33,8 @@
using namespace ClearCase::Internal; using namespace ClearCase::Internal;
ClearCaseSubmitEditor::ClearCaseSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters) : ClearCaseSubmitEditor::ClearCaseSubmitEditor() :
VcsBase::VcsBaseSubmitEditor(parameters, new ClearCaseSubmitEditorWidget) VcsBase::VcsBaseSubmitEditor(new ClearCaseSubmitEditorWidget)
{ {
document()->setPreferredDisplayName(tr("ClearCase Check In")); document()->setPreferredDisplayName(tr("ClearCase Check In"));
} }

View File

@@ -38,7 +38,7 @@ class ClearCaseSubmitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
explicit ClearCaseSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); ClearCaseSubmitEditor();
static QString fileFromStatusLine(const QString &statusLine); static QString fileFromStatusLine(const QString &statusLine);

View File

@@ -518,8 +518,7 @@ CvsPluginPrivate::CvsPluginPrivate()
new CvsSettingsPage([this] { configurationChanged(); }, &m_settings, this); new CvsSettingsPage([this] { configurationChanged(); }, &m_settings, this);
new VcsSubmitEditorFactory(&submitParameters, new VcsSubmitEditorFactory(submitParameters, [] { return new CvsSubmitEditor; }, this);
[]() { return new CvsSubmitEditor(&submitParameters); }, this);
const auto describeFunc = [this](const QString &source, const QString &changeNr) { const auto describeFunc = [this](const QString &source, const QString &changeNr) {
QString errorMessage; QString errorMessage;

View File

@@ -31,8 +31,8 @@
using namespace Cvs::Internal; using namespace Cvs::Internal;
using namespace VcsBase; using namespace VcsBase;
CvsSubmitEditor::CvsSubmitEditor(const VcsBaseSubmitEditorParameters *parameters) : CvsSubmitEditor::CvsSubmitEditor() :
VcsBaseSubmitEditor(parameters, new SubmitEditorWidget), VcsBase::VcsBaseSubmitEditor(new SubmitEditorWidget),
m_msgAdded(tr("Added")), m_msgAdded(tr("Added")),
m_msgRemoved(tr("Removed")), m_msgRemoved(tr("Removed")),
m_msgModified(tr("Modified")) m_msgModified(tr("Modified"))

View File

@@ -38,13 +38,13 @@ class CvsSubmitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
CvsSubmitEditor();
enum State { LocallyAdded, LocallyModified, LocallyRemoved }; enum State { LocallyAdded, LocallyModified, LocallyRemoved };
// A list of state indicators and file names. // A list of state indicators and file names.
typedef QPair<State, QString> StateFilePair; typedef QPair<State, QString> StateFilePair;
typedef QList<StateFilePair> StateFilePairs; typedef QList<StateFilePair> StateFilePairs;
explicit CvsSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters);
void setStateList(const StateFilePairs &statusOutput); void setStateList(const StateFilePairs &statusOutput);
private: private:

View File

@@ -367,8 +367,7 @@ GitPluginPrivate::GitPluginPrivate()
for (int i = 0; i < editorCount; i++) for (int i = 0; i < editorCount; i++)
new VcsEditorFactory(editorParameters + i, widgetCreator, describeFunc, this); new VcsEditorFactory(editorParameters + i, widgetCreator, describeFunc, this);
new VcsSubmitEditorFactory(&submitParameters, new VcsSubmitEditorFactory(submitParameters, [] { return new GitSubmitEditor; }, this);
[]() { return new GitSubmitEditor(&submitParameters); }, this);
const QString prefix = "git"; const QString prefix = "git";
m_commandLocator = new CommandLocator("Git", prefix, prefix, this); m_commandLocator = new CommandLocator("Git", prefix, prefix, this);

View File

@@ -98,8 +98,8 @@ CommitDataFetchResult CommitDataFetchResult::fetch(CommitType commitType, const
* option for staged files. So, we sort apart the diff file lists * option for staged files. So, we sort apart the diff file lists
* according to a type flag we add to the model. */ * according to a type flag we add to the model. */
GitSubmitEditor::GitSubmitEditor(const VcsBaseSubmitEditorParameters *parameters) : GitSubmitEditor::GitSubmitEditor() :
VcsBaseSubmitEditor(parameters, new GitSubmitEditorWidget) VcsBaseSubmitEditor(new GitSubmitEditorWidget)
{ {
connect(this, &VcsBaseSubmitEditor::diffSelectedRows, this, &GitSubmitEditor::slotDiffSelected); connect(this, &VcsBaseSubmitEditor::diffSelectedRows, this, &GitSubmitEditor::slotDiffSelected);
connect(submitEditorWidget(), &GitSubmitEditorWidget::show, this, &GitSubmitEditor::showCommit); connect(submitEditorWidget(), &GitSubmitEditorWidget::show, this, &GitSubmitEditor::showCommit);

View File

@@ -55,7 +55,7 @@ class GitSubmitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
explicit GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); GitSubmitEditor();
~GitSubmitEditor() override; ~GitSubmitEditor() override;
void setCommitData(const CommitData &); void setCommitData(const CommitData &);

View File

@@ -36,8 +36,8 @@ using namespace VcsBase;
namespace Mercurial { namespace Mercurial {
namespace Internal { namespace Internal {
CommitEditor::CommitEditor(const VcsBaseSubmitEditorParameters *parameters) : CommitEditor::CommitEditor() :
VcsBaseSubmitEditor(parameters, new MercurialCommitWidget) VcsBaseSubmitEditor(new MercurialCommitWidget)
{ {
document()->setPreferredDisplayName(tr("Commit Editor")); document()->setPreferredDisplayName(tr("Commit Editor"));
} }

View File

@@ -42,7 +42,7 @@ class CommitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
explicit CommitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); CommitEditor();
void setFields(const QFileInfo &repositoryRoot, const QString &branch, void setFields(const QFileInfo &repositoryRoot, const QString &branch,
const QString &userName, const QString &email, const QString &userName, const QString &email,

View File

@@ -256,8 +256,7 @@ MercurialPluginPrivate::MercurialPluginPrivate()
for (auto &editor : editorParameters) for (auto &editor : editorParameters)
new VcsEditorFactory(&editor, widgetCreator, describeFunc, this); new VcsEditorFactory(&editor, widgetCreator, describeFunc, this);
new VcsSubmitEditorFactory(&submitEditorParameters, new VcsSubmitEditorFactory(submitEditorParameters, [] { return new CommitEditor; }, this);
[]() { return new CommitEditor(&submitEditorParameters); }, this);
const QString prefix = QLatin1String("hg"); const QString prefix = QLatin1String("hg");
m_commandLocator = new Core::CommandLocator("Mercurial", prefix, prefix, this); m_commandLocator = new Core::CommandLocator("Mercurial", prefix, prefix, this);

View File

@@ -381,8 +381,7 @@ PerforcePluginPrivate::PerforcePluginPrivate()
m_settings.fromSettings(ICore::settings()); m_settings.fromSettings(ICore::settings());
// Editor factories // Editor factories
new VcsSubmitEditorFactory(&submitParameters, new VcsSubmitEditorFactory(submitParameters, [] { return new PerforceSubmitEditor; }, this);
[]() { return new PerforceSubmitEditor(&submitParameters); }, this);
const auto describeFunc = [this](const QString &source, const QString &n) { const auto describeFunc = [this](const QString &source, const QString &n) {
describe(source, n); describe(source, n);

View File

@@ -36,8 +36,8 @@ namespace Internal {
enum { FileSpecRole = Qt::UserRole + 1 }; enum { FileSpecRole = Qt::UserRole + 1 };
PerforceSubmitEditor::PerforceSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters) : PerforceSubmitEditor::PerforceSubmitEditor() :
VcsBaseSubmitEditor(parameters, new PerforceSubmitEditorWidget), VcsBaseSubmitEditor(new PerforceSubmitEditorWidget),
m_fileModel(new VcsBase::SubmitFileModel(this)) m_fileModel(new VcsBase::SubmitFileModel(this))
{ {
document()->setPreferredDisplayName(tr("Perforce Submit")); document()->setPreferredDisplayName(tr("Perforce Submit"));

View File

@@ -50,7 +50,7 @@ class PerforceSubmitEditor : public VcsBase::VcsBaseSubmitEditor
Q_OBJECT Q_OBJECT
public: public:
explicit PerforceSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); PerforceSubmitEditor();
/* The p4 submit starts with all opened files. Restrict /* The p4 submit starts with all opened files. Restrict
* it to the current project files in question. */ * it to the current project files in question. */

View File

@@ -388,8 +388,7 @@ SubversionPluginPrivate::SubversionPluginPrivate()
using namespace Core::Constants; using namespace Core::Constants;
Context context(SUBVERSION_CONTEXT); Context context(SUBVERSION_CONTEXT);
new VcsSubmitEditorFactory(&submitParameters, new VcsSubmitEditorFactory(submitParameters, [] { return new SubversionSubmitEditor; }, this);
[]() { return new SubversionSubmitEditor(&submitParameters); }, this);
const auto describeFunc = [this](const QString &source, const QString &id) { const auto describeFunc = [this](const QString &source, const QString &id) {
describe(source, id); describe(source, id);

View File

@@ -32,8 +32,8 @@
using namespace Subversion::Internal; using namespace Subversion::Internal;
SubversionSubmitEditor::SubversionSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters) : SubversionSubmitEditor::SubversionSubmitEditor() :
VcsBase::VcsBaseSubmitEditor(parameters, new VcsBase::SubmitEditorWidget) VcsBase::VcsBaseSubmitEditor(new VcsBase::SubmitEditorWidget)
{ {
document()->setPreferredDisplayName(tr("Subversion Submit")); document()->setPreferredDisplayName(tr("Subversion Submit"));
setDescriptionMandatory(false); setDescriptionMandatory(false);

View File

@@ -36,7 +36,7 @@ class SubversionSubmitEditor : public VcsBase::VcsBaseSubmitEditor
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SubversionSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters); SubversionSubmitEditor();
static QString fileFromStatusLine(const QString &statusLine); static QString fileFromStatusLine(const QString &statusLine);

View File

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

View File

@@ -47,7 +47,7 @@ class VCSBASE_EXPORT VcsSubmitEditorFactory : public Core::IEditorFactory
public: public:
typedef std::function<VcsBaseSubmitEditor *()> EditorCreator; typedef std::function<VcsBaseSubmitEditor *()> EditorCreator;
VcsSubmitEditorFactory(const VcsBaseSubmitEditorParameters *parameters, VcsSubmitEditorFactory(const VcsBaseSubmitEditorParameters &parameters,
const EditorCreator &editorCreator, const EditorCreator &editorCreator,
VcsBasePluginPrivate *plugin); VcsBasePluginPrivate *plugin);

View File

@@ -42,13 +42,10 @@ using namespace Utils;
submit editor files. submit editor files.
*/ */
SubmitEditorFile::SubmitEditorFile(const VcsBaseSubmitEditorParameters *parameters, VcsBaseSubmitEditor *parent) : SubmitEditorFile::SubmitEditorFile(VcsBaseSubmitEditor *editor) :
Core::IDocument(parent),
m_modified(false), m_modified(false),
m_editor(parent) m_editor(editor)
{ {
setId(parameters->id);
setMimeType(QLatin1String(parameters->mimeType));
setTemporary(true); setTemporary(true);
connect(m_editor, &VcsBaseSubmitEditor::fileContentsChanged, connect(m_editor, &VcsBaseSubmitEditor::fileContentsChanged,
this, &Core::IDocument::contentsChanged); this, &Core::IDocument::contentsChanged);

View File

@@ -37,8 +37,7 @@ namespace Internal {
class SubmitEditorFile : public Core::IDocument class SubmitEditorFile : public Core::IDocument
{ {
public: public:
explicit SubmitEditorFile(const VcsBaseSubmitEditorParameters *parameters, explicit SubmitEditorFile(VcsBaseSubmitEditor *editor);
VcsBaseSubmitEditor *parent = nullptr);
OpenResult open(QString *errorString, const QString &fileName, OpenResult open(QString *errorString, const QString &fileName,
const QString &realFileName) override; const QString &realFileName) override;

View File

@@ -134,16 +134,15 @@ static inline QString submitMessageCheckScript()
class VcsBaseSubmitEditorPrivate class VcsBaseSubmitEditorPrivate
{ {
public: public:
VcsBaseSubmitEditorPrivate(const VcsBaseSubmitEditorParameters *parameters, VcsBaseSubmitEditorPrivate(SubmitEditorWidget *editorWidget,
SubmitEditorWidget *editorWidget,
VcsBaseSubmitEditor *q); VcsBaseSubmitEditor *q);
SubmitEditorWidget *m_widget; SubmitEditorWidget *m_widget;
QToolBar *m_toolWidget = nullptr; QToolBar *m_toolWidget = nullptr;
const VcsBaseSubmitEditorParameters *m_parameters; VcsBaseSubmitEditorParameters m_parameters;
QString m_displayName; QString m_displayName;
QString m_checkScriptWorkingDirectory; QString m_checkScriptWorkingDirectory;
SubmitEditorFile *m_file; SubmitEditorFile m_file;
QPointer<QAction> m_diffAction; QPointer<QAction> m_diffAction;
QPointer<QAction> m_submitAction; QPointer<QAction> m_submitAction;
@@ -151,12 +150,9 @@ public:
NickNameDialog *m_nickNameDialog = nullptr; NickNameDialog *m_nickNameDialog = nullptr;
}; };
VcsBaseSubmitEditorPrivate::VcsBaseSubmitEditorPrivate(const VcsBaseSubmitEditorParameters *parameters, VcsBaseSubmitEditorPrivate::VcsBaseSubmitEditorPrivate(SubmitEditorWidget *editorWidget,
SubmitEditorWidget *editorWidget,
VcsBaseSubmitEditor *q) : VcsBaseSubmitEditor *q) :
m_widget(editorWidget), m_widget(editorWidget), m_file(q)
m_parameters(parameters),
m_file(new SubmitEditorFile(parameters, q))
{ {
auto completer = new QCompleter(q); auto completer = new QCompleter(q);
completer->setCaseSensitivity(Qt::CaseSensitive); completer->setCaseSensitivity(Qt::CaseSensitive);
@@ -165,15 +161,22 @@ VcsBaseSubmitEditorPrivate::VcsBaseSubmitEditorPrivate(const VcsBaseSubmitEditor
m_widget->descriptionEdit()->setCompletionLengthThreshold(4); m_widget->descriptionEdit()->setCompletionLengthThreshold(4);
} }
VcsBaseSubmitEditor::VcsBaseSubmitEditor(const VcsBaseSubmitEditorParameters *parameters, VcsBaseSubmitEditor::VcsBaseSubmitEditor(SubmitEditorWidget *editorWidget)
SubmitEditorWidget *editorWidget) :
d(new VcsBaseSubmitEditorPrivate(parameters, editorWidget, this))
{ {
d = new VcsBaseSubmitEditorPrivate(editorWidget, this);
}
void VcsBaseSubmitEditor::setParameters(const VcsBaseSubmitEditorParameters &parameters)
{
d->m_parameters = parameters;
d->m_file.setId(parameters.id);
d->m_file.setMimeType(QLatin1String(parameters.mimeType));
setWidget(d->m_widget); setWidget(d->m_widget);
document()->setPreferredDisplayName(QCoreApplication::translate("VCS", d->m_parameters->displayName)); document()->setPreferredDisplayName(QCoreApplication::translate("VCS", d->m_parameters.displayName));
// Message font according to settings // Message font according to settings
CompletingTextEdit *descriptionEdit = editorWidget->descriptionEdit(); CompletingTextEdit *descriptionEdit = d->m_widget->descriptionEdit();
const TextEditor::FontSettings fs = TextEditor::TextEditorSettings::fontSettings(); const TextEditor::FontSettings fs = TextEditor::TextEditorSettings::fontSettings();
const QTextCharFormat tf = fs.toTextCharFormat(TextEditor::C_TEXT); const QTextCharFormat tf = fs.toTextCharFormat(TextEditor::C_TEXT);
descriptionEdit->setFont(tf.font()); descriptionEdit->setFont(tf.font());
@@ -187,7 +190,7 @@ VcsBaseSubmitEditor::VcsBaseSubmitEditor(const VcsBaseSubmitEditorParameters *pa
pal.setBrush(QPalette::HighlightedText, selectionFormat.foreground()); pal.setBrush(QPalette::HighlightedText, selectionFormat.foreground());
descriptionEdit->setPalette(pal); descriptionEdit->setPalette(pal);
d->m_file->setModified(false); d->m_file.setModified(false);
// We are always clean to prevent the editor manager from asking to save. // We are always clean to prevent the editor manager from asking to save.
connect(d->m_widget, &SubmitEditorWidget::diffSelected, connect(d->m_widget, &SubmitEditorWidget::diffSelected,
@@ -338,7 +341,7 @@ void VcsBaseSubmitEditor::setLineWrapWidth(int w)
Core::IDocument *VcsBaseSubmitEditor::document() const Core::IDocument *VcsBaseSubmitEditor::document() const
{ {
return d->m_file; return &d->m_file;
} }
QString VcsBaseSubmitEditor::checkScriptWorkingDirectory() const QString VcsBaseSubmitEditor::checkScriptWorkingDirectory() const
@@ -453,7 +456,7 @@ QStringList VcsBaseSubmitEditor::rowsToFiles(const QList<int> &rows) const
void VcsBaseSubmitEditor::slotDiffSelectedVcsFiles(const QList<int> &rawList) void VcsBaseSubmitEditor::slotDiffSelectedVcsFiles(const QList<int> &rawList)
{ {
if (d->m_parameters->diffType == VcsBaseSubmitEditorParameters::DiffRows) if (d->m_parameters.diffType == VcsBaseSubmitEditorParameters::DiffRows)
emit diffSelectedRows(rawList); emit diffSelectedRows(rawList);
else else
emit diffSelectedFiles(rowsToFiles(rawList)); emit diffSelectedFiles(rowsToFiles(rawList));

View File

@@ -68,8 +68,7 @@ class VCSBASE_EXPORT VcsBaseSubmitEditor : public Core::IEditor
Q_PROPERTY(bool emptyFileListEnabled READ isEmptyFileListEnabled WRITE setEmptyFileListEnabled DESIGNABLE true) Q_PROPERTY(bool emptyFileListEnabled READ isEmptyFileListEnabled WRITE setEmptyFileListEnabled DESIGNABLE true)
protected: protected:
explicit VcsBaseSubmitEditor(const VcsBaseSubmitEditorParameters *parameters, explicit VcsBaseSubmitEditor(SubmitEditorWidget *editorWidget);
SubmitEditorWidget *editorWidget);
public: public:
// Register the actions with the submit editor widget. // Register the actions with the submit editor widget.
@@ -144,6 +143,9 @@ protected:
bool isDescriptionMandatory() const; bool isDescriptionMandatory() const;
private: private:
friend class VcsSubmitEditorFactory; // for setParameters()
void setParameters(const VcsBaseSubmitEditorParameters &parameters);
void slotDiffSelectedVcsFiles(const QList<int> &rawList); void slotDiffSelectedVcsFiles(const QList<int> &rawList);
void slotCheckSubmitMessage(); void slotCheckSubmitMessage();
void slotInsertNickName(); void slotInsertNickName();
@@ -155,7 +157,7 @@ private:
bool runSubmitMessageCheckScript(const QString &script, QString *errorMessage) const; bool runSubmitMessageCheckScript(const QString &script, QString *errorMessage) const;
QString promptForNickName(); QString promptForNickName();
VcsBaseSubmitEditorPrivate *d; VcsBaseSubmitEditorPrivate *d = nullptr;
friend class Internal::SubmitEditorFile; // for the file contents friend class Internal::SubmitEditorFile; // for the file contents
}; };