Editor: enable optional actions per editor

Use an additional action mask to enable actions like find usage and
rename symbol per editor instance.

Change-Id: Iabee1820d0f3c156ad30ba760bfce9f6181045e6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2020-06-15 12:40:08 +02:00
parent bdc8411af5
commit 5f91985931
3 changed files with 27 additions and 7 deletions

View File

@@ -543,20 +543,23 @@ void TextEditorActionHandlerPrivate::updateActions()
void TextEditorActionHandlerPrivate::updateOptionalActions()
{
uint optionalActions = m_optionalActions;
if (m_currentEditorWidget)
optionalActions |= m_currentEditorWidget->optionalActionMask();
m_followSymbolAction->setEnabled(
m_optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
m_followSymbolInNextSplitAction->setEnabled(
m_optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
optionalActions & TextEditorActionHandler::FollowSymbolUnderCursor);
m_jumpToFileAction->setEnabled(
m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
m_jumpToFileInNextSplitAction->setEnabled(
m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
m_unfoldAllAction->setEnabled(
m_optionalActions & TextEditorActionHandler::UnCollapseAll);
optionalActions & TextEditorActionHandler::UnCollapseAll);
m_renameSymbolAction->setEnabled(
m_optionalActions & TextEditorActionHandler::RenameSymbol);
optionalActions & TextEditorActionHandler::RenameSymbol);
bool formatEnabled = (m_optionalActions & TextEditorActionHandler::Format)
bool formatEnabled = (optionalActions & TextEditorActionHandler::Format)
&& m_currentEditorWidget && !m_currentEditorWidget->isReadOnly();
m_autoIndentAction->setEnabled(formatEnabled);
m_autoFormatAction->setEnabled(formatEnabled);
@@ -599,6 +602,8 @@ void TextEditorActionHandlerPrivate::updateCurrentEditor(Core::IEditor *editor)
this, &TextEditorActionHandlerPrivate::updateCopyAction);
connect(editorWidget, &TextEditorWidget::readOnlyChanged,
this, &TextEditorActionHandlerPrivate::updateActions);
connect(editorWidget, &TextEditorWidget::optionalActionMaskChanged,
this, &TextEditorActionHandlerPrivate::updateOptionalActions);
}
updateActions();
}