forked from qt-creator/qt-creator
TextEditor: Pimpl TextEditorActionHandler
It's "exported API" Change-Id: I9830ff4637a2b3191bb8a3ea83c9ce532e5ab0d9 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -46,12 +46,177 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
|
||||||
using namespace TextEditor;
|
namespace TextEditor {
|
||||||
using namespace TextEditor::Internal;
|
namespace Internal {
|
||||||
|
|
||||||
TextEditorActionHandler::TextEditorActionHandler(QObject *parent, Core::Id contextId,
|
class TextEditorActionHandlerPrivate : public QObject
|
||||||
uint optionalActions)
|
{
|
||||||
: QObject(parent),
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
TextEditorActionHandlerPrivate(TextEditorActionHandler *parent,
|
||||||
|
Core::Id contextId,
|
||||||
|
uint optionalActions);
|
||||||
|
|
||||||
|
QAction *registerAction(Core::Id id,
|
||||||
|
const char *slot,
|
||||||
|
bool scriptable = false,
|
||||||
|
const QString &title = QString(),
|
||||||
|
const QKeySequence &keySequence = QKeySequence(),
|
||||||
|
const char *menueGroup = 0,
|
||||||
|
Core::ActionContainer *container = 0);
|
||||||
|
|
||||||
|
void createActions();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void updateActions();
|
||||||
|
void updateRedoAction();
|
||||||
|
void updateUndoAction();
|
||||||
|
void updateCopyAction();
|
||||||
|
|
||||||
|
void undoAction();
|
||||||
|
void redoAction();
|
||||||
|
void copyAction();
|
||||||
|
void cutAction();
|
||||||
|
void pasteAction();
|
||||||
|
void circularPasteAction();
|
||||||
|
void switchUtf8bomAction();
|
||||||
|
void selectAllAction();
|
||||||
|
void gotoAction();
|
||||||
|
void printAction();
|
||||||
|
void formatAction();
|
||||||
|
void rewrapParagraphAction();
|
||||||
|
void setVisualizeWhitespace(bool);
|
||||||
|
void cleanWhitespace();
|
||||||
|
void setTextWrapping(bool);
|
||||||
|
void unCommentSelection();
|
||||||
|
void unfoldAll();
|
||||||
|
void fold();
|
||||||
|
void unfold();
|
||||||
|
void cutLine();
|
||||||
|
void copyLine();
|
||||||
|
void deleteLine();
|
||||||
|
void deleteEndOfWord();
|
||||||
|
void deleteEndOfWordCamelCase();
|
||||||
|
void deleteStartOfWord();
|
||||||
|
void deleteStartOfWordCamelCase();
|
||||||
|
void selectEncoding();
|
||||||
|
void increaseFontSize();
|
||||||
|
void decreaseFontSize();
|
||||||
|
void resetFontSize();
|
||||||
|
void gotoBlockStart();
|
||||||
|
void gotoBlockEnd();
|
||||||
|
void gotoBlockStartWithSelection();
|
||||||
|
void gotoBlockEndWithSelection();
|
||||||
|
void selectBlockUp();
|
||||||
|
void selectBlockDown();
|
||||||
|
void viewPageUp();
|
||||||
|
void viewPageDown();
|
||||||
|
void viewLineUp();
|
||||||
|
void viewLineDown();
|
||||||
|
void moveLineUp();
|
||||||
|
void moveLineDown();
|
||||||
|
void copyLineUp();
|
||||||
|
void copyLineDown();
|
||||||
|
void joinLines();
|
||||||
|
void insertLineAbove();
|
||||||
|
void insertLineBelow();
|
||||||
|
void uppercaseSelection();
|
||||||
|
void lowercaseSelection();
|
||||||
|
void updateCurrentEditor(Core::IEditor *editor);
|
||||||
|
void indent();
|
||||||
|
void unindent();
|
||||||
|
void openLinkUnderCursor();
|
||||||
|
void openLinkUnderCursorInNextSplit();
|
||||||
|
|
||||||
|
void gotoLineStart();
|
||||||
|
void gotoLineStartWithSelection();
|
||||||
|
void gotoLineEnd();
|
||||||
|
void gotoLineEndWithSelection();
|
||||||
|
void gotoNextLine();
|
||||||
|
void gotoNextLineWithSelection();
|
||||||
|
void gotoPreviousLine();
|
||||||
|
void gotoPreviousLineWithSelection();
|
||||||
|
void gotoPreviousCharacter();
|
||||||
|
void gotoPreviousCharacterWithSelection();
|
||||||
|
void gotoNextCharacter();
|
||||||
|
void gotoNextCharacterWithSelection();
|
||||||
|
void gotoPreviousWord();
|
||||||
|
void gotoPreviousWordWithSelection();
|
||||||
|
void gotoNextWord();
|
||||||
|
void gotoNextWordWithSelection();
|
||||||
|
void gotoPreviousWordCamelCase();
|
||||||
|
void gotoPreviousWordCamelCaseWithSelection();
|
||||||
|
void gotoNextWordCamelCase();
|
||||||
|
void gotoNextWordCamelCaseWithSelection();
|
||||||
|
|
||||||
|
public:
|
||||||
|
TextEditorActionHandler *q;
|
||||||
|
QAction *m_undoAction;
|
||||||
|
QAction *m_redoAction;
|
||||||
|
QAction *m_copyAction;
|
||||||
|
QAction *m_cutAction;
|
||||||
|
QAction *m_pasteAction;
|
||||||
|
QAction *m_circularPasteAction;
|
||||||
|
QAction *m_switchUtf8bomAction;
|
||||||
|
QAction *m_selectAllAction;
|
||||||
|
QAction *m_gotoAction;
|
||||||
|
QAction *m_printAction;
|
||||||
|
QAction *m_formatAction;
|
||||||
|
QAction *m_rewrapParagraphAction;
|
||||||
|
QAction *m_visualizeWhitespaceAction;
|
||||||
|
QAction *m_cleanWhitespaceAction;
|
||||||
|
QAction *m_textWrappingAction;
|
||||||
|
QAction *m_unCommentSelectionAction;
|
||||||
|
QAction *m_unfoldAllAction;
|
||||||
|
QAction *m_foldAction;
|
||||||
|
QAction *m_unfoldAction;
|
||||||
|
QAction *m_cutLineAction;
|
||||||
|
QAction *m_copyLineAction;
|
||||||
|
QAction *m_deleteLineAction;
|
||||||
|
QAction *m_deleteEndOfWordAction;
|
||||||
|
QAction *m_deleteEndOfWordCamelCaseAction;
|
||||||
|
QAction *m_deleteStartOfWordAction;
|
||||||
|
QAction *m_deleteStartOfWordCamelCaseAction;
|
||||||
|
QAction *m_selectEncodingAction;
|
||||||
|
QAction *m_increaseFontSizeAction;
|
||||||
|
QAction *m_decreaseFontSizeAction;
|
||||||
|
QAction *m_resetFontSizeAction;
|
||||||
|
QAction *m_gotoBlockStartAction;
|
||||||
|
QAction *m_gotoBlockEndAction;
|
||||||
|
QAction *m_gotoBlockStartWithSelectionAction;
|
||||||
|
QAction *m_gotoBlockEndWithSelectionAction;
|
||||||
|
QAction *m_selectBlockUpAction;
|
||||||
|
QAction *m_selectBlockDownAction;
|
||||||
|
QAction *m_viewPageUpAction;
|
||||||
|
QAction *m_viewPageDownAction;
|
||||||
|
QAction *m_viewLineUpAction;
|
||||||
|
QAction *m_viewLineDownAction;
|
||||||
|
QAction *m_moveLineUpAction;
|
||||||
|
QAction *m_moveLineDownAction;
|
||||||
|
QAction *m_copyLineUpAction;
|
||||||
|
QAction *m_copyLineDownAction;
|
||||||
|
QAction *m_joinLinesAction;
|
||||||
|
QAction *m_insertLineAboveAction;
|
||||||
|
QAction *m_insertLineBelowAction;
|
||||||
|
QAction *m_upperCaseSelectionAction;
|
||||||
|
QAction *m_lowerCaseSelectionAction;
|
||||||
|
QAction *m_indentAction;
|
||||||
|
QAction *m_unindentAction;
|
||||||
|
QAction *m_followSymbolAction;
|
||||||
|
QAction *m_followSymbolInNextSplitAction;
|
||||||
|
QAction *m_jumpToFileAction;
|
||||||
|
QAction *m_jumpToFileInNextSplitAction;
|
||||||
|
QList<QAction *> m_modifyingActions;
|
||||||
|
|
||||||
|
uint m_optionalActions;
|
||||||
|
QPointer<BaseTextEditorWidget> m_currentEditorWidget;
|
||||||
|
Core::Id m_contextId;
|
||||||
|
};
|
||||||
|
|
||||||
|
TextEditorActionHandlerPrivate::TextEditorActionHandlerPrivate
|
||||||
|
(TextEditorActionHandler *parent, Core::Id contextId, uint optionalActions)
|
||||||
|
: q(parent),
|
||||||
m_undoAction(0),
|
m_undoAction(0),
|
||||||
m_redoAction(0),
|
m_redoAction(0),
|
||||||
m_copyAction(0),
|
m_copyAction(0),
|
||||||
@@ -115,11 +280,7 @@ TextEditorActionHandler::TextEditorActionHandler(QObject *parent, Core::Id conte
|
|||||||
this, SLOT(updateCurrentEditor(Core::IEditor*)));
|
this, SLOT(updateCurrentEditor(Core::IEditor*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEditorActionHandler::~TextEditorActionHandler()
|
void TextEditorActionHandlerPrivate::createActions()
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextEditorActionHandler::createActions()
|
|
||||||
{
|
{
|
||||||
using namespace Core::Constants;
|
using namespace Core::Constants;
|
||||||
using namespace TextEditor::Constants;
|
using namespace TextEditor::Constants;
|
||||||
@@ -375,20 +536,20 @@ void TextEditorActionHandler::createActions()
|
|||||||
m_modifyingActions << m_unindentAction;
|
m_modifyingActions << m_unindentAction;
|
||||||
|
|
||||||
// set enabled state of optional actions
|
// set enabled state of optional actions
|
||||||
m_followSymbolAction->setEnabled(m_optionalActions & FollowSymbolUnderCursor);
|
m_followSymbolAction->setEnabled(m_optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
|
||||||
m_followSymbolInNextSplitAction->setEnabled(m_optionalActions & FollowSymbolUnderCursor);
|
m_followSymbolInNextSplitAction->setEnabled(m_optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
|
||||||
m_jumpToFileAction->setEnabled(m_optionalActions & JumpToFileUnderCursor);
|
m_jumpToFileAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
||||||
m_jumpToFileInNextSplitAction->setEnabled(m_optionalActions & JumpToFileUnderCursor);
|
m_jumpToFileInNextSplitAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
||||||
m_unfoldAllAction->setEnabled(m_optionalActions & UnCollapseAll);
|
m_unfoldAllAction->setEnabled(m_optionalActions & TextEditorActionHandler::UnCollapseAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction *TextEditorActionHandler::registerAction(Core::Id id,
|
QAction *TextEditorActionHandlerPrivate::registerAction(Core::Id id,
|
||||||
const char *slot,
|
const char *slot,
|
||||||
bool scriptable,
|
bool scriptable,
|
||||||
const QString &title,
|
const QString &title,
|
||||||
const QKeySequence &keySequence,
|
const QKeySequence &keySequence,
|
||||||
const char *menueGroup,
|
const char *menueGroup,
|
||||||
Core::ActionContainer *container)
|
Core::ActionContainer *container)
|
||||||
{
|
{
|
||||||
QAction *result = new QAction(title, this);
|
QAction *result = new QAction(title, this);
|
||||||
Core::Command *command = Core::ActionManager::registerAction(result, id, Core::Context(m_contextId), scriptable);
|
Core::Command *command = Core::ActionManager::registerAction(result, id, Core::Context(m_contextId), scriptable);
|
||||||
@@ -402,14 +563,14 @@ QAction *TextEditorActionHandler::registerAction(Core::Id id,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::updateActions()
|
void TextEditorActionHandlerPrivate::updateActions()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_currentEditorWidget, return);
|
QTC_ASSERT(m_currentEditorWidget, return);
|
||||||
bool isWritable = !m_currentEditorWidget->isReadOnly();
|
bool isWritable = !m_currentEditorWidget->isReadOnly();
|
||||||
foreach (QAction *a, m_modifyingActions)
|
foreach (QAction *a, m_modifyingActions)
|
||||||
a->setEnabled(isWritable);
|
a->setEnabled(isWritable);
|
||||||
m_formatAction->setEnabled((m_optionalActions & Format) && isWritable);
|
m_formatAction->setEnabled((m_optionalActions & TextEditorActionHandler::Format) && isWritable);
|
||||||
m_unCommentSelectionAction->setEnabled((m_optionalActions & UnCommentSelection) && isWritable);
|
m_unCommentSelectionAction->setEnabled((m_optionalActions & TextEditorActionHandler::UnCommentSelection) && isWritable);
|
||||||
m_visualizeWhitespaceAction->setChecked(m_currentEditorWidget->displaySettings().m_visualizeWhitespace);
|
m_visualizeWhitespaceAction->setChecked(m_currentEditorWidget->displaySettings().m_visualizeWhitespace);
|
||||||
m_textWrappingAction->setChecked(m_currentEditorWidget->displaySettings().m_textWrapping);
|
m_textWrappingAction->setChecked(m_currentEditorWidget->displaySettings().m_textWrapping);
|
||||||
|
|
||||||
@@ -418,19 +579,19 @@ void TextEditorActionHandler::updateActions()
|
|||||||
updateCopyAction();
|
updateCopyAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::updateRedoAction()
|
void TextEditorActionHandlerPrivate::updateRedoAction()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_currentEditorWidget, return);
|
QTC_ASSERT(m_currentEditorWidget, return);
|
||||||
m_redoAction->setEnabled(m_currentEditorWidget->document()->isRedoAvailable());
|
m_redoAction->setEnabled(m_currentEditorWidget->document()->isRedoAvailable());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::updateUndoAction()
|
void TextEditorActionHandlerPrivate::updateUndoAction()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_currentEditorWidget, return);
|
QTC_ASSERT(m_currentEditorWidget, return);
|
||||||
m_undoAction->setEnabled(m_currentEditorWidget->document()->isUndoAvailable());
|
m_undoAction->setEnabled(m_currentEditorWidget->document()->isUndoAvailable());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::updateCopyAction()
|
void TextEditorActionHandlerPrivate::updateCopyAction()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_currentEditorWidget, return);
|
QTC_ASSERT(m_currentEditorWidget, return);
|
||||||
const bool hasCopyableText = m_currentEditorWidget->textCursor().hasSelection();
|
const bool hasCopyableText = m_currentEditorWidget->textCursor().hasSelection();
|
||||||
@@ -440,7 +601,7 @@ void TextEditorActionHandler::updateCopyAction()
|
|||||||
m_copyAction->setEnabled(hasCopyableText);
|
m_copyAction->setEnabled(hasCopyableText);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::gotoAction()
|
void TextEditorActionHandlerPrivate::gotoAction()
|
||||||
{
|
{
|
||||||
QString locatorString = TextEditorPlugin::lineNumberFilter()->shortcutString();
|
QString locatorString = TextEditorPlugin::lineNumberFilter()->shortcutString();
|
||||||
locatorString += QLatin1Char(' ');
|
locatorString += QLatin1Char(' ');
|
||||||
@@ -449,13 +610,13 @@ void TextEditorActionHandler::gotoAction()
|
|||||||
Core::LocatorManager::show(locatorString, selectionStart, locatorString.size() - selectionStart);
|
Core::LocatorManager::show(locatorString, selectionStart, locatorString.size() - selectionStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::printAction()
|
void TextEditorActionHandlerPrivate::printAction()
|
||||||
{
|
{
|
||||||
if (m_currentEditorWidget)
|
if (m_currentEditorWidget)
|
||||||
m_currentEditorWidget->print(Core::ICore::printer());
|
m_currentEditorWidget->print(Core::ICore::printer());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::setVisualizeWhitespace(bool checked)
|
void TextEditorActionHandlerPrivate::setVisualizeWhitespace(bool checked)
|
||||||
{
|
{
|
||||||
if (m_currentEditorWidget) {
|
if (m_currentEditorWidget) {
|
||||||
DisplaySettings ds = m_currentEditorWidget->displaySettings();
|
DisplaySettings ds = m_currentEditorWidget->displaySettings();
|
||||||
@@ -464,7 +625,7 @@ void TextEditorActionHandler::setVisualizeWhitespace(bool checked)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandler::setTextWrapping(bool checked)
|
void TextEditorActionHandlerPrivate::setTextWrapping(bool checked)
|
||||||
{
|
{
|
||||||
if (m_currentEditorWidget) {
|
if (m_currentEditorWidget) {
|
||||||
DisplaySettings ds = m_currentEditorWidget->displaySettings();
|
DisplaySettings ds = m_currentEditorWidget->displaySettings();
|
||||||
@@ -473,12 +634,12 @@ void TextEditorActionHandler::setTextWrapping(bool checked)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FUNCTION(funcname) void TextEditorActionHandler::funcname ()\
|
#define FUNCTION(funcname) void TextEditorActionHandlerPrivate::funcname ()\
|
||||||
{\
|
{\
|
||||||
if (m_currentEditorWidget)\
|
if (m_currentEditorWidget)\
|
||||||
m_currentEditorWidget->funcname ();\
|
m_currentEditorWidget->funcname ();\
|
||||||
}
|
}
|
||||||
#define FUNCTION2(funcname, funcname2) void TextEditorActionHandler::funcname ()\
|
#define FUNCTION2(funcname, funcname2) void TextEditorActionHandlerPrivate::funcname ()\
|
||||||
{\
|
{\
|
||||||
if (m_currentEditorWidget)\
|
if (m_currentEditorWidget)\
|
||||||
m_currentEditorWidget->funcname2 ();\
|
m_currentEditorWidget->funcname2 ();\
|
||||||
@@ -557,12 +718,7 @@ FUNCTION(gotoNextWordCamelCase)
|
|||||||
FUNCTION(gotoNextWordCamelCaseWithSelection)
|
FUNCTION(gotoNextWordCamelCaseWithSelection)
|
||||||
|
|
||||||
|
|
||||||
BaseTextEditorWidget *TextEditorActionHandler::resolveTextEditorWidget(Core::IEditor *editor) const
|
void TextEditorActionHandlerPrivate::updateCurrentEditor(Core::IEditor *editor)
|
||||||
{
|
|
||||||
return qobject_cast<BaseTextEditorWidget *>(editor->widget());
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextEditorActionHandler::updateCurrentEditor(Core::IEditor *editor)
|
|
||||||
{
|
{
|
||||||
if (m_currentEditorWidget)
|
if (m_currentEditorWidget)
|
||||||
m_currentEditorWidget->disconnect(this);
|
m_currentEditorWidget->disconnect(this);
|
||||||
@@ -573,7 +729,7 @@ void TextEditorActionHandler::updateCurrentEditor(Core::IEditor *editor)
|
|||||||
if (!editor || !editor->context().contains(m_contextId))
|
if (!editor || !editor->context().contains(m_contextId))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BaseTextEditorWidget *editorWidget = resolveTextEditorWidget(editor);
|
BaseTextEditorWidget *editorWidget = q->resolveTextEditorWidget(editor);
|
||||||
QTC_ASSERT(editorWidget, return); // editor has our context id, so shouldn't happen
|
QTC_ASSERT(editorWidget, return); // editor has our context id, so shouldn't happen
|
||||||
m_currentEditorWidget = editorWidget;
|
m_currentEditorWidget = editorWidget;
|
||||||
connect(m_currentEditorWidget, SIGNAL(undoAvailable(bool)), this, SLOT(updateUndoAction()));
|
connect(m_currentEditorWidget, SIGNAL(undoAvailable(bool)), this, SLOT(updateUndoAction()));
|
||||||
@@ -582,3 +738,24 @@ void TextEditorActionHandler::updateCurrentEditor(Core::IEditor *editor)
|
|||||||
connect(m_currentEditorWidget, SIGNAL(readOnlyChanged()), this, SLOT(updateActions()));
|
connect(m_currentEditorWidget, SIGNAL(readOnlyChanged()), this, SLOT(updateActions()));
|
||||||
updateActions();
|
updateActions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Internal
|
||||||
|
|
||||||
|
TextEditorActionHandler::TextEditorActionHandler(QObject *parent, Core::Id contextId, uint optionalActions)
|
||||||
|
: QObject(parent), d(new Internal::TextEditorActionHandlerPrivate(this, contextId, optionalActions))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorActionHandler::~TextEditorActionHandler()
|
||||||
|
{
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
BaseTextEditorWidget *TextEditorActionHandler::resolveTextEditorWidget(Core::IEditor *editor) const
|
||||||
|
{
|
||||||
|
return qobject_cast<BaseTextEditorWidget *>(editor->widget());
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace TextEditor
|
||||||
|
|
||||||
|
#include "texteditoractionhandler.moc"
|
||||||
|
|||||||
@@ -32,23 +32,17 @@
|
|||||||
|
|
||||||
#include "texteditor_global.h"
|
#include "texteditor_global.h"
|
||||||
|
|
||||||
#include <coreplugin/icontext.h>
|
#include <coreplugin/id.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QPointer>
|
|
||||||
#include <QList>
|
|
||||||
|
|
||||||
QT_FORWARD_DECLARE_CLASS(QAction)
|
namespace Core { class IEditor; }
|
||||||
|
|
||||||
namespace Core {
|
|
||||||
class ICore;
|
|
||||||
class IEditor;
|
|
||||||
class ActionContainer;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
class BaseTextEditorWidget;
|
class BaseTextEditorWidget;
|
||||||
|
|
||||||
|
namespace Internal { class TextEditorActionHandlerPrivate; }
|
||||||
|
|
||||||
// Redirects slots from global actions to the respective editor.
|
// Redirects slots from global actions to the respective editor.
|
||||||
|
|
||||||
class TEXTEDITOR_EXPORT TextEditorActionHandler : public QObject
|
class TEXTEDITOR_EXPORT TextEditorActionHandler : public QObject
|
||||||
@@ -72,160 +66,8 @@ protected:
|
|||||||
virtual BaseTextEditorWidget *resolveTextEditorWidget(Core::IEditor *editor) const;
|
virtual BaseTextEditorWidget *resolveTextEditorWidget(Core::IEditor *editor) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QAction *registerAction(Core::Id id,
|
friend class Internal::TextEditorActionHandlerPrivate;
|
||||||
const char *slot,
|
Internal::TextEditorActionHandlerPrivate *d;
|
||||||
bool scriptable = false,
|
|
||||||
const QString &title = QString(),
|
|
||||||
const QKeySequence &keySequence = QKeySequence(),
|
|
||||||
const char *menueGroup = 0,
|
|
||||||
Core::ActionContainer *container = 0);
|
|
||||||
|
|
||||||
void createActions();
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void updateActions();
|
|
||||||
void updateRedoAction();
|
|
||||||
void updateUndoAction();
|
|
||||||
void updateCopyAction();
|
|
||||||
|
|
||||||
void undoAction();
|
|
||||||
void redoAction();
|
|
||||||
void copyAction();
|
|
||||||
void cutAction();
|
|
||||||
void pasteAction();
|
|
||||||
void circularPasteAction();
|
|
||||||
void switchUtf8bomAction();
|
|
||||||
void selectAllAction();
|
|
||||||
void gotoAction();
|
|
||||||
void printAction();
|
|
||||||
void formatAction();
|
|
||||||
void rewrapParagraphAction();
|
|
||||||
void setVisualizeWhitespace(bool);
|
|
||||||
void cleanWhitespace();
|
|
||||||
void setTextWrapping(bool);
|
|
||||||
void unCommentSelection();
|
|
||||||
void unfoldAll();
|
|
||||||
void fold();
|
|
||||||
void unfold();
|
|
||||||
void cutLine();
|
|
||||||
void copyLine();
|
|
||||||
void deleteLine();
|
|
||||||
void deleteEndOfWord();
|
|
||||||
void deleteEndOfWordCamelCase();
|
|
||||||
void deleteStartOfWord();
|
|
||||||
void deleteStartOfWordCamelCase();
|
|
||||||
void selectEncoding();
|
|
||||||
void increaseFontSize();
|
|
||||||
void decreaseFontSize();
|
|
||||||
void resetFontSize();
|
|
||||||
void gotoBlockStart();
|
|
||||||
void gotoBlockEnd();
|
|
||||||
void gotoBlockStartWithSelection();
|
|
||||||
void gotoBlockEndWithSelection();
|
|
||||||
void selectBlockUp();
|
|
||||||
void selectBlockDown();
|
|
||||||
void viewPageUp();
|
|
||||||
void viewPageDown();
|
|
||||||
void viewLineUp();
|
|
||||||
void viewLineDown();
|
|
||||||
void moveLineUp();
|
|
||||||
void moveLineDown();
|
|
||||||
void copyLineUp();
|
|
||||||
void copyLineDown();
|
|
||||||
void joinLines();
|
|
||||||
void insertLineAbove();
|
|
||||||
void insertLineBelow();
|
|
||||||
void uppercaseSelection();
|
|
||||||
void lowercaseSelection();
|
|
||||||
void updateCurrentEditor(Core::IEditor *editor);
|
|
||||||
void indent();
|
|
||||||
void unindent();
|
|
||||||
void openLinkUnderCursor();
|
|
||||||
void openLinkUnderCursorInNextSplit();
|
|
||||||
|
|
||||||
void gotoLineStart();
|
|
||||||
void gotoLineStartWithSelection();
|
|
||||||
void gotoLineEnd();
|
|
||||||
void gotoLineEndWithSelection();
|
|
||||||
void gotoNextLine();
|
|
||||||
void gotoNextLineWithSelection();
|
|
||||||
void gotoPreviousLine();
|
|
||||||
void gotoPreviousLineWithSelection();
|
|
||||||
void gotoPreviousCharacter();
|
|
||||||
void gotoPreviousCharacterWithSelection();
|
|
||||||
void gotoNextCharacter();
|
|
||||||
void gotoNextCharacterWithSelection();
|
|
||||||
void gotoPreviousWord();
|
|
||||||
void gotoPreviousWordWithSelection();
|
|
||||||
void gotoNextWord();
|
|
||||||
void gotoNextWordWithSelection();
|
|
||||||
void gotoPreviousWordCamelCase();
|
|
||||||
void gotoPreviousWordCamelCaseWithSelection();
|
|
||||||
void gotoNextWordCamelCase();
|
|
||||||
void gotoNextWordCamelCaseWithSelection();
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
QAction *m_undoAction;
|
|
||||||
QAction *m_redoAction;
|
|
||||||
QAction *m_copyAction;
|
|
||||||
QAction *m_cutAction;
|
|
||||||
QAction *m_pasteAction;
|
|
||||||
QAction *m_circularPasteAction;
|
|
||||||
QAction *m_switchUtf8bomAction;
|
|
||||||
QAction *m_selectAllAction;
|
|
||||||
QAction *m_gotoAction;
|
|
||||||
QAction *m_printAction;
|
|
||||||
QAction *m_formatAction;
|
|
||||||
QAction *m_rewrapParagraphAction;
|
|
||||||
QAction *m_visualizeWhitespaceAction;
|
|
||||||
QAction *m_cleanWhitespaceAction;
|
|
||||||
QAction *m_textWrappingAction;
|
|
||||||
QAction *m_unCommentSelectionAction;
|
|
||||||
QAction *m_unfoldAllAction;
|
|
||||||
QAction *m_foldAction;
|
|
||||||
QAction *m_unfoldAction;
|
|
||||||
QAction *m_cutLineAction;
|
|
||||||
QAction *m_copyLineAction;
|
|
||||||
QAction *m_deleteLineAction;
|
|
||||||
QAction *m_deleteEndOfWordAction;
|
|
||||||
QAction *m_deleteEndOfWordCamelCaseAction;
|
|
||||||
QAction *m_deleteStartOfWordAction;
|
|
||||||
QAction *m_deleteStartOfWordCamelCaseAction;
|
|
||||||
QAction *m_selectEncodingAction;
|
|
||||||
QAction *m_increaseFontSizeAction;
|
|
||||||
QAction *m_decreaseFontSizeAction;
|
|
||||||
QAction *m_resetFontSizeAction;
|
|
||||||
QAction *m_gotoBlockStartAction;
|
|
||||||
QAction *m_gotoBlockEndAction;
|
|
||||||
QAction *m_gotoBlockStartWithSelectionAction;
|
|
||||||
QAction *m_gotoBlockEndWithSelectionAction;
|
|
||||||
QAction *m_selectBlockUpAction;
|
|
||||||
QAction *m_selectBlockDownAction;
|
|
||||||
QAction *m_viewPageUpAction;
|
|
||||||
QAction *m_viewPageDownAction;
|
|
||||||
QAction *m_viewLineUpAction;
|
|
||||||
QAction *m_viewLineDownAction;
|
|
||||||
QAction *m_moveLineUpAction;
|
|
||||||
QAction *m_moveLineDownAction;
|
|
||||||
QAction *m_copyLineUpAction;
|
|
||||||
QAction *m_copyLineDownAction;
|
|
||||||
QAction *m_joinLinesAction;
|
|
||||||
QAction *m_insertLineAboveAction;
|
|
||||||
QAction *m_insertLineBelowAction;
|
|
||||||
QAction *m_upperCaseSelectionAction;
|
|
||||||
QAction *m_lowerCaseSelectionAction;
|
|
||||||
QAction *m_indentAction;
|
|
||||||
QAction *m_unindentAction;
|
|
||||||
QAction *m_followSymbolAction;
|
|
||||||
QAction *m_followSymbolInNextSplitAction;
|
|
||||||
QAction *m_jumpToFileAction;
|
|
||||||
QAction *m_jumpToFileInNextSplitAction;
|
|
||||||
QList<QAction *> m_modifyingActions;
|
|
||||||
|
|
||||||
uint m_optionalActions;
|
|
||||||
QPointer<BaseTextEditorWidget> m_currentEditorWidget;
|
|
||||||
Core::Id m_contextId;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace TextEditor
|
} // namespace TextEditor
|
||||||
|
|||||||
Reference in New Issue
Block a user