diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-11-01 17:04:48 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-11-01 17:04:48 +0100 |
commit | 0ad2d077b916179e117b711c57601eba677dc718 (patch) | |
tree | 5b6a34858f8614a16c05726e76a7270f2033c875 /src/plugins/cppeditor/cppquickfix.cpp | |
parent | 6063fb84c20e7c877558210f6492f67a7fd17214 (diff) |
Exported header cleanup: Separate out CppQuickFixCollector.
Diffstat (limited to 'src/plugins/cppeditor/cppquickfix.cpp')
-rw-r--r-- | src/plugins/cppeditor/cppquickfix.cpp | 65 |
1 files changed, 10 insertions, 55 deletions
diff --git a/src/plugins/cppeditor/cppquickfix.cpp b/src/plugins/cppeditor/cppquickfix.cpp index a0ce66a1ce..c66333f860 100644 --- a/src/plugins/cppeditor/cppquickfix.cpp +++ b/src/plugins/cppeditor/cppquickfix.cpp @@ -29,6 +29,7 @@ #include "cppquickfix.h" #include "cppeditor.h" +#include "cppquickfixcollector.h" #include <AST.h> #include <TranslationUnit.h> @@ -42,11 +43,7 @@ #include <cplusplus/DependencyTable.h> #include <cplusplus/CppRewriter.h> -#include <cppeditor/cppeditor.h> #include <cpptools/cpprefactoringchanges.h> -#include <cpptools/cpptoolsconstants.h> -#include <cpptools/cppmodelmanagerinterface.h> -#include <extensionsystem/pluginmanager.h> #include <QtGui/QTextBlock> @@ -91,6 +88,15 @@ const CppRefactoringFile CppQuickFixState::currentFile() const return CppRefactoringFile(editor(), document()); } +bool CppQuickFixState::isCursorOn(unsigned tokenIndex) const +{ + return currentFile().isCursorOn(tokenIndex); +} + +bool CppQuickFixState::isCursorOn(const CPlusPlus::AST *ast) const +{ + return currentFile().isCursorOn(ast); +} CppQuickFixOperation::CppQuickFixOperation(const CppQuickFixState &state, int priority) : QuickFixOperation(priority) @@ -143,54 +149,3 @@ QList<CppQuickFixOperation::Ptr> CppQuickFixFactory::noResult() { return QList<CppQuickFixOperation::Ptr>(); } - -CppQuickFixCollector::CppQuickFixCollector() -{ -} - -CppQuickFixCollector::~CppQuickFixCollector() -{ -} - -bool CppQuickFixCollector::supportsEditor(TextEditor::ITextEditable *editor) -{ - return CppTools::CppModelManagerInterface::instance()->isCppEditor(editor); -} - -TextEditor::QuickFixState *CppQuickFixCollector::initializeCompletion(TextEditor::BaseTextEditor *editor) -{ - if (CPPEditor *cppEditor = qobject_cast<CPPEditor *>(editor)) { - const SemanticInfo info = cppEditor->semanticInfo(); - - if (info.revision != cppEditor->editorRevision()) { - // outdated - qWarning() << "TODO: outdated semantic info, force a reparse."; - return 0; - } - - if (info.doc) { - ASTPath astPath(info.doc); - - const QList<AST *> path = astPath(cppEditor->textCursor()); - if (! path.isEmpty()) { - CppQuickFixState *state = new CppQuickFixState(editor); - state->_path = path; - state->_semanticInfo = info; - state->_snapshot = CppTools::CppModelManagerInterface::instance()->snapshot(); - state->_context = LookupContext(info.doc, state->snapshot()); - return state; - } - } - } - - return 0; -} - -QList<TextEditor::QuickFixFactory *> CppQuickFixCollector::quickFixFactories() const -{ - QList<TextEditor::QuickFixFactory *> results; - ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); - foreach (CppQuickFixFactory *f, pm->getObjects<CppEditor::CppQuickFixFactory>()) - results.append(f); - return results; -} |