forked from qt-creator/qt-creator
QuickFixOperation: don't pass the text cursor in constructor and apply
Instead, reintroduce setTextCursor and let CPPQuickFixCollector call it just before invoking apply. Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
@@ -96,9 +96,8 @@ protected:
|
|||||||
class HelloQuickFixOp: public QuickFixOperation
|
class HelloQuickFixOp: public QuickFixOperation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HelloQuickFixOp(Document::Ptr doc, const Snapshot &snapshot,
|
HelloQuickFixOp(Document::Ptr doc, const Snapshot &snapshot)
|
||||||
const QTextCursor &textCursor)
|
: QuickFixOperation(doc, snapshot)
|
||||||
: QuickFixOperation(doc, snapshot, textCursor)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual QString description() const
|
virtual QString description() const
|
||||||
@@ -106,7 +105,7 @@ public:
|
|||||||
return QLatin1String("Hello"); // ### tr?
|
return QLatin1String("Hello"); // ### tr?
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void apply(QTextCursor)
|
virtual void apply()
|
||||||
{
|
{
|
||||||
// nothing to do.
|
// nothing to do.
|
||||||
}
|
}
|
||||||
@@ -116,9 +115,8 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
QuickFixOperation::QuickFixOperation(CPlusPlus::Document::Ptr doc,
|
QuickFixOperation::QuickFixOperation(CPlusPlus::Document::Ptr doc,
|
||||||
const CPlusPlus::Snapshot &snapshot,
|
const CPlusPlus::Snapshot &snapshot)
|
||||||
const QTextCursor &textCursor)
|
: _doc(doc), _snapshot(snapshot)
|
||||||
: _doc(doc), _snapshot(snapshot), _textCursor(textCursor)
|
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
QuickFixOperation::~QuickFixOperation()
|
QuickFixOperation::~QuickFixOperation()
|
||||||
@@ -127,6 +125,9 @@ QuickFixOperation::~QuickFixOperation()
|
|||||||
QTextCursor QuickFixOperation::textCursor() const
|
QTextCursor QuickFixOperation::textCursor() const
|
||||||
{ return _textCursor; }
|
{ return _textCursor; }
|
||||||
|
|
||||||
|
void QuickFixOperation::setTextCursor(const QTextCursor &cursor)
|
||||||
|
{ _textCursor = cursor; }
|
||||||
|
|
||||||
QTextCursor QuickFixOperation::cursor(AST *ast) const
|
QTextCursor QuickFixOperation::cursor(AST *ast) const
|
||||||
{
|
{
|
||||||
TranslationUnit *unit = document()->translationUnit();
|
TranslationUnit *unit = document()->translationUnit();
|
||||||
@@ -245,7 +246,8 @@ void CPPQuickFixCollector::complete(const TextEditor::CompletionItem &item)
|
|||||||
|
|
||||||
if (index < _quickFixes.size()) {
|
if (index < _quickFixes.size()) {
|
||||||
QuickFixOperationPtr quickFix = _quickFixes.at(index);
|
QuickFixOperationPtr quickFix = _quickFixes.at(index);
|
||||||
quickFix->apply(_editor->textCursor());
|
quickFix->setTextCursor(_editor->textCursor());
|
||||||
|
quickFix->apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,18 +55,18 @@ class QuickFixOperation
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
QuickFixOperation(CPlusPlus::Document::Ptr doc,
|
QuickFixOperation(CPlusPlus::Document::Ptr doc,
|
||||||
const CPlusPlus::Snapshot &snapshot,
|
const CPlusPlus::Snapshot &snapshot);
|
||||||
const QTextCursor &textCursor);
|
|
||||||
|
|
||||||
virtual ~QuickFixOperation();
|
virtual ~QuickFixOperation();
|
||||||
|
|
||||||
virtual QString description() const = 0;
|
virtual QString description() const = 0;
|
||||||
virtual void apply(QTextCursor tc) = 0;
|
virtual void apply() = 0;
|
||||||
|
|
||||||
CPlusPlus::Document::Ptr document() const { return _doc; }
|
CPlusPlus::Document::Ptr document() const { return _doc; }
|
||||||
CPlusPlus::Snapshot snapshot() const { return _snapshot; }
|
CPlusPlus::Snapshot snapshot() const { return _snapshot; }
|
||||||
|
|
||||||
QTextCursor textCursor() const;
|
QTextCursor textCursor() const;
|
||||||
|
void setTextCursor(const QTextCursor &cursor);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const CPlusPlus::Token &tokenAt(unsigned index) const;
|
const CPlusPlus::Token &tokenAt(unsigned index) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user