TextEditor: Merge some "assist" related classes

Simplifies the code base by removing one level of unused
and unneeded abstraction.

- Merge {I,Default}AssistInterface to AssistInterface
- Merge {IAssist,Basic}ProposalItem to AssistProposalItem
- Merge {IGenericProposal,BasicProposalItemList}Model to GenericProposalModel

Change-Id: I54ee7b095427383d67a00fc1d87c3808c21d812d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
hjk
2014-09-04 00:04:18 +02:00
parent 0c3eeab464
commit 0edefc4c2b
60 changed files with 464 additions and 766 deletions

View File

@@ -34,7 +34,7 @@
#include <coreplugin/idocument.h>
#include <texteditor/codeassist/iassistinterface.h>
#include <texteditor/codeassist/assistinterface.h>
#include <texteditor/codeassist/genericproposal.h>
#include <texteditor/codeassist/functionhintproposal.h>
#include <texteditor/codeassist/ifunctionhintproposalmodel.h>
@@ -83,7 +83,7 @@ enum CompletionOrder {
TypeOrder = -30
};
static void addCompletion(QList<BasicProposalItem *> *completions,
static void addCompletion(QList<AssistProposalItem *> *completions,
const QString &text,
const QIcon &icon,
int order,
@@ -92,7 +92,7 @@ static void addCompletion(QList<BasicProposalItem *> *completions,
if (text.isEmpty())
return;
BasicProposalItem *item = new QmlJSAssistProposalItem;
AssistProposalItem *item = new QmlJSAssistProposalItem;
item->setText(text);
item->setIcon(icon);
item->setOrder(order);
@@ -100,7 +100,7 @@ static void addCompletion(QList<BasicProposalItem *> *completions,
completions->append(item);
}
static void addCompletions(QList<BasicProposalItem *> *completions,
static void addCompletions(QList<AssistProposalItem *> *completions,
const QStringList &newCompletions,
const QIcon &icon,
int order)
@@ -125,10 +125,10 @@ public:
class CompletionAdder : public PropertyProcessor
{
protected:
QList<BasicProposalItem *> *completions;
QList<AssistProposalItem *> *completions;
public:
CompletionAdder(QList<BasicProposalItem *> *completions,
CompletionAdder(QList<AssistProposalItem *> *completions,
const QIcon &icon, int order)
: completions(completions)
, icon(icon)
@@ -155,7 +155,7 @@ public:
class LhsCompletionAdder : public CompletionAdder
{
public:
LhsCompletionAdder(QList<BasicProposalItem *> *completions,
LhsCompletionAdder(QList<AssistProposalItem *> *completions,
const QIcon &icon,
int order,
bool afterOn)
@@ -511,7 +511,7 @@ QmlJSCompletionAssistProcessor::~QmlJSCompletionAssistProcessor()
IAssistProposal *QmlJSCompletionAssistProcessor::createContentProposal() const
{
IGenericProposalModel *model = new QmlJSAssistProposalModel(m_completions);
GenericProposalModel *model = new QmlJSAssistProposalModel(m_completions);
IAssistProposal *proposal = new GenericProposal(m_startPosition, model);
return proposal;
}
@@ -526,7 +526,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::createHintProposal(
return proposal;
}
IAssistProposal *QmlJSCompletionAssistProcessor::perform(const IAssistInterface *assistInterface)
IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface *assistInterface)
{
m_interface.reset(static_cast<const QmlJSCompletionAssistInterface *>(assistInterface));
@@ -756,7 +756,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const IAssistInterface
processProperties.setEnumerateSlots(false);
// id: is special
BasicProposalItem *idProposalItem = new QmlJSAssistProposalItem;
AssistProposalItem *idProposalItem = new QmlJSAssistProposalItem;
idProposalItem->setText(QLatin1String("id: "));
idProposalItem->setIcon(m_interface->symbolIcon());
idProposalItem->setOrder(PropertyOrder);
@@ -932,7 +932,7 @@ bool QmlJSCompletionAssistProcessor::completeFileName(const QString &relativeBas
dirIterator.next();
const QString fileName = dirIterator.fileName();
BasicProposalItem *item = new QmlJSAssistProposalItem;
AssistProposalItem *item = new QmlJSAssistProposalItem;
item->setText(fileName);
item->setIcon(m_interface->fileNameIcon());
m_completions.append(item);
@@ -970,7 +970,7 @@ QmlJSCompletionAssistInterface::QmlJSCompletionAssistInterface(QTextDocument *te
const QString &fileName,
AssistReason reason,
const SemanticInfo &info)
: DefaultAssistInterface(textDocument, position, fileName, reason)
: AssistInterface(textDocument, position, fileName, reason)
, m_semanticInfo(info)
, m_darkBlueIcon(iconForColor(Qt::darkBlue))
, m_darkYellowIcon(iconForColor(Qt::darkYellow))
@@ -989,7 +989,7 @@ class QmlJSLessThan
public:
QmlJSLessThan(const QString &searchString) : m_searchString(searchString)
{ }
bool operator() (const BasicProposalItem *a, const BasicProposalItem *b)
bool operator() (const AssistProposalItem *a, const AssistProposalItem *b)
{
if (a->order() != b->order())
return a->order() > b->order();
@@ -1020,12 +1020,12 @@ private:
// -------------------------
void QmlJSAssistProposalModel::filter(const QString &prefix)
{
BasicProposalItemListModel::filter(prefix);
GenericProposalModel::filter(prefix);
if (prefix.startsWith(QLatin1String("__")))
return;
QList<BasicProposalItem *> newCurrentItems;
QList<AssistProposalItem *> newCurrentItems;
newCurrentItems.reserve(m_currentItems.size());
foreach (BasicProposalItem *item, m_currentItems)
foreach (AssistProposalItem *item, m_currentItems)
if (!item->text().startsWith(QLatin1String("__")))
newCurrentItems << item;
m_currentItems = newCurrentItems;

View File

@@ -32,12 +32,12 @@
#include "qmljseditor.h"
#include <texteditor/codeassist/basicproposalitem.h>
#include <texteditor/codeassist/basicproposalitemlistmodel.h>
#include <texteditor/codeassist/assistproposalitem.h>
#include <texteditor/codeassist/genericproposalmodel.h>
#include <texteditor/codeassist/completionassistprovider.h>
#include <texteditor/codeassist/iassistprocessor.h>
#include <texteditor/snippets/snippetassistcollector.h>
#include <texteditor/codeassist/defaultassistinterface.h>
#include <texteditor/codeassist/assistinterface.h>
#include <utils/qtcoverride.h>
@@ -53,7 +53,7 @@ namespace Internal {
class QmlJSCompletionAssistInterface;
class QmlJSAssistProposalItem : public TextEditor::BasicProposalItem
class QmlJSAssistProposalItem : public TextEditor::AssistProposalItem
{
public:
bool prematurelyApplies(const QChar &c) const QTC_OVERRIDE;
@@ -62,11 +62,11 @@ public:
};
class QmlJSAssistProposalModel : public TextEditor::BasicProposalItemListModel
class QmlJSAssistProposalModel : public TextEditor::GenericProposalModel
{
public:
QmlJSAssistProposalModel(const QList<TextEditor::BasicProposalItem *> &items)
: TextEditor::BasicProposalItemListModel(items)
QmlJSAssistProposalModel(const QList<TextEditor::AssistProposalItem *> &items)
: TextEditor::GenericProposalModel(items)
{}
void filter(const QString &prefix) QTC_OVERRIDE;
@@ -95,7 +95,7 @@ public:
QmlJSCompletionAssistProcessor();
~QmlJSCompletionAssistProcessor();
TextEditor::IAssistProposal *perform(const TextEditor::IAssistInterface *interface) QTC_OVERRIDE;
TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) QTC_OVERRIDE;
private:
TextEditor::IAssistProposal *createContentProposal() const;
@@ -112,12 +112,12 @@ private:
int m_startPosition;
QScopedPointer<const QmlJSCompletionAssistInterface> m_interface;
QList<TextEditor::BasicProposalItem *> m_completions;
QList<TextEditor::AssistProposalItem *> m_completions;
TextEditor::SnippetAssistCollector m_snippetCollector;
};
class QmlJSCompletionAssistInterface : public TextEditor::DefaultAssistInterface
class QmlJSCompletionAssistInterface : public TextEditor::AssistInterface
{
public:
QmlJSCompletionAssistInterface(QTextDocument *textDocument,

View File

@@ -67,7 +67,7 @@
#include <texteditor/syntaxhighlighter.h>
#include <texteditor/refactoroverlay.h>
#include <texteditor/codeassist/genericproposal.h>
#include <texteditor/codeassist/basicproposalitemlistmodel.h>
#include <texteditor/codeassist/genericproposalmodel.h>
#include <texteditor/texteditoractionhandler.h>
#include <utils/changeset.h>
@@ -679,15 +679,15 @@ void QmlJSEditorWidget::contextMenuEvent(QContextMenuEvent *e)
QSignalMapper mapper;
connect(&mapper, SIGNAL(mapped(int)), this, SLOT(performQuickFix(int)));
if (!m_qmlJsEditorDocument->isSemanticInfoOutdated()) {
IAssistInterface *interface = createAssistInterface(QuickFix, ExplicitlyInvoked);
AssistInterface *interface = createAssistInterface(QuickFix, ExplicitlyInvoked);
if (interface) {
QScopedPointer<IAssistProcessor> processor(
QmlJSEditorPlugin::instance()->quickFixAssistProvider()->createProcessor());
QScopedPointer<IAssistProposal> proposal(processor->perform(interface));
if (!proposal.isNull()) {
BasicProposalItemListModel *model = static_cast<BasicProposalItemListModel *>(proposal->model());
GenericProposalModel *model = static_cast<GenericProposalModel *>(proposal->model());
for (int index = 0; index < model->size(); ++index) {
BasicProposalItem *item = static_cast<BasicProposalItem *>(model->proposalItem(index));
AssistProposalItem *item = static_cast<AssistProposalItem *>(model->proposalItem(index));
QuickFixOperation::Ptr op = item->data().value<QuickFixOperation::Ptr>();
m_quickFixes.append(op);
QAction *action = refactoringMenu->addAction(op->description());
@@ -831,7 +831,7 @@ bool QmlJSEditorWidget::hideContextPane()
return b;
}
IAssistInterface *QmlJSEditorWidget::createAssistInterface(
AssistInterface *QmlJSEditorWidget::createAssistInterface(
TextEditor::AssistKind assistKind,
TextEditor::AssistReason reason) const
{

View File

@@ -72,7 +72,7 @@ public:
QModelIndex outlineModelIndex();
TextEditor::IAssistInterface *createAssistInterface(TextEditor::AssistKind assistKind,
TextEditor::AssistInterface *createAssistInterface(TextEditor::AssistKind assistKind,
TextEditor::AssistReason reason) const;
public slots:
void findUsages();

View File

@@ -48,8 +48,8 @@ using namespace Internal;
// -----------------------
QmlJSQuickFixAssistInterface::QmlJSQuickFixAssistInterface(QmlJSEditorWidget *editor,
TextEditor::AssistReason reason)
: DefaultAssistInterface(editor->document(), editor->position(),
editor->textDocument()->filePath(), reason)
: AssistInterface(editor->document(), editor->position(),
editor->textDocument()->filePath(), reason)
, m_semanticInfo(editor->qmlJsEditorDocument()->semanticInfo())
, m_currentFile(QmlJSRefactoringChanges::file(editor, m_semanticInfo.document))
{}

View File

@@ -34,7 +34,7 @@
#include <qmljstools/qmljsrefactoringchanges.h>
#include <texteditor/codeassist/defaultassistinterface.h>
#include <texteditor/codeassist/assistinterface.h>
#include <texteditor/codeassist/quickfixassistprovider.h>
#include <texteditor/codeassist/quickfixassistprocessor.h>
@@ -43,7 +43,7 @@
namespace QmlJSEditor {
namespace Internal {
class QmlJSQuickFixAssistInterface : public TextEditor::DefaultAssistInterface
class QmlJSQuickFixAssistInterface : public TextEditor::AssistInterface
{
public:
QmlJSQuickFixAssistInterface(QmlJSEditorWidget *editor, TextEditor::AssistReason reason);