Editor: move setScriptable to context actions

The scriptable info is saved to the action registered for a specific context
so we need to add this info to the action builder in the text editor that has the correct context.

Also remove all action builder constructs for the global context that have been registered before
in order to silence the add override action warning.

Change-Id: I631d71ba5eb8e975190713b33827926e868da295
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2024-04-10 11:24:32 +02:00
parent 698488fc05
commit ec3a5b5fd0
2 changed files with 367 additions and 398 deletions

View File

@@ -3872,29 +3872,35 @@ void TextEditorWidgetPrivate::registerActions()
m_undoAction = ActionBuilder(this, UNDO)
.setContext(m_editorContext)
.addOnTriggered([this] { q->undo(); })
.setScriptable(true)
.contextAction();
m_redoAction = ActionBuilder(this, REDO)
.setContext(m_editorContext)
.addOnTriggered([this] { q->redo(); })
.setScriptable(true)
.contextAction();
m_copyAction = ActionBuilder(this, COPY)
.setContext(m_editorContext)
.addOnTriggered([this] { q->copy(); })
.setScriptable(true)
.contextAction();
m_cutAction = ActionBuilder(this, CUT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->cut(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, PASTE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->paste(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, SELECTALL)
.setContext(m_editorContext)
.setScriptable(true)
.addOnTriggered([this] { q->selectAll(); });
ActionBuilder(this, GOTO)
.setContext(m_editorContext)
.addOnTriggered([] { LocatorManager::showFilter(lineNumberFilter()); });
ActionBuilder(this, GOTO).setContext(m_editorContext).addOnTriggered([] {
LocatorManager::showFilter(lineNumberFilter());
});
ActionBuilder(this, PRINT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->print(ICore::printer()); })
@@ -3902,64 +3908,80 @@ void TextEditorWidgetPrivate::registerActions()
m_modifyingActions << ActionBuilder(this, DELETE_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteLine(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_END_OF_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteEndOfLine(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_END_OF_WORD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteEndOfWord(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_END_OF_WORD_CAMEL_CASE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteEndOfWordCamelCase(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_START_OF_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteStartOfLine(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_START_OF_WORD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteStartOfWord(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DELETE_START_OF_WORD_CAMEL_CASE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->deleteStartOfWordCamelCase(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, GOTO_BLOCK_START_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoBlockStartWithSelection(); });
.addOnTriggered([this] { q->gotoBlockStartWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_BLOCK_END_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoBlockEndWithSelection(); });
.addOnTriggered([this] { q->gotoBlockEndWithSelection(); })
.setScriptable(true);
m_modifyingActions << ActionBuilder(this, MOVE_LINE_UP)
.setContext(m_editorContext)
.addOnTriggered([this] { q->moveLineUp(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, MOVE_LINE_DOWN)
.setContext(m_editorContext)
.addOnTriggered([this] { q->moveLineDown(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, COPY_LINE_UP)
.setContext(m_editorContext)
.addOnTriggered([this] { q->copyLineUp(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, COPY_LINE_DOWN)
.setContext(m_editorContext)
.addOnTriggered([this] { q->copyLineDown(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, JOIN_LINES)
.setContext(m_editorContext)
.addOnTriggered([this] { q->joinLines(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, INSERT_LINE_ABOVE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->insertLineAbove(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, INSERT_LINE_BELOW)
.setContext(m_editorContext)
.addOnTriggered([this] { q->insertLineBelow(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, SWITCH_UTF8BOM)
.setContext(m_editorContext)
@@ -3968,10 +3990,12 @@ void TextEditorWidgetPrivate::registerActions()
m_modifyingActions << ActionBuilder(this, INDENT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->indent(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, UNINDENT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->unindent(); })
.setScriptable(true)
.contextAction();
m_followSymbolAction = ActionBuilder(this, FOLLOW_SYMBOL_UNDER_CURSOR)
.setContext(m_editorContext)
@@ -3979,7 +4003,8 @@ void TextEditorWidgetPrivate::registerActions()
.contextAction();
m_followSymbolInNextSplitAction = ActionBuilder(this, FOLLOW_SYMBOL_UNDER_CURSOR_IN_NEXT_SPLIT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->openLinkUnderCursorInNextSplit(); })
.addOnTriggered(
[this] { q->openLinkUnderCursorInNextSplit(); })
.contextAction();
m_followToTypeAction = ActionBuilder(this, FOLLOW_SYMBOL_TO_TYPE)
.setContext(m_editorContext)
@@ -3987,7 +4012,8 @@ void TextEditorWidgetPrivate::registerActions()
.contextAction();
m_followToTypeInNextSplitAction = ActionBuilder(this, FOLLOW_SYMBOL_TO_TYPE_IN_NEXT_SPLIT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->openTypeUnderCursorInNextSplit(); })
.addOnTriggered(
[this] { q->openTypeUnderCursorInNextSplit(); })
.contextAction();
m_findUsageAction = ActionBuilder(this, FIND_USAGES)
.setContext(m_editorContext)
@@ -4003,11 +4029,13 @@ void TextEditorWidgetPrivate::registerActions()
.contextAction();
m_jumpToFileInNextSplitAction = ActionBuilder(this, JUMP_TO_FILE_UNDER_CURSOR_IN_NEXT_SPLIT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->openLinkUnderCursorInNextSplit(); })
.addOnTriggered(
[this] { q->openLinkUnderCursorInNextSplit(); })
.contextAction();
m_openCallHierarchyAction = ActionBuilder(this, OPEN_CALL_HIERARCHY)
.setContext(m_editorContext)
.addOnTriggered([this] { q->openCallHierarchy(); })
.setScriptable(true)
.contextAction();
m_openTypeHierarchyAction = ActionBuilder(this, OPEN_TYPE_HIERARCHY)
.setContext(m_editorContext)
@@ -4015,23 +4043,28 @@ void TextEditorWidgetPrivate::registerActions()
updateTypeHierarchy(NavigationWidget::activateSubWidget(
Constants::TYPE_HIERARCHY_FACTORY_ID, Side::Left));
})
.setScriptable(true)
.contextAction();
ActionBuilder(this, VIEW_PAGE_UP)
.setContext(m_editorContext)
.addOnTriggered([this] { q->viewPageUp(); });
.addOnTriggered([this] { q->viewPageUp(); })
.setScriptable(true);
ActionBuilder(this, VIEW_PAGE_DOWN)
.setContext(m_editorContext)
.addOnTriggered([this] { q->viewPageDown(); });
.addOnTriggered([this] { q->viewPageDown(); })
.setScriptable(true);
ActionBuilder(this, VIEW_LINE_UP)
.setContext(m_editorContext)
.addOnTriggered([this] { q->viewLineUp(); });
.addOnTriggered([this] { q->viewLineUp(); })
.setScriptable(true);
ActionBuilder(this, VIEW_LINE_DOWN)
.setContext(m_editorContext)
.addOnTriggered([this] { q->viewLineDown(); });
.addOnTriggered([this] { q->viewLineDown(); })
.setScriptable(true);
ActionBuilder(this, SELECT_ENCODING)
.setContext(m_editorContext)
.addOnTriggered([this] { q->selectEncoding(); });
ActionBuilder(this, SELECT_ENCODING).setContext(m_editorContext).addOnTriggered([this] {
q->selectEncoding();
});
m_modifyingActions << ActionBuilder(this, CIRCULAR_PASTE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->circularPaste(); })
@@ -4039,19 +4072,23 @@ void TextEditorWidgetPrivate::registerActions()
m_modifyingActions << ActionBuilder(this, NO_FORMAT_PASTE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->pasteWithoutFormat(); })
.setScriptable(true)
.contextAction();
m_autoIndentAction = ActionBuilder(this, AUTO_INDENT_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->autoIndent(); })
.setScriptable(true)
.contextAction();
m_autoFormatAction = ActionBuilder(this, AUTO_FORMAT_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->autoFormat(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, REWRAP_PARAGRAPH)
.setContext(m_editorContext)
.addOnTriggered([this] { q->rewrapParagraph(); })
.setScriptable(true)
.contextAction();
m_visualizeWhitespaceAction = ActionBuilder(this, VISUALIZE_WHITESPACE)
.setContext(m_editorContext)
@@ -4066,10 +4103,13 @@ void TextEditorWidgetPrivate::registerActions()
m_modifyingActions << ActionBuilder(this, CLEAN_WHITESPACE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->cleanWhitespace(); })
.setScriptable(true)
.contextAction();
m_textWrappingAction = ActionBuilder(this, TEXT_WRAPPING)
.setContext(m_editorContext)
.addOnToggled(this, [this] (bool checked) {
.addOnToggled(
this,
[this](bool checked) {
DisplaySettings ds = q->displaySettings();
ds.m_textWrapping = checked;
q->setDisplaySettings(ds);
@@ -4078,146 +4118,187 @@ void TextEditorWidgetPrivate::registerActions()
m_unCommentSelectionAction = ActionBuilder(this, UN_COMMENT_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->unCommentSelection(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, CUT_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->cutLine(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, COPY_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->copyLine(); });
.addOnTriggered([this] { q->copyLine(); })
.setScriptable(true);
m_copyHtmlAction = ActionBuilder(this, COPY_WITH_HTML)
.setContext(m_editorContext)
.addOnTriggered([this] { q->copyWithHtml(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, ADD_CURSORS_TO_LINE_ENDS)
.setContext(m_editorContext)
.addOnTriggered([this] { q->addCursorsToLineEnds(); });
.addOnTriggered([this] { q->addCursorsToLineEnds(); })
.setScriptable(true);
ActionBuilder(this, ADD_SELECT_NEXT_FIND_MATCH)
.setContext(m_editorContext)
.addOnTriggered([this] { q->addSelectionNextFindMatch(); });
.addOnTriggered([this] { q->addSelectionNextFindMatch(); })
.setScriptable(true);
m_modifyingActions << ActionBuilder(this, DUPLICATE_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->duplicateSelection(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, DUPLICATE_SELECTION_AND_COMMENT)
.setContext(m_editorContext)
.addOnTriggered([this] { q->duplicateSelectionAndComment(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, UPPERCASE_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->uppercaseSelection(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, LOWERCASE_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->lowercaseSelection(); })
.setScriptable(true)
.contextAction();
m_modifyingActions << ActionBuilder(this, SORT_LINES)
.setContext(m_editorContext)
.addOnTriggered([this] { q->sortLines(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, FOLD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->foldCurrentBlock(); });
.addOnTriggered([this] { q->foldCurrentBlock(); })
.setScriptable(true);
ActionBuilder(this, UNFOLD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->unfoldCurrentBlock(); });
.addOnTriggered([this] { q->unfoldCurrentBlock(); })
.setScriptable(true);
m_unfoldAllAction = ActionBuilder(this, UNFOLD_ALL)
.setContext(m_editorContext)
.addOnTriggered([this] { q->unfoldAll(); })
.setScriptable(true)
.contextAction();
ActionBuilder(this, INCREASE_FONT_SIZE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->increaseFontZoom(); });
ActionBuilder(this, DECREASE_FONT_SIZE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->decreaseFontZoom(); });
ActionBuilder(this, RESET_FONT_SIZE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->zoomReset(); });
ActionBuilder(this, INCREASE_FONT_SIZE).setContext(m_editorContext).addOnTriggered([this] {
q->increaseFontZoom();
});
ActionBuilder(this, DECREASE_FONT_SIZE).setContext(m_editorContext).addOnTriggered([this] {
q->decreaseFontZoom();
});
ActionBuilder(this, RESET_FONT_SIZE).setContext(m_editorContext).addOnTriggered([this] {
q->zoomReset();
});
ActionBuilder(this, GOTO_BLOCK_START)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoBlockStart(); });
.addOnTriggered([this] { q->gotoBlockStart(); })
.setScriptable(true);
ActionBuilder(this, GOTO_BLOCK_END)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoBlockEnd(); });
.addOnTriggered([this] { q->gotoBlockEnd(); })
.setScriptable(true);
ActionBuilder(this, SELECT_BLOCK_UP)
.setContext(m_editorContext)
.addOnTriggered([this] { q->selectBlockUp(); });
.addOnTriggered([this] { q->selectBlockUp(); })
.setScriptable(true);
ActionBuilder(this, SELECT_BLOCK_DOWN)
.setContext(m_editorContext)
.addOnTriggered([this] { q->selectBlockDown(); });
.addOnTriggered([this] { q->selectBlockDown(); })
.setScriptable(true);
ActionBuilder(this, SELECT_WORD_UNDER_CURSOR)
.setContext(m_editorContext)
.addOnTriggered([this] { q->selectWordUnderCursor(); });
.addOnTriggered([this] { q->selectWordUnderCursor(); })
.setScriptable(true);
ActionBuilder(this, GOTO_DOCUMENT_START)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoDocumentStart(); });
.addOnTriggered([this] { q->gotoDocumentStart(); })
.setScriptable(true);
ActionBuilder(this, GOTO_DOCUMENT_END)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoDocumentEnd(); });
.addOnTriggered([this] { q->gotoDocumentEnd(); })
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_START)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoLineStart(); });
.addOnTriggered([this] { q->gotoLineStart(); })
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_END)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoLineEnd(); });
.addOnTriggered([this] { q->gotoLineEnd(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextLine(); });
.addOnTriggered([this] { q->gotoNextLine(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_LINE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousLine(); });
.addOnTriggered([this] { q->gotoPreviousLine(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_CHARACTER)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousCharacter(); });
.addOnTriggered([this] { q->gotoPreviousCharacter(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_CHARACTER)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextCharacter(); });
.addOnTriggered([this] { q->gotoNextCharacter(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_WORD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousWord(); });
.addOnTriggered([this] { q->gotoPreviousWord(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextWord(); });
.addOnTriggered([this] { q->gotoNextWord(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_WORD_CAMEL_CASE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousWordCamelCase(); });
.addOnTriggered([this] { q->gotoPreviousWordCamelCase(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD_CAMEL_CASE)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextWordCamelCase(); });
.addOnTriggered([this] { q->gotoNextWordCamelCase(); })
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_START_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoLineStartWithSelection(); });
.addOnTriggered([this] { q->gotoLineStartWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_END_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoLineEndWithSelection(); });
.addOnTriggered([this] { q->gotoLineEndWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_LINE_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextLineWithSelection(); });
.addOnTriggered([this] { q->gotoNextLineWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_LINE_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousLineWithSelection(); });
.addOnTriggered([this] { q->gotoPreviousLineWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_CHARACTER_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousCharacterWithSelection(); });
.addOnTriggered([this] { q->gotoPreviousCharacterWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_CHARACTER_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextCharacterWithSelection(); });
.addOnTriggered([this] { q->gotoNextCharacterWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_WORD_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousWordWithSelection(); });
.addOnTriggered([this] { q->gotoPreviousWordWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextWordWithSelection(); });
.addOnTriggered([this] { q->gotoNextWordWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_WORD_CAMEL_CASE_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoPreviousWordCamelCaseWithSelection(); });
.addOnTriggered([this] { q->gotoPreviousWordCamelCaseWithSelection(); })
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD_CAMEL_CASE_WITH_SELECTION)
.setContext(m_editorContext)
.addOnTriggered([this] { q->gotoNextWordCamelCaseWithSelection(); });
.addOnTriggered([this] { q->gotoNextWordCamelCaseWithSelection(); })
.setScriptable(true);
// Collect additional modifying actions so we can check for them inside a readonly file
// and disable them

View File

@@ -354,354 +354,242 @@ void TextEditorPlugin::createStandardContextMenu()
void TextEditorPlugin::createEditorCommands()
{
using namespace Core::Constants;
ActionBuilder(this, UNDO).setText(Tr::tr("&Undo")).setScriptable(true);
ActionBuilder(this, REDO).setText(Tr::tr("&Redo")).setScriptable(true);
ActionBuilder(this, COPY).setScriptable(true);
ActionBuilder(this, CUT).setScriptable(true);
ActionBuilder(this, PASTE).setScriptable(true);
ActionBuilder(this, SELECTALL).setScriptable(true);
ActionBuilder(this, GOTO);
ActionBuilder(this, PRINT);
ActionBuilder(this, DELETE_LINE).setText(Tr::tr("Delete &Line")).setScriptable(true);
ActionBuilder(this, DELETE_END_OF_LINE)
.setText(Tr::tr("Delete Line from Cursor On"))
.setScriptable(true);
ActionBuilder(this, DELETE_END_OF_WORD)
.setText(Tr::tr("Delete Word from Cursor On"))
.setScriptable(true);
ActionBuilder(this, DELETE_LINE).setText(Tr::tr("Delete &Line"));
ActionBuilder(this, DELETE_END_OF_LINE).setText(Tr::tr("Delete Line from Cursor On"));
ActionBuilder(this, DELETE_END_OF_WORD).setText(Tr::tr("Delete Word from Cursor On"));
ActionBuilder(this, DELETE_END_OF_WORD_CAMEL_CASE)
.setText(Tr::tr("Delete Word Camel Case from Cursor On"))
.setScriptable(true);
.setText(Tr::tr("Delete Word Camel Case from Cursor On"));
ActionBuilder(this, DELETE_START_OF_LINE)
.setText(Tr::tr("Delete Line up to Cursor"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Ctrl+Backspace"), {});
ActionBuilder(this, DELETE_START_OF_WORD)
.setText(Tr::tr("Delete Word up to Cursor"))
.setScriptable(true);
ActionBuilder(this, DELETE_START_OF_WORD).setText(Tr::tr("Delete Word up to Cursor"));
ActionBuilder(this, DELETE_START_OF_WORD_CAMEL_CASE)
.setText(Tr::tr("Delete Word Camel Case up to Cursor"))
.setScriptable(true);
.setText(Tr::tr("Delete Word Camel Case up to Cursor"));
ActionBuilder(this, GOTO_BLOCK_START_WITH_SELECTION)
.setText(Tr::tr("Go to Block Start with Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+{")));
ActionBuilder(this, GOTO_BLOCK_END_WITH_SELECTION)
.setText(Tr::tr("Go to Block End with Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+}")));
ActionBuilder(this, MOVE_LINE_UP)
.setText(Tr::tr("Move Line Up"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+Up")));
ActionBuilder(this, MOVE_LINE_DOWN)
.setText(Tr::tr("Move Line Down"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+Down")));
ActionBuilder(this, COPY_LINE_UP)
.setText(Tr::tr("Copy Line Up"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Alt+Up")));
ActionBuilder(this, COPY_LINE_DOWN)
.setText(Tr::tr("Copy Line Down"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Alt+Down")));
ActionBuilder(this, JOIN_LINES)
.setText(Tr::tr("Join Lines"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+J")));
ActionBuilder(this, INSERT_LINE_ABOVE)
.setText(Tr::tr("Insert Line Above Current Line"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+Return")));
ActionBuilder(this, INSERT_LINE_BELOW)
.setText(Tr::tr("Insert Line Below Current Line"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Return")));
ActionBuilder(this, SWITCH_UTF8BOM)
.setText(Tr::tr("Delete Word up to Cursor"))
.setScriptable(true);
ActionBuilder(this, INDENT)
.setText(Tr::tr("Indent"))
.setScriptable(true);
ActionBuilder(this, UNINDENT)
.setText(Tr::tr("Unindent"))
.setScriptable(true);
ActionBuilder(this, SWITCH_UTF8BOM).setText(Tr::tr("Delete Word up to Cursor"));
ActionBuilder(this, INDENT).setText(Tr::tr("Indent"));
ActionBuilder(this, UNINDENT).setText(Tr::tr("Unindent"));
ActionBuilder(this, FOLLOW_SYMBOL_UNDER_CURSOR)
.setText(Tr::tr("Follow Symbol Under Cursor"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Qt::Key_F2));
ActionBuilder(this, FOLLOW_SYMBOL_UNDER_CURSOR_IN_NEXT_SPLIT)
.setText(Tr::tr("Follow Symbol Under Cursor in Next Split"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+E, F2"), Tr::tr("Ctrl+E, F2"));
ActionBuilder(this, FOLLOW_SYMBOL_TO_TYPE)
.setText(Tr::tr("Follow Type Under Cursor"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+F2")));
ActionBuilder(this, FOLLOW_SYMBOL_TO_TYPE_IN_NEXT_SPLIT)
.setText(Tr::tr("Follow Type Under Cursor in Next Split"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+E, Shift+F2"), Tr::tr("Ctrl+E, Ctrl+Shift+F2"));
ActionBuilder(this, FIND_USAGES)
.setText(Tr::tr("Find References to Symbol Under Cursor"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+U")));
ActionBuilder(this, RENAME_SYMBOL)
.setText(Tr::tr("Rename Symbol Under Cursor"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+R")));
ActionBuilder(this, JUMP_TO_FILE_UNDER_CURSOR)
.setText(Tr::tr("Jump to File Under Cursor"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Qt::Key_F2));
ActionBuilder(this, JUMP_TO_FILE_UNDER_CURSOR_IN_NEXT_SPLIT)
.setText(Tr::tr("Jump to File Under Cursor in Next Split"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+E, F2"), Tr::tr("Ctrl+E, F2"));
ActionBuilder(this, OPEN_CALL_HIERARCHY)
.setText(Tr::tr("Open Call Hierarchy"))
.setScriptable(true);
ActionBuilder(this, OPEN_CALL_HIERARCHY).setText(Tr::tr("Open Call Hierarchy"));
ActionBuilder(this, OPEN_TYPE_HIERARCHY)
.setText(Tr::tr("Open Type Hierarchy"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+Shift+T"), Tr::tr("Ctrl+Shift+T"));
ActionBuilder(this, VIEW_PAGE_UP)
.setText(Tr::tr("Move the View a Page Up and Keep the Cursor Position"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+PgUp")));
ActionBuilder(this, VIEW_PAGE_DOWN)
.setText(Tr::tr("Move the View a Page Down and Keep the Cursor Position"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+PgDown")));
ActionBuilder(this, VIEW_LINE_UP)
.setText(Tr::tr("Move the View a Line Up and Keep the Cursor Position"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Up")));
ActionBuilder(this, VIEW_LINE_DOWN)
.setText(Tr::tr("Move the View a Line Down and Keep the Cursor Position"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Down")));
ActionManager::actionContainer(M_EDIT);
ActionBuilder(this, SELECT_ENCODING)
.setText(Tr::tr("Select Encoding..."))
.setScriptable(false)
.addToContainer(M_EDIT, G_EDIT_OTHER);
ActionBuilder(this, CIRCULAR_PASTE)
.setText(Tr::tr("Paste from Clipboard History"))
.setScriptable(false)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+V")))
.addToContainer(M_EDIT, G_EDIT_COPYPASTE);
ActionBuilder(this, NO_FORMAT_PASTE)
.setText(Tr::tr("Paste Without Formatting"))
.setScriptable(false)
.setDefaultKeySequence(Tr::tr("Ctrl+Alt+Shift+V"), QString())
.addToContainer(M_EDIT, G_EDIT_COPYPASTE);
ActionManager::actionContainer(M_EDIT_ADVANCED);
ActionBuilder(this, AUTO_INDENT_SELECTION)
.setText(Tr::tr("Auto-&indent Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+I")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, AUTO_FORMAT_SELECTION)
.setText(Tr::tr("Auto-&format Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+;")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, REWRAP_PARAGRAPH)
.setText(Tr::tr("&Rewrap Paragraph"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+E, R"), Tr::tr("Ctrl+E, R"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, VISUALIZE_WHITESPACE)
.setText(Tr::tr("&Visualize Whitespace"))
.setScriptable(false)
.setDefaultKeySequence(Tr::tr("Meta+E, Meta+V"), Tr::tr("Ctrl+E, Ctrl+V"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, CLEAN_WHITESPACE)
.setText(Tr::tr("Clean Whitespace"))
.setScriptable(true)
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, TEXT_WRAPPING)
.setText(Tr::tr("Enable Text &Wrapping"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+E, Meta+W"), Tr::tr("Ctrl+E, Ctrl+W"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT)
.setCheckable(true);
ActionBuilder(this, UN_COMMENT_SELECTION)
.setText(Tr::tr("Toggle Comment &Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+/")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT);
ActionBuilder(this, CUT_LINE)
.setText(Tr::tr("Cut &Line"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Shift+Del")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, COPY_LINE)
.setText(Tr::tr("Copy &Line"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Ins")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, COPY_WITH_HTML)
.setText(Tr::tr("Copy With Highlighting"))
.setScriptable(true)
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, ADD_CURSORS_TO_LINE_ENDS)
.setText(Tr::tr("Create Cursors at Selected Line Ends"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Alt+Shift+I")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, ADD_SELECT_NEXT_FIND_MATCH)
.setText(Tr::tr("Add Next Occurrence to Selection"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+D")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, DUPLICATE_SELECTION)
.setText(Tr::tr("&Duplicate Selection"))
.setScriptable(true)
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, DUPLICATE_SELECTION_AND_COMMENT)
.setText(Tr::tr("&Duplicate Selection and Comment"))
.setScriptable(true)
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, UPPERCASE_SELECTION)
.setText(Tr::tr("Uppercase Selection"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+Shift+U"), Tr::tr("Alt+Shift+U"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, LOWERCASE_SELECTION)
.setText(Tr::tr("Lowercase Selection"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+U"), Tr::tr("Alt+U"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, SORT_LINES)
.setText(Tr::tr("Sort Lines"))
.setScriptable(true)
.setDefaultKeySequence(Tr::tr("Meta+Shift+S"), Tr::tr("Alt+Shift+S"))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_TEXT);
ActionBuilder(this, FOLD)
.setText(Tr::tr("Fold"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+<")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_COLLAPSING);
ActionBuilder(this, UNFOLD)
.setText(Tr::tr("Unfold"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+>")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_COLLAPSING);
ActionBuilder(this, UNFOLD_ALL)
.setText(Tr::tr("Toggle &Fold All"))
.setScriptable(true)
.addToContainer(M_EDIT_ADVANCED, G_EDIT_COLLAPSING);
ActionBuilder(this, INCREASE_FONT_SIZE)
.setText(Tr::tr("Increase Font Size"))
.setScriptable(false)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl++")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FONT);
ActionBuilder(this, DECREASE_FONT_SIZE)
.setText(Tr::tr("Decrease Font Size"))
.setScriptable(false)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+-")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FONT);
ActionBuilder(this, RESET_FONT_SIZE)
.setText(Tr::tr("Reset Font Size"))
.setScriptable(false)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+0")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_FONT);
ActionBuilder(this, GOTO_BLOCK_START)
.setText(Tr::tr("Go to Block Start"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+[")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_BLOCKS);
ActionBuilder(this, GOTO_BLOCK_END)
.setText(Tr::tr("Go to Block End"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+]")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_BLOCKS);
ActionBuilder(this, SELECT_BLOCK_UP)
.setText(Tr::tr("Select Block Up"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+U")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_BLOCKS);
ActionBuilder(this, SELECT_BLOCK_DOWN)
.setText(Tr::tr("Select Block Down"))
.setScriptable(true)
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+Alt+U")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_BLOCKS);
ActionBuilder(this, SELECT_WORD_UNDER_CURSOR)
.setText(Tr::tr("Select Word Under Cursor"))
.setScriptable(true);
ActionBuilder(this, SELECT_WORD_UNDER_CURSOR).setText(Tr::tr("Select Word Under Cursor"));
ActionBuilder(this, GOTO_DOCUMENT_START)
.setText(Tr::tr("Go to Document Start"))
.setScriptable(true);
ActionBuilder(this, GOTO_DOCUMENT_END)
.setText(Tr::tr("Go to Document End"))
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_START)
.setText(Tr::tr("Go to Line Start"))
.setScriptable(true);
ActionBuilder(this, GOTO_LINE_END)
.setText(Tr::tr("Go to Line End"))
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_LINE)
.setText(Tr::tr("Go to Next Line"))
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_LINE)
.setText(Tr::tr("Go to Previous Line"))
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_CHARACTER)
.setText(Tr::tr("Go to Previous Character"))
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_CHARACTER)
.setText(Tr::tr("Go to Next Character"))
.setScriptable(true);
ActionBuilder(this, GOTO_PREVIOUS_WORD)
.setText(Tr::tr("Go to Previous Word"))
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD)
.setText(Tr::tr("Go to Next Word"))
.setScriptable(true);
ActionBuilder(this, GOTO_DOCUMENT_START).setText(Tr::tr("Go to Document Start"));
ActionBuilder(this, GOTO_DOCUMENT_END).setText(Tr::tr("Go to Document End"));
ActionBuilder(this, GOTO_LINE_START).setText(Tr::tr("Go to Line Start"));
ActionBuilder(this, GOTO_LINE_END).setText(Tr::tr("Go to Line End"));
ActionBuilder(this, GOTO_NEXT_LINE).setText(Tr::tr("Go to Next Line"));
ActionBuilder(this, GOTO_PREVIOUS_LINE).setText(Tr::tr("Go to Previous Line"));
ActionBuilder(this, GOTO_PREVIOUS_CHARACTER).setText(Tr::tr("Go to Previous Character"));
ActionBuilder(this, GOTO_NEXT_CHARACTER).setText(Tr::tr("Go to Next Character"));
ActionBuilder(this, GOTO_PREVIOUS_WORD).setText(Tr::tr("Go to Previous Word"));
ActionBuilder(this, GOTO_NEXT_WORD).setText(Tr::tr("Go to Next Word"));
ActionBuilder(this, GOTO_PREVIOUS_WORD_CAMEL_CASE)
.setText(Tr::tr("Go to Previous Word (Camel Case)"))
.setScriptable(true);
ActionBuilder(this, GOTO_NEXT_WORD_CAMEL_CASE)
.setText(Tr::tr("Go to Next Word (Camel Case)"))
.setScriptable(true);
.setText(Tr::tr("Go to Previous Word (Camel Case)"));
ActionBuilder(this, GOTO_NEXT_WORD_CAMEL_CASE).setText(Tr::tr("Go to Next Word (Camel Case)"));
ActionBuilder(this, GOTO_LINE_START_WITH_SELECTION)
.setText(Tr::tr("Go to Line Start with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Line Start with Selection"));
ActionBuilder(this, GOTO_LINE_END_WITH_SELECTION)
.setText(Tr::tr("Go to Line End with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Line End with Selection"));
ActionBuilder(this, GOTO_NEXT_LINE_WITH_SELECTION)
.setText(Tr::tr("Go to Next Line with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Next Line with Selection"));
ActionBuilder(this, GOTO_PREVIOUS_LINE_WITH_SELECTION)
.setText(Tr::tr("Go to Previous Line with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Previous Line with Selection"));
ActionBuilder(this, GOTO_PREVIOUS_CHARACTER_WITH_SELECTION)
.setText(Tr::tr("Go to Previous Character with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Previous Character with Selection"));
ActionBuilder(this, GOTO_NEXT_CHARACTER_WITH_SELECTION)
.setText(Tr::tr("Go to Next Character with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Next Character with Selection"));
ActionBuilder(this, GOTO_PREVIOUS_WORD_WITH_SELECTION)
.setText(Tr::tr("Go to Previous Word with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Previous Word with Selection"));
ActionBuilder(this, GOTO_NEXT_WORD_WITH_SELECTION)
.setText(Tr::tr("Go to Next Word with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Next Word with Selection"));
ActionBuilder(this, GOTO_PREVIOUS_WORD_CAMEL_CASE_WITH_SELECTION)
.setText(Tr::tr("Go to Previous Word (Camel Case) with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Previous Word (Camel Case) with Selection"));
ActionBuilder(this, GOTO_NEXT_WORD_CAMEL_CASE_WITH_SELECTION)
.setText(Tr::tr("Go to Next Word (Camel Case) with Selection"))
.setScriptable(true);
.setText(Tr::tr("Go to Next Word (Camel Case) with Selection"));
}
} // namespace TextEditor::Internal