diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2024-02-12 17:06:34 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2024-02-12 15:52:34 +0000 |
commit | e66b19d4c4ac591bddfaee26b7ad283690cb9149 (patch) | |
tree | 4cb70c6564e248f88973fd7c151cb82a76bb87f6 | |
parent | 93993c322e7f8b832e63cb131813d567a5352fdd (diff) |
EffectComposer: Add confirmation dialog to clear all effect nodes
Fixes: QDS-11445
Change-Id: Iedd41e2799148c6d8f4eb3bca77dd5f1b7b053e6
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
-rw-r--r-- | share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml | 47 | ||||
-rw-r--r-- | share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml | 12 |
2 files changed, 58 insertions, 1 deletions
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml new file mode 100644 index 0000000000..146f7edef1 --- /dev/null +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml @@ -0,0 +1,47 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Controls +import HelperWidgets as HelperWidgets +import StudioControls as StudioControls +import StudioTheme as StudioTheme +import EffectComposerBackend + +StudioControls.Dialog { + id: root + + title: qsTr("Confirm clear list") + + closePolicy: Popup.CloseOnEscape + modal: true + implicitWidth: 270 + implicitHeight: 150 + + contentItem: Item { + Text { + text: qsTr("You are about to clear the list of effect nodes.\n\nThis can not be undone.") + color: StudioTheme.Values.themeTextColor + } + + Row { + anchors.right: parent.right + anchors.bottom: parent.bottom + spacing: 2 + + HelperWidgets.Button { + text: qsTr("Clear") + onClicked: { + EffectComposerBackend.effectComposerModel.clear() + root.accept() + } + } + + HelperWidgets.Button { + anchors.bottom: parent.bottom + text: qsTr("Cancel") + onClicked: root.reject() + } + } + } +} diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml index 95ab2c49bd..7b4d8d04cf 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml @@ -65,6 +65,11 @@ ColumnLayout { } } + ConfirmClearAllDialog { + id: confirmClearAllDialog + anchors.centerIn: parent + } + EffectComposerTopBar { Layout.fillWidth: true @@ -157,7 +162,12 @@ ColumnLayout { tooltip: qsTr("Remove all effect nodes.") enabled: !root.backendModel.isEmpty - onClicked: root.backendModel.clear() + onClicked: { + if (root.backendModel.hasUnsavedChanges) + confirmClearAllDialog.open() + else + root.backendModel.clear() + } } HelperWidgets.AbstractButton { |