From e66b19d4c4ac591bddfaee26b7ad283690cb9149 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 12 Feb 2024 17:06:34 +0200 Subject: [PATCH] EffectComposer: Add confirmation dialog to clear all effect nodes Fixes: QDS-11445 Change-Id: Iedd41e2799148c6d8f4eb3bca77dd5f1b7b053e6 Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Mahmoud Badri --- .../ConfirmClearAllDialog.qml | 47 +++++++++++++++++++ .../EffectComposer.qml | 12 ++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml new file mode 100644 index 00000000000..146f7edef1b --- /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 95ab2c49bd4..7b4d8d04cf1 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 {