forked from qt-creator/qt-creator
QmlDesigner: Add convenience functions
Those helpers make it easy to filter by types. Change-Id: I36cedba043a1c89c68b98ef03a309ec0d8e67475 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -164,6 +164,7 @@ public:
|
|||||||
bool hasModelNodeForInternalId(qint32 internalId) const;
|
bool hasModelNodeForInternalId(qint32 internalId) const;
|
||||||
|
|
||||||
QList<ModelNode> allModelNodes() const;
|
QList<ModelNode> allModelNodes() const;
|
||||||
|
QList<ModelNode> allModelNodesOfType(const TypeName &typeName) const;
|
||||||
|
|
||||||
void emitDocumentMessage(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings = QList<DocumentMessage>());
|
void emitDocumentMessage(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings = QList<DocumentMessage>());
|
||||||
void emitDocumentMessage(const QString &error);
|
void emitDocumentMessage(const QString &error);
|
||||||
|
@@ -107,6 +107,8 @@ public:
|
|||||||
bool hasParentProperty() const;
|
bool hasParentProperty() const;
|
||||||
|
|
||||||
const QList<ModelNode> directSubModelNodes() const;
|
const QList<ModelNode> directSubModelNodes() const;
|
||||||
|
const QList<ModelNode> directSubModelNodesOfType(const TypeName &typeName) const;
|
||||||
|
|
||||||
const QList<ModelNode> allSubModelNodes() const;
|
const QList<ModelNode> allSubModelNodes() const;
|
||||||
const QList<ModelNode> allSubModelNodesAndThisNode() const;
|
const QList<ModelNode> allSubModelNodesAndThisNode() const;
|
||||||
bool hasAnySubModelNodes() const;
|
bool hasAnySubModelNodes() const;
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include <coreplugin/helpmanager.h>
|
#include <coreplugin/helpmanager.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/algorithm.h>
|
||||||
|
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
|
|
||||||
@@ -635,6 +636,13 @@ QList<ModelNode> AbstractView::allModelNodes() const
|
|||||||
return toModelNodeList(model()->d->allNodes());
|
return toModelNodeList(model()->d->allNodes());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<ModelNode> AbstractView::allModelNodesOfType(const TypeName &typeName) const
|
||||||
|
{
|
||||||
|
return Utils::filtered(allModelNodes(), [typeName](const ModelNode &node){
|
||||||
|
return node.metaInfo().isValid() && node.metaInfo().isSubclassOf(typeName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void AbstractView::emitDocumentMessage(const QString &error)
|
void AbstractView::emitDocumentMessage(const QString &error)
|
||||||
{
|
{
|
||||||
emitDocumentMessage({DocumentMessage(error)});
|
emitDocumentMessage({DocumentMessage(error)});
|
||||||
|
@@ -42,6 +42,8 @@
|
|||||||
#include "nodeproperty.h"
|
#include "nodeproperty.h"
|
||||||
#include <rewriterview.h>
|
#include <rewriterview.h>
|
||||||
|
|
||||||
|
#include <utils/algorithm.h>
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
@@ -775,6 +777,13 @@ const QList<ModelNode> ModelNode::directSubModelNodes() const
|
|||||||
return toModelNodeList(internalNode()->allDirectSubNodes(), view());
|
return toModelNodeList(internalNode()->allDirectSubNodes(), view());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QList<ModelNode> ModelNode::directSubModelNodesOfType(const TypeName &typeName) const
|
||||||
|
{
|
||||||
|
return Utils::filtered(directSubModelNodes(), [typeName](const ModelNode &node){
|
||||||
|
return node.metaInfo().isValid() && node.metaInfo().isSubclassOf(typeName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief returns all ModelNodes that are direct or indirect children of this ModelNode
|
\brief returns all ModelNodes that are direct or indirect children of this ModelNode
|
||||||
|
Reference in New Issue
Block a user