forked from qt-creator/qt-creator
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:
@@ -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;
|
||||||
|
@@ -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"));
|
||||||
}
|
}
|
||||||
|
@@ -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,
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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"));
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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"))
|
||||||
|
@@ -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:
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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 &);
|
||||||
|
@@ -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"));
|
||||||
}
|
}
|
||||||
|
@@ -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,
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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"));
|
||||||
|
@@ -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. */
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
@@ -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 ¶meters,
|
||||||
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);
|
||||||
|
|
||||||
|
@@ -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 ¶meters,
|
||||||
const EditorCreator &editorCreator,
|
const EditorCreator &editorCreator,
|
||||||
VcsBasePluginPrivate *plugin);
|
VcsBasePluginPrivate *plugin);
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
@@ -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 ¶meters)
|
||||||
|
{
|
||||||
|
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));
|
||||||
|
@@ -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 ¶meters);
|
||||||
|
|
||||||
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
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user