QmlDesigner: Use icons instead of checkboxes for split 3D view menu

Each preset action now has separate on and off state icons.

Fixes: QDS-15294
Change-Id: Icd751f5370b1da697fbce82373a025232876e5e3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Miikka Heikkinen
2025-05-09 17:03:55 +03:00
committed by Mahmoud Badri
parent f8f093944d
commit cfc3a2653c
3 changed files with 25 additions and 21 deletions

View File

@@ -316,8 +316,8 @@
"SnappingConfIcon": { "SnappingConfIcon": {
"iconName": "snapping_conf_medium" "iconName": "snapping_conf_medium"
}, },
"SplitViewIcon": { "MultiViewPortIcon": {
"iconName": "splitScreen_medium" "iconName": "multi_viewport_2x2_medium"
}, },
"SyncIcon": { "SyncIcon": {
"iconName": "updateContent_medium" "iconName": "updateContent_medium"

View File

@@ -92,6 +92,7 @@ public:
ModelPlaneIcon, ModelPlaneIcon,
ModelSphereIcon, ModelSphereIcon,
MoveToolIcon, MoveToolIcon,
MultiViewPortIcon,
MultiViewPort1Icon, MultiViewPort1Icon,
MultiViewPort2hlIcon, MultiViewPort2hlIcon,
MultiViewPort2vlIcon, MultiViewPort2vlIcon,
@@ -112,7 +113,6 @@ public:
SimpleCheckIcon, SimpleCheckIcon,
SnappingIcon, SnappingIcon,
SnappingConfIcon, SnappingConfIcon,
SplitViewIcon,
SyncIcon, SyncIcon,
TimelineIcon, TimelineIcon,
ToggleGroupIcon, ToggleGroupIcon,

View File

@@ -727,17 +727,16 @@ void Edit3DView::createSyncEnvBackgroundAction()
void Edit3DView::createViewportPresetActions() void Edit3DView::createViewportPresetActions()
{ {
auto createViewportPresetAction = [this](std::unique_ptr<Edit3DAction> &targetAction, auto createViewportPresetAction = [this](std::unique_ptr<Edit3DAction> &targetAction,
const QByteArray &id, const QByteArray &id,
const QString &label, const QString &label,
bool isChecked) { const QString &opCode,
auto operation = [this, &targetAction, label](const SelectionContext &) { const QIcon &icon,
for (Edit3DAction *action : std::as_const(m_viewportPresetActions)) { bool isChecked) {
if (action->menuId() != targetAction->menuId()) auto operation = [this, &targetAction, opCode](const SelectionContext &) {
action->action()->setChecked(false); for (Edit3DAction *action : std::as_const(m_viewportPresetActions))
else action->action()->setChecked(action->menuId() == targetAction->menuId());
action->action()->setChecked(true);
} emitView3DAction(View3DActionType::ViewportPreset, opCode);
emitView3DAction(View3DActionType::ViewportPreset, label);
}; };
targetAction = std::make_unique<Edit3DAction>( targetAction = std::make_unique<Edit3DAction>(
@@ -747,16 +746,21 @@ void Edit3DView::createViewportPresetActions()
QKeySequence(), QKeySequence(),
true, true,
isChecked, isChecked,
QIcon(), icon,
this, this,
operation); operation);
}; };
createViewportPresetAction(m_viewportPresetSingleAction, Constants::EDIT3D_PRESET_SINGLE, "Single", true); createViewportPresetAction(m_viewportPresetSingleAction, Constants::EDIT3D_PRESET_SINGLE,
createViewportPresetAction(m_viewportPresetQuadAction, Constants::EDIT3D_PRESET_QUAD, "Quad", false); Tr::tr("Single"), "Single", contextIcon(DesignerIcons::MultiViewPort1Icon), true);
createViewportPresetAction(m_viewportPreset3Left1RightAction, Constants::EDIT3D_PRESET_3LEFT1RIGHT, "3Left1Right", false); createViewportPresetAction(m_viewportPresetQuadAction, Constants::EDIT3D_PRESET_QUAD,
createViewportPresetAction(m_viewportPreset2HorizontalAction, Constants::EDIT3D_PRESET_2HORIZONTAL, "2Horizontal", false); Tr::tr("Quad"), "Quad", contextIcon(DesignerIcons::MultiViewPort2x2Icon), false);
createViewportPresetAction(m_viewportPreset2VerticalAction, Constants::EDIT3D_PRESET_2VERTICAL, "2Vertical", false); createViewportPresetAction(m_viewportPreset3Left1RightAction, Constants::EDIT3D_PRESET_3LEFT1RIGHT,
Tr::tr("3 Left 1 Right"), "3Left1Right", contextIcon(DesignerIcons::MultiViewPort3plus1Icon), false);
createViewportPresetAction(m_viewportPreset2HorizontalAction, Constants::EDIT3D_PRESET_2HORIZONTAL,
Tr::tr("2 Horizontal"), "2Horizontal", contextIcon(DesignerIcons::MultiViewPort2hlIcon), false);
createViewportPresetAction(m_viewportPreset2VerticalAction, Constants::EDIT3D_PRESET_2VERTICAL,
Tr::tr("2 Vertical"), "2Vertical", contextIcon(DesignerIcons::MultiViewPort2vlIcon), false);
m_viewportPresetActions << m_viewportPresetSingleAction.get(); m_viewportPresetActions << m_viewportPresetSingleAction.get();
m_viewportPresetActions << m_viewportPresetQuadAction.get(); m_viewportPresetActions << m_viewportPresetQuadAction.get();
@@ -1395,7 +1399,7 @@ void Edit3DView::createEdit3DActions()
QKeySequence(), QKeySequence(),
false, false,
false, false,
toolbarIcon(DesignerIcons::SplitViewIcon), toolbarIcon(DesignerIcons::MultiViewPortIcon),
this, this,
viewportPresetsActionTrigger); viewportPresetsActionTrigger);