Files
qt-creator/src/libs/qmljs/qmljspropertyreader.h

60 lines
1.4 KiB
C
Raw Normal View History

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include <qmljs/qmljsdocument.h>
#include <QHash>
#include <QVariant>
#include <QStringList>
2011-01-20 14:03:07 +01:00
QT_FORWARD_DECLARE_CLASS(QLinearGradient)
namespace QmlJS {
class Document;
class QMLJS_EXPORT PropertyReader
{
public:
PropertyReader(Document::Ptr doc, AST::UiObjectInitializer *ast);
bool hasProperty(const QString &propertyName) const
{ return m_properties.contains(propertyName); }
QVariant readProperty(const QString &propertyName) const
{
if (hasProperty(propertyName))
return m_properties.value(propertyName);
else
return QVariant();
}
QString readAstValue(const QString &propertyName) const
{
if (hasProperty(propertyName))
return m_astPropertyValues.value(propertyName);
else
return QString();
}
QLinearGradient parseGradient(const QString &propertyName, bool *isBound) const;
QStringList properties() const
{ return m_properties.keys(); }
bool isBindingOrEnum(const QString &propertyName) const
{ return m_bindingOrEnum.contains(propertyName); }
private:
QHash<QString, QVariant> m_properties;
QHash<QString, QString> m_astPropertyValues;
QList<QString> m_bindingOrEnum;
AST::UiObjectInitializer *m_ast;
Document::Ptr m_doc;
};
} //QmlJS