forked from qt-creator/qt-creator
Introduced IQuickFixFactory.
This commit is contained in:
@@ -207,6 +207,8 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
|
|||||||
m_quickFixCollector = new CppQuickFixCollector;
|
m_quickFixCollector = new CppQuickFixCollector;
|
||||||
addAutoReleasedObject(m_quickFixCollector);
|
addAutoReleasedObject(m_quickFixCollector);
|
||||||
|
|
||||||
|
addAutoReleasedObject(new CppQuickFixFactory);
|
||||||
|
|
||||||
CppFileWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
|
CppFileWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
|
||||||
|
|
||||||
wizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY));
|
wizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY));
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
#include <cppeditor/cpprefactoringchanges.h>
|
#include <cppeditor/cpprefactoringchanges.h>
|
||||||
#include <cpptools/cpptoolsconstants.h>
|
#include <cpptools/cpptoolsconstants.h>
|
||||||
#include <cpptools/cppmodelmanagerinterface.h>
|
#include <cpptools/cppmodelmanagerinterface.h>
|
||||||
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
|
||||||
#include <QtGui/QApplication>
|
#include <QtGui/QApplication>
|
||||||
#include <QtGui/QTextBlock>
|
#include <QtGui/QTextBlock>
|
||||||
@@ -1079,8 +1080,19 @@ TextEditor::QuickFixState *CppQuickFixCollector::initializeCompletion(TextEditor
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<TextEditor::QuickFixOperation::Ptr> CppQuickFixCollector::quickFixOperations(TextEditor::BaseTextEditor *editor) const
|
CppQuickFixFactory::CppQuickFixFactory(QObject *parent)
|
||||||
|
: TextEditor::IQuickFixFactory(parent)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CppQuickFixFactory::~CppQuickFixFactory()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<TextEditor::QuickFixOperation::Ptr> CppQuickFixFactory::quickFixOperations(TextEditor::BaseTextEditor *editor)
|
||||||
|
{
|
||||||
|
QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations;
|
||||||
|
|
||||||
QSharedPointer<RewriteLogicalAndOp> rewriteLogicalAndOp(new RewriteLogicalAndOp(editor));
|
QSharedPointer<RewriteLogicalAndOp> rewriteLogicalAndOp(new RewriteLogicalAndOp(editor));
|
||||||
QSharedPointer<SplitIfStatementOp> splitIfStatementOp(new SplitIfStatementOp(editor));
|
QSharedPointer<SplitIfStatementOp> splitIfStatementOp(new SplitIfStatementOp(editor));
|
||||||
QSharedPointer<MoveDeclarationOutOfIfOp> moveDeclarationOutOfIfOp(new MoveDeclarationOutOfIfOp(editor));
|
QSharedPointer<MoveDeclarationOutOfIfOp> moveDeclarationOutOfIfOp(new MoveDeclarationOutOfIfOp(editor));
|
||||||
@@ -1092,7 +1104,6 @@ QList<TextEditor::QuickFixOperation::Ptr> CppQuickFixCollector::quickFixOperatio
|
|||||||
QSharedPointer<WrapStringLiteral> wrapStringLiteral(new WrapStringLiteral(editor));
|
QSharedPointer<WrapStringLiteral> wrapStringLiteral(new WrapStringLiteral(editor));
|
||||||
QSharedPointer<CStringToNSString> wrapCString(new CStringToNSString(editor));
|
QSharedPointer<CStringToNSString> wrapCString(new CStringToNSString(editor));
|
||||||
|
|
||||||
QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations;
|
|
||||||
quickFixOperations.append(rewriteLogicalAndOp);
|
quickFixOperations.append(rewriteLogicalAndOp);
|
||||||
quickFixOperations.append(splitIfStatementOp);
|
quickFixOperations.append(splitIfStatementOp);
|
||||||
quickFixOperations.append(moveDeclarationOutOfIfOp);
|
quickFixOperations.append(moveDeclarationOutOfIfOp);
|
||||||
|
|||||||
@@ -107,7 +107,20 @@ public:
|
|||||||
|
|
||||||
virtual bool supportsEditor(TextEditor::ITextEditable *editor);
|
virtual bool supportsEditor(TextEditor::ITextEditable *editor);
|
||||||
virtual TextEditor::QuickFixState *initializeCompletion(TextEditor::ITextEditable *editable);
|
virtual TextEditor::QuickFixState *initializeCompletion(TextEditor::ITextEditable *editable);
|
||||||
virtual QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations(TextEditor::BaseTextEditor *editor) const;
|
};
|
||||||
|
|
||||||
|
class CppQuickFixFactory: public TextEditor::IQuickFixFactory
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CppQuickFixFactory(QObject *parent = 0);
|
||||||
|
virtual ~CppQuickFixFactory();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns true if this IQuickFixFactory can be used with the given editor.
|
||||||
|
*/
|
||||||
|
virtual QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations(TextEditor::BaseTextEditor *editor);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end of namespace Internal
|
} // end of namespace Internal
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#include "basetexteditor.h"
|
#include "basetexteditor.h"
|
||||||
|
|
||||||
#include <coreplugin/ifile.h>
|
#include <coreplugin/ifile.h>
|
||||||
|
#include <extensionsystem/pluginmanager.h>
|
||||||
#include <QtGui/QApplication>
|
#include <QtGui/QApplication>
|
||||||
#include <QtGui/QTextBlock>
|
#include <QtGui/QTextBlock>
|
||||||
|
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
using TextEditor::RefactoringChanges;
|
using TextEditor::RefactoringChanges;
|
||||||
using TextEditor::QuickFixOperation;
|
using TextEditor::QuickFixOperation;
|
||||||
using TextEditor::QuickFixCollector;
|
using TextEditor::QuickFixCollector;
|
||||||
|
using TextEditor::IQuickFixFactory;
|
||||||
|
|
||||||
QuickFixOperation::QuickFixOperation(TextEditor::BaseTextEditor *editor)
|
QuickFixOperation::QuickFixOperation(TextEditor::BaseTextEditor *editor)
|
||||||
: _editor(editor)
|
: _editor(editor)
|
||||||
@@ -184,3 +185,26 @@ void QuickFixCollector::cleanup()
|
|||||||
{
|
{
|
||||||
_quickFixes.clear();
|
_quickFixes.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<TextEditor::QuickFixOperation::Ptr> QuickFixCollector::quickFixOperations(TextEditor::BaseTextEditor *editor) const
|
||||||
|
{
|
||||||
|
QList<TextEditor::IQuickFixFactory *> factories =
|
||||||
|
ExtensionSystem::PluginManager::instance()->getObjects<TextEditor::IQuickFixFactory>();
|
||||||
|
|
||||||
|
QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations;
|
||||||
|
|
||||||
|
foreach (TextEditor::IQuickFixFactory *factory, factories)
|
||||||
|
quickFixOperations += factory->quickFixOperations(editor);
|
||||||
|
|
||||||
|
return quickFixOperations;
|
||||||
|
}
|
||||||
|
|
||||||
|
IQuickFixFactory::IQuickFixFactory(QObject *parent)
|
||||||
|
: QObject(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
IQuickFixFactory::~IQuickFixFactory()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -115,13 +115,24 @@ public:
|
|||||||
virtual void cleanup();
|
virtual void cleanup();
|
||||||
|
|
||||||
virtual TextEditor::QuickFixState *initializeCompletion(TextEditor::ITextEditable *editable) = 0;
|
virtual TextEditor::QuickFixState *initializeCompletion(TextEditor::ITextEditable *editable) = 0;
|
||||||
virtual QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations(TextEditor::BaseTextEditor *editor) const = 0;
|
virtual QList<TextEditor::QuickFixOperation::Ptr> quickFixOperations(TextEditor::BaseTextEditor *editor) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TextEditor::ITextEditable *_editable;
|
TextEditor::ITextEditable *_editable;
|
||||||
QList<TextEditor::QuickFixOperation::Ptr> _quickFixes;
|
QList<TextEditor::QuickFixOperation::Ptr> _quickFixes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TEXTEDITOR_EXPORT IQuickFixFactory: public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
IQuickFixFactory(QObject *parent = 0);
|
||||||
|
virtual ~IQuickFixFactory();
|
||||||
|
|
||||||
|
virtual QList<QuickFixOperation::Ptr> quickFixOperations(TextEditor::BaseTextEditor *editor) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
} // end of namespace TextEditor
|
} // end of namespace TextEditor
|
||||||
|
|
||||||
#endif // TEXTEDITORQUICKFIX_H
|
#endif // TEXTEDITORQUICKFIX_H
|
||||||
|
|||||||
Reference in New Issue
Block a user