forked from qt-creator/qt-creator
EffectComposer: Toggle "Assign to.." button based on component selection
Task-number: QDS-12148 Change-Id: I1f44df7c6c027c36c09f7c4d74e4dd609542c5b8 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
@@ -58,7 +58,8 @@ Rectangle {
|
|||||||
style: StudioTheme.Values.viewBarButtonStyle
|
style: StudioTheme.Values.viewBarButtonStyle
|
||||||
buttonIcon: StudioTheme.Constants.assignTo_medium
|
buttonIcon: StudioTheme.Constants.assignTo_medium
|
||||||
tooltip: qsTr("Assign current composition to selected item")
|
tooltip: qsTr("Assign current composition to selected item")
|
||||||
enabled: root.backendModel ? root.backendModel.isEnabled
|
enabled: root.backendModel ? root.backendModel.hasValidTarget
|
||||||
|
&& root.backendModel.isEnabled
|
||||||
&& root.backendModel.currentComposition !== ""
|
&& root.backendModel.currentComposition !== ""
|
||||||
: false
|
: false
|
||||||
|
|
||||||
|
|||||||
@@ -1729,6 +1729,19 @@ void EffectComposerModel::setIsEnabled(bool enabled)
|
|||||||
emit isEnabledChanged();
|
emit isEnabledChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EffectComposerModel::hasValidTarget() const
|
||||||
|
{
|
||||||
|
return m_hasValidTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EffectComposerModel::setHasValidTarget(bool validTarget)
|
||||||
|
{
|
||||||
|
if (m_hasValidTarget == validTarget)
|
||||||
|
return;
|
||||||
|
m_hasValidTarget = validTarget;
|
||||||
|
emit hasValidTargetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
QString EffectComposerModel::getQmlImagesString(bool localFiles)
|
QString EffectComposerModel::getQmlImagesString(bool localFiles)
|
||||||
{
|
{
|
||||||
QString imagesString;
|
QString imagesString;
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class EffectComposerModel : public QAbstractListModel
|
|||||||
Q_PROPERTY(bool hasUnsavedChanges MEMBER m_hasUnsavedChanges WRITE setHasUnsavedChanges NOTIFY hasUnsavedChangesChanged)
|
Q_PROPERTY(bool hasUnsavedChanges MEMBER m_hasUnsavedChanges WRITE setHasUnsavedChanges NOTIFY hasUnsavedChangesChanged)
|
||||||
Q_PROPERTY(bool shadersUpToDate READ shadersUpToDate WRITE setShadersUpToDate NOTIFY shadersUpToDateChanged)
|
Q_PROPERTY(bool shadersUpToDate READ shadersUpToDate WRITE setShadersUpToDate NOTIFY shadersUpToDateChanged)
|
||||||
Q_PROPERTY(bool isEnabled READ isEnabled WRITE setIsEnabled NOTIFY isEnabledChanged)
|
Q_PROPERTY(bool isEnabled READ isEnabled WRITE setIsEnabled NOTIFY isEnabledChanged)
|
||||||
|
Q_PROPERTY(bool hasValidTarget READ hasValidTarget WRITE setHasValidTarget NOTIFY hasValidTargetChanged)
|
||||||
Q_PROPERTY(QString currentComposition READ currentComposition WRITE setCurrentComposition NOTIFY currentCompositionChanged)
|
Q_PROPERTY(QString currentComposition READ currentComposition WRITE setCurrentComposition NOTIFY currentCompositionChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -77,6 +78,9 @@ public:
|
|||||||
bool isEnabled() const;
|
bool isEnabled() const;
|
||||||
void setIsEnabled(bool enabled);
|
void setIsEnabled(bool enabled);
|
||||||
|
|
||||||
|
bool hasValidTarget() const;
|
||||||
|
void setHasValidTarget(bool validTarget);
|
||||||
|
|
||||||
QString fragmentShader() const;
|
QString fragmentShader() const;
|
||||||
void setFragmentShader(const QString &newFragmentShader);
|
void setFragmentShader(const QString &newFragmentShader);
|
||||||
|
|
||||||
@@ -110,6 +114,7 @@ signals:
|
|||||||
void effectErrorChanged();
|
void effectErrorChanged();
|
||||||
void shadersUpToDateChanged();
|
void shadersUpToDateChanged();
|
||||||
void isEnabledChanged();
|
void isEnabledChanged();
|
||||||
|
void hasValidTargetChanged();
|
||||||
void shadersBaked();
|
void shadersBaked();
|
||||||
void currentCompositionChanged();
|
void currentCompositionChanged();
|
||||||
void nodesChanged();
|
void nodesChanged();
|
||||||
@@ -210,6 +215,7 @@ private:
|
|||||||
QString m_qmlComponentString;
|
QString m_qmlComponentString;
|
||||||
bool m_loadComponentImages = true;
|
bool m_loadComponentImages = true;
|
||||||
bool m_isEnabled = true;
|
bool m_isEnabled = true;
|
||||||
|
bool m_hasValidTarget = false;
|
||||||
QString m_currentComposition;
|
QString m_currentComposition;
|
||||||
QTimer m_rebakeTimer;
|
QTimer m_rebakeTimer;
|
||||||
|
|
||||||
|
|||||||
@@ -105,4 +105,19 @@ void EffectComposerView::modelAboutToBeDetached(QmlDesigner::Model *model)
|
|||||||
AbstractView::modelAboutToBeDetached(model);
|
AbstractView::modelAboutToBeDetached(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EffectComposerView::selectedNodesChanged(const QList<QmlDesigner::ModelNode> & selectedNodeList,
|
||||||
|
const QList<QmlDesigner::ModelNode> & /*lastSelectedNodeList*/)
|
||||||
|
{
|
||||||
|
bool hasValidTarget = false;
|
||||||
|
|
||||||
|
for (const QmlDesigner::ModelNode &node : selectedNodeList) {
|
||||||
|
if (node.metaInfo().isQtQuickItem()) {
|
||||||
|
hasValidTarget = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_widget->effectComposerModel()->setHasValidTarget(hasValidTarget);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace EffectComposer
|
} // namespace EffectComposer
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "abstractview.h"
|
#include "abstractview.h"
|
||||||
|
#include "modelnode.h"
|
||||||
|
|
||||||
#include <coreplugin/icontext.h>
|
#include <coreplugin/icontext.h>
|
||||||
|
|
||||||
@@ -35,6 +36,8 @@ public:
|
|||||||
// AbstractView
|
// AbstractView
|
||||||
void modelAttached(QmlDesigner::Model *model) override;
|
void modelAttached(QmlDesigner::Model *model) override;
|
||||||
void modelAboutToBeDetached(QmlDesigner::Model *model) override;
|
void modelAboutToBeDetached(QmlDesigner::Model *model) override;
|
||||||
|
void selectedNodesChanged(const QList<QmlDesigner::ModelNode> &selectedNodeList,
|
||||||
|
const QList<QmlDesigner::ModelNode> &lastSelectedNodeList) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void customNotification(const AbstractView *view, const QString &identifier,
|
void customNotification(const AbstractView *view, const QString &identifier,
|
||||||
|
|||||||
Reference in New Issue
Block a user