Skip to content
Snippets Groups Projects
Commit 14839418 authored by Roberto Raggi's avatar Roberto Raggi
Browse files

Enable the standard actions (e.g undo, redo, ...)

parent acea5c55
No related branches found
No related tags found
No related merge requests found
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include <texteditor/fontsettings.h> #include <texteditor/fontsettings.h>
#include <texteditor/textblockiterator.h> #include <texteditor/textblockiterator.h>
#include <texteditor/texteditorconstants.h> #include <texteditor/texteditorconstants.h>
#include <texteditor/texteditorsettings.h>
#include <QtGui/QMenu> #include <QtGui/QMenu>
#include <QtCore/QTimer> #include <QtCore/QTimer>
...@@ -64,11 +65,9 @@ ScriptEditorEditable::ScriptEditorEditable(ScriptEditor *editor, const QList<int ...@@ -64,11 +65,9 @@ ScriptEditorEditable::ScriptEditorEditable(ScriptEditor *editor, const QList<int
} }
ScriptEditor::ScriptEditor(const Context &context, ScriptEditor::ScriptEditor(const Context &context,
TextEditor::TextEditorActionHandler *ah,
QWidget *parent) : QWidget *parent) :
TextEditor::BaseTextEditor(parent), TextEditor::BaseTextEditor(parent),
m_context(context), m_context(context)
m_ah(ah)
{ {
setParenthesesMatchingEnabled(true); setParenthesesMatchingEnabled(true);
setMarksVisible(true); setMarksVisible(true);
...@@ -93,15 +92,10 @@ ScriptEditor::~ScriptEditor() ...@@ -93,15 +92,10 @@ ScriptEditor::~ScriptEditor()
Core::IEditor *ScriptEditorEditable::duplicate(QWidget *parent) Core::IEditor *ScriptEditorEditable::duplicate(QWidget *parent)
{ {
return qobject_cast<ScriptEditor*>(editor())->duplicate(parent)->editableInterface(); ScriptEditor *newEditor = new ScriptEditor(m_context, parent);
} newEditor->duplicateFrom(editor());
QtScriptEditorPlugin::instance()->initializeEditor(newEditor);
ScriptEditor *ScriptEditor::duplicate(QWidget *parent) return newEditor->editableInterface();
{
ScriptEditor *editor = new ScriptEditor(m_context, m_ah, parent);
editor->duplicateFrom(this);
QtScriptEditorPlugin::initializeEditor(editor);
return editor;
} }
const char *ScriptEditorEditable::kind() const const char *ScriptEditorEditable::kind() const
......
...@@ -68,12 +68,9 @@ public: ...@@ -68,12 +68,9 @@ public:
typedef QList<int> Context; typedef QList<int> Context;
ScriptEditor(const Context &context, ScriptEditor(const Context &context,
TextEditor::TextEditorActionHandler *ah,
QWidget *parent = 0); QWidget *parent = 0);
~ScriptEditor(); ~ScriptEditor();
ScriptEditor *duplicate(QWidget *parent);
public slots: public slots:
virtual void setFontSettings(const TextEditor::FontSettings &); virtual void setFontSettings(const TextEditor::FontSettings &);
...@@ -90,7 +87,6 @@ private: ...@@ -90,7 +87,6 @@ private:
virtual void indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar); virtual void indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar);
const Context m_context; const Context m_context;
TextEditor::TextEditorActionHandler *m_ah;
QTimer *m_updateDocumentTimer; QTimer *m_updateDocumentTimer;
}; };
......
...@@ -72,8 +72,8 @@ Core::IFile *QtScriptEditorFactory::open(const QString &fileName) ...@@ -72,8 +72,8 @@ Core::IFile *QtScriptEditorFactory::open(const QString &fileName)
Core::IEditor *QtScriptEditorFactory::createEditor(QWidget *parent) Core::IEditor *QtScriptEditorFactory::createEditor(QWidget *parent)
{ {
ScriptEditor *rc = new ScriptEditor(m_context, m_actionHandler, parent); ScriptEditor *rc = new ScriptEditor(m_context, parent);
QtScriptEditorPlugin::initializeEditor(rc); QtScriptEditorPlugin::instance()->initializeEditor(rc);
return rc->editableInterface(); return rc->editableInterface();
} }
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#include <texteditor/texteditorconstants.h> #include <texteditor/texteditorconstants.h>
#include <texteditor/texteditorsettings.h> #include <texteditor/texteditorsettings.h>
#include <texteditor/textfilewizard.h> #include <texteditor/textfilewizard.h>
#include <texteditor/texteditoractionhandler.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QtCore/QtPlugin> #include <QtCore/QtPlugin>
...@@ -58,7 +59,8 @@ QtScriptEditorPlugin *QtScriptEditorPlugin::m_instance = 0; ...@@ -58,7 +59,8 @@ QtScriptEditorPlugin *QtScriptEditorPlugin::m_instance = 0;
QtScriptEditorPlugin::QtScriptEditorPlugin() : QtScriptEditorPlugin::QtScriptEditorPlugin() :
m_wizard(0), m_wizard(0),
m_editor(0) m_editor(0),
m_actionHandler(0)
{ {
m_instance = this; m_instance = this;
} }
...@@ -67,6 +69,7 @@ QtScriptEditorPlugin::~QtScriptEditorPlugin() ...@@ -67,6 +69,7 @@ QtScriptEditorPlugin::~QtScriptEditorPlugin()
{ {
removeObject(m_editor); removeObject(m_editor);
removeObject(m_wizard); removeObject(m_wizard);
delete m_actionHandler;
m_instance = 0; m_instance = 0;
} }
...@@ -97,18 +100,27 @@ bool QtScriptEditorPlugin::initialize(const QStringList & /*arguments*/, QString ...@@ -97,18 +100,27 @@ bool QtScriptEditorPlugin::initialize(const QStringList & /*arguments*/, QString
wizardParameters, this); wizardParameters, this);
addObject(m_wizard); addObject(m_wizard);
m_actionHandler = new TextEditor::TextEditorActionHandler(QtScriptEditor::Constants::C_QTSCRIPTEDITOR,
TextEditor::TextEditorActionHandler::Format
| TextEditor::TextEditorActionHandler::UnCommentSelection
| TextEditor::TextEditorActionHandler::UnCollapseAll);
error_message->clear(); error_message->clear();
return true; return true;
} }
void QtScriptEditorPlugin::extensionsInitialized() void QtScriptEditorPlugin::extensionsInitialized()
{ {
m_actionHandler->initializeActions();
} }
void QtScriptEditorPlugin::initializeEditor(QtScriptEditor::Internal::ScriptEditor *editor) void QtScriptEditorPlugin::initializeEditor(QtScriptEditor::Internal::ScriptEditor *editor)
{ {
QTC_ASSERT(m_instance, /**/); QTC_ASSERT(m_instance, /**/);
m_actionHandler->setupActions(editor);
TextEditor::TextEditorSettings::instance()->initializeEditor(editor); TextEditor::TextEditorSettings::instance()->initializeEditor(editor);
} }
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
namespace TextEditor { namespace TextEditor {
class TextFileWizard; class TextFileWizard;
class TextEditorActionHandler;
} // namespace TextEditor } // namespace TextEditor
namespace QtScriptEditor { namespace QtScriptEditor {
...@@ -54,7 +55,10 @@ public: ...@@ -54,7 +55,10 @@ public:
bool initialize(const QStringList &arguments, QString *errorMessage = 0); bool initialize(const QStringList &arguments, QString *errorMessage = 0);
void extensionsInitialized(); void extensionsInitialized();
static void initializeEditor(ScriptEditor *editor); static QtScriptEditorPlugin *instance()
{ return m_instance; }
void initializeEditor(ScriptEditor *editor);
private: private:
void registerActions(); void registerActions();
...@@ -67,6 +71,7 @@ private: ...@@ -67,6 +71,7 @@ private:
TextEditor::TextFileWizard *m_wizard; TextEditor::TextFileWizard *m_wizard;
QtScriptEditorFactory *m_editor; QtScriptEditorFactory *m_editor;
TextEditor::TextEditorActionHandler *m_actionHandler;
}; };
} // namespace Internal } // namespace Internal
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment