Files
qt-creator/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml
Ali Kianian 34f51df1ea QmlDesigner: Add code editor for Effect Composer
Task-number: QDS-13443
Change-Id: I02c7a85336f283e0e55bab24459a91fa299abb40
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2024-10-07 08:00:11 +00:00

110 lines
4.0 KiB
QML

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
Rectangle {
id: root
height: StudioTheme.Values.toolbarHeight
color: StudioTheme.Values.themeToolbarBackground
readonly property var backendModel: EffectComposerBackend.effectComposerModel
signal addClicked
signal saveClicked
signal saveAsClicked
signal assignToSelectedClicked
signal openShadersCodeEditor
Row {
spacing: 5
anchors.verticalCenter: parent.verticalCenter
HelperWidgets.AbstractButton {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.add_medium
tooltip: qsTr("Add new composition")
enabled: root.backendModel ? root.backendModel.isEnabled : false
onClicked: root.addClicked()
}
HelperWidgets.AbstractButton {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.save_medium
tooltip: qsTr("Save current composition")
enabled: root.backendModel ? root.backendModel.isEnabled
&& (root.backendModel.hasUnsavedChanges
|| root.backendModel.currentComposition === "")
: false
onClicked: root.saveClicked()
}
HelperWidgets.AbstractButton {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.saveAs_medium
tooltip: qsTr("Save current composition with a new name")
enabled: root.backendModel ? root.backendModel.isEnabled
&& root.backendModel.currentComposition !== ""
: false
onClicked: root.saveAsClicked()
}
HelperWidgets.AbstractButton {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.codeEditor_medium
tooltip: qsTr("Open Code")
enabled: root.backendModel ? root.backendModel.isEnabled
&& root.backendModel.currentComposition !== ""
: false
onClicked: root.openShadersCodeEditor()
}
HelperWidgets.AbstractButton {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.assignTo_medium
tooltip: qsTr("Assign current composition to selected item")
enabled: root.backendModel ? root.backendModel.hasValidTarget
&& root.backendModel.isEnabled
&& root.backendModel.currentComposition !== ""
: false
onClicked: root.assignToSelectedClicked()
}
}
Text {
readonly property string compName: root.backendModel ? root.backendModel.currentComposition
: ""
text: compName !== "" ? compName : qsTr("Untitled")
anchors.centerIn: parent
color: StudioTheme.Values.themeTextColor
}
HelperWidgets.AbstractButton {
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 5
anchors.right: parent.right
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.help
tooltip: qsTr("How to use Effect Composer:
1. Click \"+ Add Effect\" to add effect node
2. Adjust the effect nodes properties
3. Change the order of the effects, if you like
4. See the preview
5. Save in the assets library, if you wish to reuse the effect later")
onClicked: Qt.openUrlExternally("https://doc.qt.io/qtdesignstudio/qtquick-effect-composer-view.html")
}
}