Commit 984e2e3c authored by hjk's avatar hjk

Python: Make editor factory use new BaseEditorFactory

Change-Id: I6ec02161d5248592ff13eb1cdfcaae0bf2090d6d
Reviewed-by: default avatarChristian Stenger <christian.stenger@digia.com>
parent 5d414215
......@@ -53,77 +53,69 @@ using namespace TextEditor;
namespace PythonEditor {
namespace Internal {
//////////////////////////////////////////////////////////////////
//
// PythonEditor
//
//////////////////////////////////////////////////////////////////
PythonEditor::PythonEditor()
class PythonEditor : public TextEditor::BaseTextEditor
{
addContext(Constants::C_PYTHONEDITOR_ID);
setDuplicateSupported(true);
setCommentStyle(Utils::CommentDefinition::HashStyle);
setEditorCreator([]() { return new PythonEditor; });
setWidgetCreator([]() { return new PythonEditorWidget; });
setDocumentCreator([]() -> BaseTextDocument * {
auto doc = new BaseTextDocument(Constants::C_PYTHONEDITOR_ID);
doc->setIndenter(new PythonIndenter);
new PythonHighlighter(doc);
return doc;
});
}
bool PythonEditor::open(QString *errorString,
const QString &fileName,
const QString &realFileName)
{
Core::MimeType mimeType = Core::MimeDatabase::findByFile(QFileInfo(fileName));
textDocument()->setMimeType(mimeType.type());
return BaseTextEditor::open(errorString, fileName, realFileName);
}
public:
PythonEditor()
{
addContext(Constants::C_PYTHONEDITOR_ID);
setDuplicateSupported(true);
setCommentStyle(Utils::CommentDefinition::HashStyle);
}
bool open(QString *errorString, const QString &fileName, const QString &realFileName)
{
Core::MimeType mimeType = Core::MimeDatabase::findByFile(QFileInfo(fileName));
textDocument()->setMimeType(mimeType.type());
return BaseTextEditor::open(errorString, fileName, realFileName);
}
};
//////////////////////////////////////////////////////////////////
//
// PythonEditorWidget
//
//////////////////////////////////////////////////////////////////
PythonEditorWidget::PythonEditorWidget()
class PythonEditorWidget : public TextEditor::BaseTextEditorWidget
{
setParenthesesMatchingEnabled(true);
setMarksVisible(true);
setCodeFoldingSupported(true);
}
public:
PythonEditorWidget()
{
setParenthesesMatchingEnabled(true);
setMarksVisible(true);
setCodeFoldingSupported(true);
}
BaseTextEditor *PythonEditorWidget::createEditor()
{
QTC_ASSERT("should not happen anymore" && false, return 0);
}
TextEditor::BaseTextEditor *createEditor()
{
QTC_ASSERT("should not happen anymore" && false, return 0);
}
};
//////////////////////////////////////////////////////////////////
//
// PythonEditorFactory
//
//////////////////////////////////////////////////////////////////
PythonEditorFactory::PythonEditorFactory()
{
setId(Constants::C_PYTHONEDITOR_ID);
setDisplayName(tr(Constants::C_EDITOR_DISPLAY_NAME));
addMimeType(QLatin1String(Constants::C_PY_MIMETYPE));
new TextEditorActionHandler(this, Constants::C_PYTHONEDITOR_ID,
TextEditorActionHandler::Format
| TextEditorActionHandler::UnCommentSelection
| TextEditorActionHandler::UnCollapseAll);
}
Core::IEditor *PythonEditorFactory::createEditor()
{
return new PythonEditor;
setEditorActionHandlers(TextEditorActionHandler::Format
| TextEditorActionHandler::UnCommentSelection
| TextEditorActionHandler::UnCollapseAll);
setDocumentCreator([]() { return new BaseTextDocument(Constants::C_PYTHONEDITOR_ID); });
setEditorWidgetCreator([]() { return new PythonEditorWidget; });
setEditorCreator([]() { return new PythonEditor; });
setIndenterCreator([]() { return new PythonIndenter; });
setSyntaxHighlighterCreator([]() { return new PythonHighlighter; });
}
} // namespace Internal
......
......@@ -31,48 +31,16 @@
#define PYTHONEDITOR_EDITOR_H
#include <texteditor/basetexteditor.h>
#include <coreplugin/editormanager/ieditorfactory.h>
namespace PythonEditor {
namespace Internal {
class PythonEditorFactory : public Core::IEditorFactory
class PythonEditorFactory : public TextEditor::BaseTextEditorFactory
{
Q_OBJECT
public:
PythonEditorFactory();
/**
Creates and initializes new editor widget
*/
Core::IEditor *createEditor();
};
class PythonEditor : public TextEditor::BaseTextEditor
{
Q_OBJECT
public:
PythonEditor();
/**
Opens file for editing, actual work performed by base class
*/
bool open(QString *errorString,
const QString &fileName,
const QString &realFileName);
};
class PythonEditorWidget : public TextEditor::BaseTextEditorWidget
{
Q_OBJECT
public:
PythonEditorWidget();
protected:
TextEditor::BaseTextEditor *createEditor();
};
} // namespace Internal
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment