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:
Christian Kamm
2009-11-18 11:10:50 +01:00
parent dd1eaec040
commit fd17d2f98f
2 changed files with 13 additions and 11 deletions

View File

@@ -96,9 +96,8 @@ protected:
class HelloQuickFixOp: public QuickFixOperation
{
public:
HelloQuickFixOp(Document::Ptr doc, const Snapshot &snapshot,
const QTextCursor &textCursor)
: QuickFixOperation(doc, snapshot, textCursor)
HelloQuickFixOp(Document::Ptr doc, const Snapshot &snapshot)
: QuickFixOperation(doc, snapshot)
{}
virtual QString description() const
@@ -106,7 +105,7 @@ public:
return QLatin1String("Hello"); // ### tr?
}
virtual void apply(QTextCursor)
virtual void apply()
{
// nothing to do.
}
@@ -116,9 +115,8 @@ public:
QuickFixOperation::QuickFixOperation(CPlusPlus::Document::Ptr doc,
const CPlusPlus::Snapshot &snapshot,
const QTextCursor &textCursor)
: _doc(doc), _snapshot(snapshot), _textCursor(textCursor)
const CPlusPlus::Snapshot &snapshot)
: _doc(doc), _snapshot(snapshot)
{ }
QuickFixOperation::~QuickFixOperation()
@@ -127,6 +125,9 @@ QuickFixOperation::~QuickFixOperation()
QTextCursor QuickFixOperation::textCursor() const
{ return _textCursor; }
void QuickFixOperation::setTextCursor(const QTextCursor &cursor)
{ _textCursor = cursor; }
QTextCursor QuickFixOperation::cursor(AST *ast) const
{
TranslationUnit *unit = document()->translationUnit();
@@ -245,7 +246,8 @@ void CPPQuickFixCollector::complete(const TextEditor::CompletionItem &item)
if (index < _quickFixes.size()) {
QuickFixOperationPtr quickFix = _quickFixes.at(index);
quickFix->apply(_editor->textCursor());
quickFix->setTextCursor(_editor->textCursor());
quickFix->apply();
}
}