CodeAssist: Use settable property for IAssistProposal::isFragile

Removes the need to create yet another subclass (for overriding a
virtual method) in some situations.

Change-Id: I55d70de60b4f8d127a175d996f797700c2f172a6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Eike Ziller
2017-07-12 20:16:51 +02:00
parent f97657b15e
commit 49f3442a72
7 changed files with 19 additions and 17 deletions

View File

@@ -106,9 +106,9 @@ public:
bool openInSplit) bool openInSplit)
: GenericProposal(cursorPos, items) : GenericProposal(cursorPos, items)
, m_openInSplit(openInSplit) , m_openInSplit(openInSplit)
{} {
setFragile(true);
bool isFragile() const override { return true; } }
IAssistProposalWidget *createWidget() const override IAssistProposalWidget *createWidget() const override
{ return new VirtualFunctionProposalWidget(m_openInSplit); } { return new VirtualFunctionProposalWidget(m_openInSplit); }

View File

@@ -32,16 +32,13 @@ using namespace TextEditor;
FunctionHintProposal::FunctionHintProposal(int cursorPos, IFunctionHintProposalModel *model) FunctionHintProposal::FunctionHintProposal(int cursorPos, IFunctionHintProposalModel *model)
: IAssistProposal(cursorPos) : IAssistProposal(cursorPos)
, m_model(model) , m_model(model)
{} {
setFragile(true);
}
FunctionHintProposal::~FunctionHintProposal() FunctionHintProposal::~FunctionHintProposal()
{} {}
bool FunctionHintProposal::isFragile() const
{
return true;
}
IAssistProposalModel *FunctionHintProposal::model() const IAssistProposalModel *FunctionHintProposal::model() const
{ {
return m_model; return m_model;

View File

@@ -38,7 +38,6 @@ public:
FunctionHintProposal(int cursorPos, IFunctionHintProposalModel *model); FunctionHintProposal(int cursorPos, IFunctionHintProposalModel *model);
~FunctionHintProposal(); ~FunctionHintProposal();
bool isFragile() const override;
IAssistProposalModel *model() const override; IAssistProposalModel *model() const override;
IAssistProposalWidget *createWidget() const override; IAssistProposalWidget *createWidget() const override;

View File

@@ -44,11 +44,6 @@ GenericProposal::GenericProposal(int cursorPos, const QList<AssistProposalItemIn
GenericProposal::~GenericProposal() GenericProposal::~GenericProposal()
{} {}
bool GenericProposal::isFragile() const
{
return false;
}
bool GenericProposal::hasItemsToPropose(const QString &prefix, AssistReason reason) const bool GenericProposal::hasItemsToPropose(const QString &prefix, AssistReason reason) const
{ {
if (!prefix.isEmpty()) { if (!prefix.isEmpty()) {

View File

@@ -40,7 +40,6 @@ public:
GenericProposal(int cursorPos, const QList<AssistProposalItemInterface *> &items); GenericProposal(int cursorPos, const QList<AssistProposalItemInterface *> &items);
~GenericProposal(); ~GenericProposal();
bool isFragile() const override;
bool hasItemsToPropose(const QString &prefix, AssistReason reason) const override; bool hasItemsToPropose(const QString &prefix, AssistReason reason) const override;
IAssistProposalModel *model() const override; IAssistProposalModel *model() const override;
IAssistProposalWidget *createWidget() const override; IAssistProposalWidget *createWidget() const override;

View File

@@ -85,6 +85,11 @@ int IAssistProposal::basePosition() const
return m_basePosition; return m_basePosition;
} }
bool IAssistProposal::isFragile() const
{
return m_isFragile;
}
/*! /*!
\fn bool TextEditor::IAssistProposal::isCorrective() const \fn bool TextEditor::IAssistProposal::isCorrective() const
@@ -110,6 +115,11 @@ void IAssistProposal::makeCorrection(TextEditorWidget *editorWidget)
Q_UNUSED(editorWidget); Q_UNUSED(editorWidget);
} }
void IAssistProposal::setFragile(bool fragile)
{
m_isFragile = fragile;
}
/*! /*!
\fn IAssistModel *TextEditor::IAssistProposal::model() const \fn IAssistModel *TextEditor::IAssistProposal::model() const

View File

@@ -42,15 +42,17 @@ public:
virtual ~IAssistProposal(); virtual ~IAssistProposal();
int basePosition() const; int basePosition() const;
bool isFragile() const;
virtual bool hasItemsToPropose(const QString &, AssistReason) const { return true; } virtual bool hasItemsToPropose(const QString &, AssistReason) const { return true; }
virtual bool isFragile() const = 0;
virtual bool isCorrective(TextEditorWidget *editorWidget) const; virtual bool isCorrective(TextEditorWidget *editorWidget) const;
virtual void makeCorrection(TextEditorWidget *editorWidget); virtual void makeCorrection(TextEditorWidget *editorWidget);
virtual IAssistProposalModel *model() const = 0; virtual IAssistProposalModel *model() const = 0;
virtual IAssistProposalWidget *createWidget() const = 0; virtual IAssistProposalWidget *createWidget() const = 0;
void setFragile(bool fragile);
protected: protected:
int m_basePosition; int m_basePosition;
bool m_isFragile = false;
}; };
} // TextEditor } // TextEditor