diff options
| author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-06-03 14:45:55 +0200 |
|---|---|---|
| committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-06-03 14:45:55 +0200 |
| commit | 3d81ae8574b03301099428823627683f31811bfc (patch) | |
| tree | 3800cec5ef3f2e2b95f36f9fc4cb43969137535e | |
| parent | a40349c09be9904ad3f77298139c9eea2089ed98 (diff) | |
| download | qt-creator-3d81ae8574b03301099428823627683f31811bfc.tar.gz | |
Reduced the usage of CppQuickFixOperation.
| -rw-r--r-- | src/plugins/cppeditor/cppeditor.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/cppeditor/cppeditor.h | 2 | ||||
| -rw-r--r-- | src/plugins/cppeditor/cppquickfix.cpp | 35 | ||||
| -rw-r--r-- | src/plugins/cppeditor/cppquickfix.h | 12 | ||||
| -rw-r--r-- | src/plugins/texteditor/quickfix.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/texteditor/quickfix.h | 1 |
6 files changed, 26 insertions, 39 deletions
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 1516b7647a..7b94beabb7 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1586,11 +1586,8 @@ bool CPPEditor::event(QEvent *e) void CPPEditor::performQuickFix(int index) { - CppQuickFixCollector *quickFixCollector = CppPlugin::instance()->quickFixCollector(); - CppQuickFixOperationPtr op = m_quickFixes.at(index); - quickFixCollector->perform(op); - //op->createChangeSet(); - //setChangeSet(op->changeSet()); + TextEditor::QuickFixOperation::Ptr op = m_quickFixes.at(index); + op->perform(); } void CPPEditor::contextMenuEvent(QContextMenuEvent *e) @@ -1614,7 +1611,7 @@ void CPPEditor::contextMenuEvent(QContextMenuEvent *e) m_quickFixes = quickFixCollector->quickFixes(); for (int index = 0; index < m_quickFixes.size(); ++index) { - CppQuickFixOperationPtr op = m_quickFixes.at(index); + TextEditor::QuickFixOperation::Ptr op = m_quickFixes.at(index); QAction *action = menu->addAction(op->description()); mapper.setMapping(action, index); connect(action, SIGNAL(triggered()), &mapper, SLOT(map())); diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index e7b8b39a14..357707a34d 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -309,7 +309,7 @@ private: SemanticHighlighter *m_semanticHighlighter; SemanticInfo m_lastSemanticInfo; - QList<CppQuickFixOperationPtr> m_quickFixes; + QList<TextEditor::QuickFixOperation::Ptr> m_quickFixes; bool m_initialized; }; diff --git a/src/plugins/cppeditor/cppquickfix.cpp b/src/plugins/cppeditor/cppquickfix.cpp index 20b6f544a9..d6c967d620 100644 --- a/src/plugins/cppeditor/cppquickfix.cpp +++ b/src/plugins/cppeditor/cppquickfix.cpp @@ -62,6 +62,7 @@ class CppQuickFixState: public TextEditor::QuickFixState { public: QList<CPlusPlus::AST *> path; + SemanticInfo info; }; /* @@ -880,6 +881,8 @@ CppQuickFixOperation::Range CppQuickFixOperation::topLevelRange() const int CppQuickFixOperation::match(TextEditor::QuickFixState *state) { CppQuickFixState *s = static_cast<CppQuickFixState *>(state); + _document = s->info.doc; + _snapshot = s->info.snapshot; return match(s->path); } @@ -892,15 +895,9 @@ void CppQuickFixOperation::setTopLevelNode(CPlusPlus::AST *topLevelNode) Document::Ptr CppQuickFixOperation::document() const { return _document; } -void CppQuickFixOperation::setDocument(CPlusPlus::Document::Ptr document) -{ _document = document; } - -Snapshot CppQuickFixOperation::snapshot() const +const Snapshot &CppQuickFixOperation::snapshot() const { return _snapshot; } -void CppQuickFixOperation::setSnapshot(const CPlusPlus::Snapshot &snapshot) -{ _snapshot = snapshot; } - const CPlusPlus::Token &CppQuickFixOperation::tokenAt(unsigned index) const { return _document->translationUnit()->tokenAt(index); } @@ -1081,7 +1078,7 @@ int CppQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable) QSharedPointer<WrapStringLiteral> wrapStringLiteral(new WrapStringLiteral(_editor)); QSharedPointer<CStringToNSString> wrapCString(new CStringToNSString(_editor)); - QList<CppQuickFixOperationPtr> candidates; + QList<TextEditor::QuickFixOperation::Ptr> candidates; candidates.append(rewriteLogicalAndOp); candidates.append(splitIfStatementOp); candidates.append(moveDeclarationOutOfIfOp); @@ -1094,21 +1091,20 @@ int CppQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable) if (_editor->mimeType() == CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE) candidates.append(wrapCString); - QMap<int, QList<CppQuickFixOperationPtr> > matchedOps; + QMap<int, QList<TextEditor::QuickFixOperation::Ptr> > matchedOps; CppQuickFixState state; state.path = path; + state.info = info; - foreach (CppQuickFixOperationPtr op, candidates) { - op->setSnapshot(info.snapshot); - op->setDocument(info.doc); + foreach (TextEditor::QuickFixOperation::Ptr op, candidates) { op->setTextCursor(_editor->textCursor()); int priority = op->match(&state); if (priority != -1) matchedOps[priority].append(op); } - QMapIterator<int, QList<CppQuickFixOperationPtr> > it(matchedOps); + QMapIterator<int, QList<TextEditor::QuickFixOperation::Ptr> > it(matchedOps); it.toBack(); if (it.hasPrevious()) { it.previous(); @@ -1126,7 +1122,7 @@ int CppQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable) void CppQuickFixCollector::completions(QList<TextEditor::CompletionItem> *quickFixItems) { for (int i = 0; i < _quickFixes.size(); ++i) { - CppQuickFixOperationPtr op = _quickFixes.at(i); + TextEditor::QuickFixOperation::Ptr op = _quickFixes.at(i); TextEditor::CompletionItem item(this); item.text = op->description(); @@ -1140,18 +1136,11 @@ void CppQuickFixCollector::complete(const TextEditor::CompletionItem &item) const int index = item.data.toInt(); if (index < _quickFixes.size()) { - CppQuickFixOperationPtr quickFix = _quickFixes.at(index); - perform(quickFix); + TextEditor::QuickFixOperation::Ptr quickFix = _quickFixes.at(index); + quickFix->perform(); } } -void CppQuickFixCollector::perform(CppQuickFixOperationPtr op) -{ - op->setTextCursor(_editor->textCursor()); - op->createChangeSet(); - op->apply(); -} - void CppQuickFixCollector::cleanup() { _quickFixes.clear(); diff --git a/src/plugins/cppeditor/cppquickfix.h b/src/plugins/cppeditor/cppquickfix.h index 34962f46ac..763f9d450e 100644 --- a/src/plugins/cppeditor/cppquickfix.h +++ b/src/plugins/cppeditor/cppquickfix.h @@ -63,10 +63,7 @@ public: virtual int match(const QList<CPlusPlus::AST *> &path) = 0; CPlusPlus::Document::Ptr document() const; - void setDocument(CPlusPlus::Document::Ptr document); - - CPlusPlus::Snapshot snapshot() const; - void setSnapshot(const CPlusPlus::Snapshot &snapshot); + const CPlusPlus::Snapshot &snapshot() const; virtual Range topLevelRange() const; virtual int match(TextEditor::QuickFixState *state); @@ -123,7 +120,7 @@ public: CppQuickFixCollector(); virtual ~CppQuickFixCollector(); - QList<CppQuickFixOperationPtr> quickFixes() const { return _quickFixes; } + QList<TextEditor::QuickFixOperation::Ptr> quickFixes() const { return _quickFixes; } virtual TextEditor::ITextEditable *editor() const; virtual int startPosition() const; @@ -134,14 +131,11 @@ public: virtual void complete(const TextEditor::CompletionItem &item); virtual void cleanup(); -public Q_SLOTS: - void perform(CppQuickFixOperationPtr op); - private: CppTools::CppModelManagerInterface *_modelManager; TextEditor::ITextEditable *_editable; CPPEditor *_editor; - QList<CppQuickFixOperationPtr> _quickFixes; + QList<TextEditor::QuickFixOperation::Ptr> _quickFixes; }; } // end of namespace Internal diff --git a/src/plugins/texteditor/quickfix.cpp b/src/plugins/texteditor/quickfix.cpp index c9de95b45a..48adec102a 100644 --- a/src/plugins/texteditor/quickfix.cpp +++ b/src/plugins/texteditor/quickfix.cpp @@ -160,3 +160,9 @@ QString QuickFixOperation::textOf(int start, int end) const tc.setPosition(end, QTextCursor::KeepAnchor); return tc.selectedText(); } + +void QuickFixOperation::perform() +{ + createChangeSet(); + apply(); +} diff --git a/src/plugins/texteditor/quickfix.h b/src/plugins/texteditor/quickfix.h index 376c54c4a6..fbbdf8ac1f 100644 --- a/src/plugins/texteditor/quickfix.h +++ b/src/plugins/texteditor/quickfix.h @@ -77,6 +77,7 @@ public: virtual int match(QuickFixState *state) = 0; + void perform(); void apply(); TextEditor::BaseTextEditor *editor() const; |
