diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml index 7453ba9349c..456539d13cf 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml @@ -136,4 +136,17 @@ Item { } // Column } // ScrollView } + + Text { + id: emptyText + + text: qsTr("Add an effect node to start") + color: StudioTheme.Values.themeTextColor + font.pixelSize: StudioTheme.Values.baseFontSize + + x: scrollView.x + (scrollView.width - emptyText.width) * .5 + y: scrollView.y + scrollView.height * .5 + + visible: EffectMakerBackend.effectMakerModel.isEmpty + } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml index bdc05a0e103..5eb40e42cc5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml @@ -177,7 +177,7 @@ Item { IconButton { id: closeButton - icon: StudioTheme.Constants.close_small + icon: StudioTheme.Constants.closeCross buttonSize: 22 iconScale: containsMouse ? 1.2 : 1 transparentBg: true diff --git a/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.cpp b/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.cpp index 2b8435030fd..6d03a56663f 100644 --- a/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.cpp +++ b/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.cpp @@ -56,12 +56,22 @@ bool EffectMakerModel::setData(const QModelIndex &index, const QVariant &value, return true; } +void EffectMakerModel::setIsEmpty(bool val) +{ + if (m_isEmpty != val) { + m_isEmpty = val; + emit isEmptyChanged(); + } +} + void EffectMakerModel::addNode(const QString &nodeQenPath) { beginInsertRows({}, m_nodes.size(), m_nodes.size()); auto *node = new CompositionNode(nodeQenPath); m_nodes.append(node); endInsertRows(); + + setIsEmpty(false); } void EffectMakerModel::moveNode(int fromIdx, int toIdx) @@ -82,6 +92,9 @@ void EffectMakerModel::removeNode(int idx) m_nodes.removeAt(idx); delete node; endRemoveRows(); + + if (m_nodes.isEmpty()) + setIsEmpty(true); } const QList EffectMakerModel::allUniforms() diff --git a/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.h b/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.h index 182de9b97df..9d4db5adb8d 100644 --- a/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.h +++ b/src/plugins/qmldesigner/components/effectmaker/effectmakermodel.h @@ -43,6 +43,7 @@ public: bool setData(const QModelIndex &index, const QVariant &value, int role) override; bool isEmpty() const { return m_isEmpty; } + void setIsEmpty(bool val); void addNode(const QString &nodeQenPath);