Editor: Allow setting the optional action mask per editor

Instead of just enable actions that were disabled from the beginning you
can no disable optional actions.

Change-Id: I986b8a72523a8aeec9f4ccf76cd4921018ffc003
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2020-06-17 10:28:27 +02:00
parent c7db952648
commit aaa1376576
4 changed files with 22 additions and 8 deletions

View File

@@ -7828,15 +7828,22 @@ void TextEditorWidget::appendStandardContextMenuActions(QMenu *menu)
}
}
uint TextEditorWidget::optionalActionMask()
uint TextEditorWidget::optionalActions()
{
return d->m_optionalActionMask;
}
void TextEditorWidget::setOptionalActions(uint optionalActionMask)
{
if (d->m_optionalActionMask == optionalActionMask)
return;
d->m_optionalActionMask = optionalActionMask;
emit optionalActionMaskChanged();
}
void TextEditorWidget::addOptionalActions( uint optionalActionMask)
{
d->m_optionalActionMask |= optionalActionMask;
emit optionalActionMaskChanged();
setOptionalActions(d->m_optionalActionMask | optionalActionMask);
}
BaseTextEditor::BaseTextEditor()
@@ -8734,6 +8741,7 @@ BaseTextEditor *TextEditorFactoryPrivate::createEditorHelper(const TextDocumentP
textEditorWidget->setMarksVisible(m_marksVisible);
textEditorWidget->setParenthesesMatchingEnabled(m_paranthesesMatchinEnabled);
textEditorWidget->setCodeFoldingSupported(m_codeFoldingSupported);
textEditorWidget->setOptionalActions(m_textEditorActionHandler->optionalActions());
BaseTextEditor *editor = m_editorCreator();
editor->setDuplicateSupported(m_duplicatedSupported);

View File

@@ -204,8 +204,9 @@ public:
void appendStandardContextMenuActions(QMenu *menu);
uint optionalActionMask();
void addOptionalActions(uint optionalActionMask);
uint optionalActions();
void setOptionalActions(uint optionalActions);
void addOptionalActions(uint optionalActions);
void setAutoCompleter(AutoCompleter *autoCompleter);
AutoCompleter *autoCompleter() const;

View File

@@ -543,9 +543,8 @@ void TextEditorActionHandlerPrivate::updateActions()
void TextEditorActionHandlerPrivate::updateOptionalActions()
{
uint optionalActions = m_optionalActions;
if (m_currentEditorWidget)
optionalActions |= m_currentEditorWidget->optionalActionMask();
const uint optionalActions = m_currentEditorWidget ? m_currentEditorWidget->optionalActions()
: m_optionalActions;
m_followSymbolAction->setEnabled(
optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
m_followSymbolInNextSplitAction->setEnabled(
@@ -622,6 +621,11 @@ TextEditorActionHandler::TextEditorActionHandler(Core::Id editorId,
d->m_findTextWidget = TextEditorWidget::fromEditor;
}
uint TextEditorActionHandler::optionalActions() const
{
return d->m_optionalActions;
}
TextEditorActionHandler::~TextEditorActionHandler()
{
delete d;

View File

@@ -65,6 +65,7 @@ public:
uint optionalActions = None,
const TextEditorWidgetResolver &resolver = {});
uint optionalActions() const;
~TextEditorActionHandler();
private: