diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2019-12-30 12:29:08 +0200 |
---|---|---|
committer | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2019-12-31 10:06:24 +0200 |
commit | c88b250e2fc6b6cdb397747860bab18900fe9219 (patch) | |
tree | b5710a6e5c7404d64ad980761c882fb765c724f4 /src/Authoring/Qt3DStudio/Palettes | |
parent | 54785b2bf2e26fb3a3dd9a050382db5f679f8907 (diff) |
Fix inspector undo and redo for float fields
Fixes: QT3DS-4000
Change-Id: I0bb5d230ac0a2dc7e968e406275707197bb03d8e
Reviewed-by: Janne Kangas <janne.kangas@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes')
10 files changed, 84 insertions, 0 deletions
diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerGenericFloat.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerGenericFloat.qml index 11ac38a5..edc66c14 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerGenericFloat.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerGenericFloat.qml @@ -42,6 +42,8 @@ RowLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo onValueChanged: { // FloatTextField can set its text internally, thus breaking the binding, so @@ -59,5 +61,7 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXY.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXY.qml index 4406703f..e22bda8c 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXY.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXY.qml @@ -44,6 +44,8 @@ RowLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo spacing: 0 @@ -59,6 +61,8 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } Item { width: 20 } @@ -75,6 +79,8 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZ.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZ.qml index 50440dba..2ffa84bb 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZ.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZ.qml @@ -46,6 +46,9 @@ RowLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo + transformOrigin: Item.Center spacing: 0 @@ -61,6 +64,8 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } Item { width: 10 } @@ -77,6 +82,8 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } Item { width: 10 } @@ -93,6 +100,8 @@ RowLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZW.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZW.qml index 53ee4c33..d5d2b483 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZW.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZW.qml @@ -48,6 +48,9 @@ ColumnLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo + transformOrigin: Item.Center spacing: 0 @@ -67,6 +70,8 @@ ColumnLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } Item { width: 10 } @@ -83,6 +88,8 @@ ColumnLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } Item { width: 10 } @@ -99,6 +106,8 @@ ColumnLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } @@ -121,6 +130,8 @@ ColumnLayout { decimalValue: numberOfDecimal onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZ.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZ.qml index 6571f1d0..a123d7ad 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZ.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZ.qml @@ -47,6 +47,8 @@ RowLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo StyledLabel { id: labelItem @@ -60,5 +62,7 @@ RowLayout { onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZW.qml b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZW.qml index 0c098d53..82adb6aa 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZW.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZW.qml @@ -49,6 +49,8 @@ RowLayout { signal editingFinished signal previewValueChanged + signal triggerUndo + signal triggerRedo StyledLabel { id: labelItem @@ -62,5 +64,7 @@ RowLayout { onEditingFinished: root.editingFinished() onPreviewValueChanged: root.previewValueChanged() + onTriggerUndo: root.triggerUndo() + onTriggerRedo: root.triggerRedo() } } diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp index 8912097b..3d774108 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp +++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp @@ -28,6 +28,7 @@ #include "InspectorControlModel.h" #include "StudioApp.h" +#include "MainFrm.h" #include "Core.h" #include "Doc.h" #include "InspectorGroup.h" @@ -2073,6 +2074,16 @@ QHash<int, QByteArray> InspectorControlModel::roleNames() const return names; } +void InspectorControlModel::undo() +{ + g_StudioApp.m_pMainWnd->OnEditUndo(); +} + +void InspectorControlModel::redo() +{ + g_StudioApp.m_pMainWnd->OnEditRedo(); +} + InspectorControlBase::~InspectorControlBase() { } diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h index 43b08207..454d4645 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h +++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h @@ -163,6 +163,8 @@ public: Q_INVOKABLE void duplicateMaterial(); Q_INVOKABLE bool isGroupCollapsed(int groupIdx) const; Q_INVOKABLE void updateGroupCollapseState(int groupIdx, bool state); + Q_INVOKABLE void undo(); + Q_INVOKABLE void redo(); private: struct GroupInspectorControl diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlView.qml b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlView.qml index 99ed21cf..3d7be060 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlView.qml +++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlView.qml @@ -703,6 +703,12 @@ Rectangle { Qt.vector4d(valueX, valueY, valueZ, valueW), false); } + onTriggerUndo: { + _inspectorModel.undo(); + } + onTriggerRedo: { + _inspectorModel.redo(); + } } } } @@ -740,6 +746,12 @@ Rectangle { _inspectorModel.setPropertyValue(parent.instance, parent.handle, Qt.vector3d(valueX, valueY, valueZ), false); } + onTriggerUndo: { + _inspectorModel.undo(); + } + onTriggerRedo: { + _inspectorModel.redo(); + } } } } @@ -774,6 +786,12 @@ Rectangle { _inspectorModel.setPropertyValue(parent.instance, parent.handle, Qt.vector2d(valueX, valueY), false); } + onTriggerUndo: { + _inspectorModel.undo(); + } + onTriggerRedo: { + _inspectorModel.redo(); + } } } } @@ -810,6 +828,12 @@ Rectangle { _inspectorModel.setPropertyValue(parent.instance, parent.handle, Number(text), true); } + onTriggerUndo: { + _inspectorModel.undo(); + } + onTriggerRedo: { + _inspectorModel.redo(); + } } } } diff --git a/src/Authoring/Qt3DStudio/Palettes/controls/FloatTextField.qml b/src/Authoring/Qt3DStudio/Palettes/controls/FloatTextField.qml index 95458889..dbeb81ea 100644 --- a/src/Authoring/Qt3DStudio/Palettes/controls/FloatTextField.qml +++ b/src/Authoring/Qt3DStudio/Palettes/controls/FloatTextField.qml @@ -38,6 +38,8 @@ TextField { property bool ignoreHotkeys: true signal previewValueChanged + signal triggerUndo + signal triggerRedo selectByMouse: true text: "0.000" @@ -198,6 +200,13 @@ TextField { if (!rateLimiter.running) rateLimiter.start(); + } else if ((event.modifiers & Qt.ControlModifier) + && !(event.modifiers & Qt.ShiftModifier)) { + // Undo & redo handling (QT3DS-4000) + if (event.key === Qt.Key_Z) + floatTextFieldId.triggerUndo(); + else if (event.key === Qt.Key_Y) + floatTextFieldId.triggerRedo(); } } } |