forked from qt-creator/qt-creator
QmlDesigner: Fix 3D split preset display issues
Checkmark will now show correct split mode when switching between two different 3D scenes if they have different split modes. Also, clicking already checked mode will not uncheck it. Fixes: QDS-15334 Change-Id: I6ec9b24e95ce5f118cb8497958b4270f30b9bfd2 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
@@ -275,6 +275,11 @@ void Edit3DView::updateActiveScene3D(const QVariantMap &sceneState)
|
||||
else
|
||||
m_syncEnvBackgroundAction->action()->setChecked(false);
|
||||
|
||||
if (sceneState.contains(activePresetKey))
|
||||
syncActivePresetCheckedState(sceneState[activePresetKey].toString());
|
||||
else
|
||||
syncActivePresetCheckedState("Single");
|
||||
|
||||
// Selection context change updates visible and enabled states
|
||||
SelectionContext selectionContext(this);
|
||||
selectionContext.setUpdateMode(SelectionContext::UpdateMode::Fast);
|
||||
@@ -731,6 +736,8 @@ void Edit3DView::createViewportPresetActions()
|
||||
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);
|
||||
};
|
||||
@@ -912,6 +919,15 @@ void Edit3DView::syncCameraSpeedToNewView()
|
||||
setCameraSpeedAuxData(speed, multiplier);
|
||||
}
|
||||
|
||||
void Edit3DView::syncActivePresetCheckedState(const QString &preset)
|
||||
{
|
||||
m_viewportPresetSingleAction->action()->setChecked(preset == "Single");
|
||||
m_viewportPresetQuadAction->action()->setChecked(preset == "Quad");
|
||||
m_viewportPreset3Left1RightAction->action()->setChecked(preset == "3Left1Right");
|
||||
m_viewportPreset2HorizontalAction->action()->setChecked(preset == "2Horizontal");
|
||||
m_viewportPreset2VerticalAction->action()->setChecked(preset == "2Vertical");
|
||||
}
|
||||
|
||||
QmlObjectNode Edit3DView::currentSceneEnv()
|
||||
{
|
||||
PropertyName envProp{"environment"};
|
||||
|
@@ -151,6 +151,7 @@ private:
|
||||
void createViewportPresetActions();
|
||||
void createSeekerSliderAction();
|
||||
void syncCameraSpeedToNewView();
|
||||
void syncActivePresetCheckedState(const QString &preset);
|
||||
QmlObjectNode currentSceneEnv();
|
||||
void storeCurrentSceneEnvironment();
|
||||
|
||||
|
Reference in New Issue
Block a user