summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio/Palettes
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2019-12-30 12:29:08 +0200
committerTomi Korpipaa <tomi.korpipaa@qt.io>2019-12-31 10:06:24 +0200
commitc88b250e2fc6b6cdb397747860bab18900fe9219 (patch)
treeb5710a6e5c7404d64ad980761c882fb765c724f4 /src/Authoring/Qt3DStudio/Palettes
parent54785b2bf2e26fb3a3dd9a050382db5f679f8907 (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')
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerGenericFloat.qml4
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXY.qml6
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZ.qml9
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyBaseXYZW.qml11
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZ.qml4
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/HandlerPropertyXYZW.qml4
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp11
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h2
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlView.qml24
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/controls/FloatTextField.qml9
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();
}
}
}