CodeAssist: Move base position to interface.

Every proposal needs to have a base postion.
Move it to the base class to reduce duplicated code.

Change-Id: I0b1b8282dfe955d251646661f755bf9f585fbad1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2016-03-14 13:21:55 +01:00
parent 8d2858d8fe
commit 6e4a719738
6 changed files with 15 additions and 20 deletions

View File

@@ -30,7 +30,7 @@
using namespace TextEditor;
FunctionHintProposal::FunctionHintProposal(int cursorPos, IFunctionHintProposalModel *model)
: m_basePosition(cursorPos)
: IAssistProposal(cursorPos)
, m_model(model)
{}
@@ -42,11 +42,6 @@ bool FunctionHintProposal::isFragile() const
return true;
}
int FunctionHintProposal::basePosition() const
{
return m_basePosition;
}
bool FunctionHintProposal::isCorrective() const
{
return false;

View File

@@ -39,14 +39,12 @@ public:
~FunctionHintProposal();
bool isFragile() const override;
int basePosition() const override;
bool isCorrective() const override;
void makeCorrection(TextEditorWidget *editorWidget) override;
IAssistProposalModel *model() const override;
IAssistProposalWidget *createWidget() const override;
private:
int m_basePosition;
IFunctionHintProposalModel *m_model;
};

View File

@@ -30,12 +30,12 @@
namespace TextEditor {
GenericProposal::GenericProposal(int cursorPos, GenericProposalModel *model)
: m_basePosition(cursorPos)
: IAssistProposal(cursorPos)
, m_model(model)
{}
GenericProposal::GenericProposal(int cursorPos, const QList<AssistProposalItemInterface *> &items)
: m_basePosition(cursorPos)
: IAssistProposal(cursorPos)
, m_model(new GenericProposalModel)
{
m_model->loadContent(items);
@@ -49,11 +49,6 @@ bool GenericProposal::isFragile() const
return false;
}
int GenericProposal::basePosition() const
{
return m_basePosition;
}
bool GenericProposal::isCorrective() const
{
return false;

View File

@@ -41,7 +41,6 @@ public:
~GenericProposal();
bool isFragile() const override;
int basePosition() const override;
bool isCorrective() const override;
void makeCorrection(TextEditorWidget *editorWidget) override;
IAssistProposalModel *model() const override;
@@ -51,7 +50,6 @@ protected:
void moveBasePosition(int length);
private:
int m_basePosition;
GenericProposalModel *m_model;
};

View File

@@ -59,7 +59,8 @@ using namespace TextEditor;
\sa IAssistProposalWidget, IAssistModel
*/
IAssistProposal::IAssistProposal()
IAssistProposal::IAssistProposal(int basePosition)
: m_basePosition(basePosition)
{}
IAssistProposal::~IAssistProposal()
@@ -79,6 +80,11 @@ IAssistProposal::~IAssistProposal()
Returns the position from which this proposal starts.
*/
int IAssistProposal::basePosition() const
{
return m_basePosition;
}
/*!
\fn bool TextEditor::IAssistProposal::isCorrective() const

View File

@@ -36,15 +36,18 @@ class TextEditorWidget;
class TEXTEDITOR_EXPORT IAssistProposal
{
public:
IAssistProposal();
IAssistProposal(int basePosition);
virtual ~IAssistProposal();
int basePosition() const;
virtual bool isFragile() const = 0;
virtual int basePosition() const = 0;
virtual bool isCorrective() const = 0;
virtual void makeCorrection(TextEditorWidget *editorWidget) = 0;
virtual IAssistProposalModel *model() const = 0;
virtual IAssistProposalWidget *createWidget() const = 0;
protected:
int m_basePosition;
};
} // TextEditor