Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsattributeeditorqmlelement.h - QgsAttributeEditorElement 3 : : 4 : : --------------------- 5 : : begin : 12.01.2021 6 : : copyright : (C) 2021 by Denis Rouzaud 7 : : email : denis@opengis.ch 8 : : *************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSATTRIBUTEEDITORQMLELEMENT_H 17 : : #define QGSATTRIBUTEEDITORQMLELEMENT_H 18 : : 19 : : #include "qgis_core.h" 20 : : #include "qgsattributeeditorelement.h" 21 : : 22 : : /** 23 : : * \ingroup core 24 : : * \brief An attribute editor widget that will represent arbitrary QML code. 25 : : * 26 : : * \since QGIS 3.4 27 : : */ 28 : 0 : class CORE_EXPORT QgsAttributeEditorQmlElement : public QgsAttributeEditorElement 29 : : { 30 : : public: 31 : : 32 : : /** 33 : : * Creates a new element which can display QML 34 : : * 35 : : * \param name The name of the widget 36 : : * \param parent The parent (used as container) 37 : : */ 38 : 0 : QgsAttributeEditorQmlElement( const QString &name, QgsAttributeEditorElement *parent ) 39 : 0 : : QgsAttributeEditorElement( AeTypeQmlElement, name, parent ) 40 : 0 : {} 41 : : 42 : : QgsAttributeEditorElement *clone( QgsAttributeEditorElement *parent ) const override SIP_FACTORY; 43 : : 44 : : /** 45 : : * The QML code that will be represented within this widget. 46 : : * 47 : : * \since QGIS 3.4 48 : : */ 49 : : QString qmlCode() const; 50 : : 51 : : /** 52 : : * Sets the QML code that will be represented within this widget to \a qmlCode. 53 : : */ 54 : : void setQmlCode( const QString &qmlCode ); 55 : : 56 : : private: 57 : : void saveConfiguration( QDomElement &elem, QDomDocument &doc ) const override; 58 : : void loadConfiguration( const QDomElement &element, const QString &layerId, const QgsReadWriteContext &context, const QgsFields &fields ) override; 59 : : QString typeIdentifier() const override; 60 : : QString mQmlCode; 61 : : }; 62 : : 63 : : #endif // QGSATTRIBUTEEDITORQMLELEMENT_H