aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore
diff options
context:
space:
mode:
authorAleksei German <aleksei.german@qt.io>2020-07-28 17:03:35 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-08-27 10:05:44 +0000
commitf642c02eb651b8146c57f735e03e4db29078abca (patch)
tree561ed8450b1a4ee8eb7526999e9a556109edec49 /src/plugins/qmldesigner/designercore
parentac5d35a53d81212b8ca99af792f312d336e2f087 (diff)
QmlDesigner: Annotations for States
- Added Annotations support for States Task: QDS-2312 Change-Id: I204ec958f85bd0f05eae0abbb3848d6d59e7e397 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designercore')
-rw-r--r--src/plugins/qmldesigner/designercore/include/qmlstate.h8
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlstate.cpp39
2 files changed, 47 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/qmlstate.h b/src/plugins/qmldesigner/designercore/include/qmlstate.h
index 156e441615..7c43ac8776 100644
--- a/src/plugins/qmldesigner/designercore/include/qmlstate.h
+++ b/src/plugins/qmldesigner/designercore/include/qmlstate.h
@@ -34,6 +34,8 @@ namespace QmlDesigner {
class AbstractViewAbstractVieweGroup;
class QmlObjectNode;
class QmlModelStateGroup;
+class Annotation;
+class AnnotationEditor;
class QMLDESIGNERCORE_EXPORT QmlModelState : public QmlModelNodeFacade
{
@@ -72,6 +74,12 @@ public:
void setAsDefault();
bool isDefault() const;
+ void setAnnotation(const Annotation &annotation, const QString &id);
+ Annotation annotation() const;
+ QString annotationName() const;
+ bool hasAnnotation() const;
+ void removeAnnotation();
+
protected:
void addChangeSetIfNotExists(const ModelNode &node);
static QmlModelState createBaseState(const AbstractView *view);
diff --git a/src/plugins/qmldesigner/designercore/model/qmlstate.cpp b/src/plugins/qmldesigner/designercore/model/qmlstate.cpp
index 89bbec351e..4a38985ad1 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlstate.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlstate.cpp
@@ -32,6 +32,8 @@
#include "bindingproperty.h"
#include "qmlchangeset.h"
#include "qmlitemnode.h"
+#include "annotation.h"
+#include "annotationeditor/annotationeditor.h"
#include <utils/qtcassert.h>
@@ -304,6 +306,43 @@ bool QmlModelState::isDefault() const
return false;
}
+void QmlModelState::setAnnotation(const Annotation &annotation, const QString &id)
+{
+ if (modelNode().isValid()) {
+ modelNode().setCustomId(id);
+ modelNode().setAnnotation(annotation);
+ }
+}
+
+Annotation QmlModelState::annotation() const
+{
+ if (modelNode().isValid())
+ return modelNode().annotation();
+ return {};
+}
+
+QString QmlModelState::annotationName() const
+{
+ if (modelNode().isValid())
+ return modelNode().customId();
+ return {};
+}
+
+bool QmlModelState::hasAnnotation() const
+{
+ if (modelNode().isValid())
+ return modelNode().hasAnnotation() || modelNode().hasCustomId();
+ return false;
+}
+
+void QmlModelState::removeAnnotation()
+{
+ if (modelNode().isValid()) {
+ modelNode().removeCustomId();
+ modelNode().removeAnnotation();
+ }
+}
+
QmlModelState QmlModelState::createBaseState(const AbstractView *view)
{
QmlModelState qmlModelState(view->rootModelNode());