diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml index 519854d545f..800493d5f99 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml @@ -26,8 +26,16 @@ Item { saveChangesDialog.open() } + Connections { + target: EffectMakerBackend.effectMakerModel + function onIsEmptyChanged() { + if (EffectMakerBackend.effectMakerModel.isEmpty) + saveAsDialog.close() + } + } + SaveAsDialog { - id: saveDialog + id: saveAsDialog anchors.centerIn: parent } @@ -38,8 +46,8 @@ Item { onSave: { if (EffectMakerBackend.effectMakerModel.currentComposition === "") { // if current composition is unsaved, show save as dialog and clear afterwards - saveDialog.clearOnClose = true - saveDialog.open() + saveAsDialog.clearOnClose = true + saveAsDialog.open() } else { root.onSaveChangesCallback() } @@ -69,10 +77,12 @@ Item { let name = EffectMakerBackend.effectMakerModel.currentComposition if (name === "") - saveDialog.open() + saveAsDialog.open() else EffectMakerBackend.effectMakerModel.saveComposition(name) } + + onSaveAsClicked: saveAsDialog.open() } EffectMakerPreview { diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerPreview.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerPreview.qml index 9b58cd56bd2..4636159f481 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerPreview.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerPreview.qml @@ -84,17 +84,6 @@ Column { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - HelperWidgets.AbstractButton { - enabled: sourceImage.scale > .4 - style: StudioTheme.Values.viewBarButtonStyle - buttonIcon: StudioTheme.Constants.zoomOut_medium - tooltip: qsTr("Zoom out") - - onClicked: { - sourceImage.scale -= .2 - } - } - HelperWidgets.AbstractButton { enabled: sourceImage.scale < 2 style: StudioTheme.Values.viewBarButtonStyle @@ -106,6 +95,17 @@ Column { } } + HelperWidgets.AbstractButton { + enabled: sourceImage.scale > .4 + style: StudioTheme.Values.viewBarButtonStyle + buttonIcon: StudioTheme.Constants.zoomOut_medium + tooltip: qsTr("Zoom out") + + onClicked: { + sourceImage.scale -= .2 + } + } + HelperWidgets.AbstractButton { enabled: sourceImage.scale !== 1 style: StudioTheme.Values.viewBarButtonStyle diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerTopBar.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerTopBar.qml index 2c7ff15cd5e..f7816396a24 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerTopBar.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMakerTopBar.qml @@ -17,30 +17,40 @@ Rectangle { signal addClicked signal saveClicked + signal saveAsClicked - HelperWidgets.AbstractButton { - id: addButton - + Row { + spacing: 5 anchors.verticalCenter: parent.verticalCenter - x: 5 - style: StudioTheme.Values.viewBarButtonStyle - buttonIcon: StudioTheme.Constants.add_medium - tooltip: qsTr("Add new composition") - onClicked: root.addClicked() + HelperWidgets.AbstractButton { + style: StudioTheme.Values.viewBarButtonStyle + buttonIcon: StudioTheme.Constants.add_medium + tooltip: qsTr("Add new composition") + + onClicked: root.addClicked() + } + + HelperWidgets.AbstractButton { + style: StudioTheme.Values.viewBarButtonStyle + buttonIcon: StudioTheme.Constants.save_medium + tooltip: qsTr("Save current composition") + enabled: EffectMakerBackend.effectMakerModel.hasUnsavedChanges + || EffectMakerBackend.effectMakerModel.currentComposition === "" + + onClicked: root.saveClicked() + } + + HelperWidgets.AbstractButton { + style: StudioTheme.Values.viewBarButtonStyle + buttonIcon: StudioTheme.Constants.saveAs_medium + tooltip: qsTr("Save current composition with a new name") + enabled: !EffectMakerBackend.effectMakerModel.isEmpty + + onClicked: root.saveAsClicked() + } } - HelperWidgets.AbstractButton { - anchors.verticalCenter: parent.verticalCenter - x: addButton.x + addButton.width + 5 - style: StudioTheme.Values.viewBarButtonStyle - buttonIcon: StudioTheme.Constants.save_medium - tooltip: qsTr("Save current composition") - enabled: EffectMakerBackend.effectMakerModel.hasUnsavedChanges - || EffectMakerBackend.effectMakerModel.currentComposition === "" - - onClicked: root.saveClicked() - } Text { readonly property string compName: EffectMakerBackend.effectMakerModel.currentComposition diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/SaveAsDialog.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/SaveAsDialog.qml index a006c4ed7fe..8e762cebbd8 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/SaveAsDialog.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/SaveAsDialog.qml @@ -21,10 +21,10 @@ StudioControls.Dialog { property bool clearOnClose: false // clear the effect maker after saving onOpened: { - let model = EffectMakerBackend.effectMakerModel - nameText.text = model.currentComposition === "" ? model.getUniqueEffectName() : model.currentComposition - emptyText.text = "" + nameText.text = EffectMakerBackend.effectMakerModel.getUniqueEffectName() + nameText.selectAll() nameText.forceActiveFocus() + emptyText.text = "" } contentItem: Item {