From cfc3a2653ce257e9a857ee81c3ddfc0f898cd391 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 9 May 2025 17:03:55 +0300 Subject: [PATCH] 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 --- .../qtcreator/qmldesigner/designericons.json | 4 +- .../components/componentcore/designericons.h | 2 +- .../components/edit3d/edit3dview.cpp | 40 ++++++++++--------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/share/qtcreator/qmldesigner/designericons.json b/share/qtcreator/qmldesigner/designericons.json index d52b2b531e2..0de867de2d8 100644 --- a/share/qtcreator/qmldesigner/designericons.json +++ b/share/qtcreator/qmldesigner/designericons.json @@ -316,8 +316,8 @@ "SnappingConfIcon": { "iconName": "snapping_conf_medium" }, - "SplitViewIcon": { - "iconName": "splitScreen_medium" + "MultiViewPortIcon": { + "iconName": "multi_viewport_2x2_medium" }, "SyncIcon": { "iconName": "updateContent_medium" diff --git a/src/plugins/qmldesigner/components/componentcore/designericons.h b/src/plugins/qmldesigner/components/componentcore/designericons.h index 02340c2069d..d4ddc222fe4 100644 --- a/src/plugins/qmldesigner/components/componentcore/designericons.h +++ b/src/plugins/qmldesigner/components/componentcore/designericons.h @@ -92,6 +92,7 @@ public: ModelPlaneIcon, ModelSphereIcon, MoveToolIcon, + MultiViewPortIcon, MultiViewPort1Icon, MultiViewPort2hlIcon, MultiViewPort2vlIcon, @@ -112,7 +113,6 @@ public: SimpleCheckIcon, SnappingIcon, SnappingConfIcon, - SplitViewIcon, SyncIcon, TimelineIcon, ToggleGroupIcon, diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp index c21883b2299..3555a4bc3df 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp @@ -727,17 +727,16 @@ void Edit3DView::createSyncEnvBackgroundAction() void Edit3DView::createViewportPresetActions() { auto createViewportPresetAction = [this](std::unique_ptr &targetAction, - const QByteArray &id, - const QString &label, - bool isChecked) { - auto operation = [this, &targetAction, label](const SelectionContext &) { - for (Edit3DAction *action : std::as_const(m_viewportPresetActions)) { - if (action->menuId() != targetAction->menuId()) - action->action()->setChecked(false); - else - action->action()->setChecked(true); - } - emitView3DAction(View3DActionType::ViewportPreset, label); + const QByteArray &id, + const QString &label, + const QString &opCode, + const QIcon &icon, + bool isChecked) { + auto operation = [this, &targetAction, opCode](const SelectionContext &) { + for (Edit3DAction *action : std::as_const(m_viewportPresetActions)) + action->action()->setChecked(action->menuId() == targetAction->menuId()); + + emitView3DAction(View3DActionType::ViewportPreset, opCode); }; targetAction = std::make_unique( @@ -747,16 +746,21 @@ void Edit3DView::createViewportPresetActions() QKeySequence(), true, isChecked, - QIcon(), + icon, this, operation); }; - createViewportPresetAction(m_viewportPresetSingleAction, Constants::EDIT3D_PRESET_SINGLE, "Single", true); - createViewportPresetAction(m_viewportPresetQuadAction, Constants::EDIT3D_PRESET_QUAD, "Quad", false); - createViewportPresetAction(m_viewportPreset3Left1RightAction, Constants::EDIT3D_PRESET_3LEFT1RIGHT, "3Left1Right", false); - createViewportPresetAction(m_viewportPreset2HorizontalAction, Constants::EDIT3D_PRESET_2HORIZONTAL, "2Horizontal", false); - createViewportPresetAction(m_viewportPreset2VerticalAction, Constants::EDIT3D_PRESET_2VERTICAL, "2Vertical", false); + createViewportPresetAction(m_viewportPresetSingleAction, Constants::EDIT3D_PRESET_SINGLE, + Tr::tr("Single"), "Single", contextIcon(DesignerIcons::MultiViewPort1Icon), true); + createViewportPresetAction(m_viewportPresetQuadAction, Constants::EDIT3D_PRESET_QUAD, + Tr::tr("Quad"), "Quad", contextIcon(DesignerIcons::MultiViewPort2x2Icon), 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_viewportPresetQuadAction.get(); @@ -1395,7 +1399,7 @@ void Edit3DView::createEdit3DActions() QKeySequence(), false, false, - toolbarIcon(DesignerIcons::SplitViewIcon), + toolbarIcon(DesignerIcons::MultiViewPortIcon), this, viewportPresetsActionTrigger);