22#include <QDomDocument>
28using namespace Qt::StringLiterals;
42 return QObject::tr(
"QGIS QML Style" );
50 QDomImplementation DomImplementation;
51 const QDomDocumentType documentType = DomImplementation.createDocumentType( u
"qgis"_s, u
"http://mrcc.com/qgis.dtd"_s, u
"SYSTEM"_s );
52 QDomDocument doc( documentType );
56 if ( symbolElem.isNull() )
59 doc.appendChild( symbolElem );
60 return doc.toString();
65 const QString xmlString = variant.toString();
66 if ( xmlString.isEmpty() )
71 int errorLine, errorColumn;
72 if ( !doc.setContent( xmlString, &errorMsg, &errorLine, &errorColumn ) )
74 context.
pushError( QObject::tr(
"Error parsing QML content: %1" ).arg( errorMsg ) );
78 QDomElement root = doc.documentElement();
81 context.
pushError( QObject::tr(
"QML document is empty" ) );
QFlags< SymbolConverterCapability > SymbolConverterCapabilities
Symbol converter capabilities.
@ WriteSymbol
Allows writing symbols to variants.
@ ReadSymbol
Allows reading symbols from variants.
Represents the context in which a QgsSymbolConverter conversion occurs.
QgsReadWriteContext & readWriteContext()
Returns the read-write context associated with the context.
void pushError(const QString &error)
Pushes a error message generated during the conversion.
std::unique_ptr< QgsSymbol > createSymbol(const QVariant &variant, QgsSymbolConverterContext &context) const override
Creates a new QgsSymbol from a QVariant representation.
QString formatName() const override
Returns a translated, user-friendly name for the converter's data format.
QString name() const override
Returns the unique name for the converter.
Qgis::SymbolConverterCapabilities capabilities() const override
Returns the capabilities of the converter.
QVariant toVariant(const QgsSymbol *symbol, QgsSymbolConverterContext &context) const override
Converts a symbol into a QVariant representation.
static std::unique_ptr< QgsSymbol > loadSymbol(const QDomElement &element, const QgsReadWriteContext &context)
Attempts to load a symbol from a DOM element.
static QDomElement saveSymbol(const QString &symbolName, const QgsSymbol *symbol, QDomDocument &doc, const QgsReadWriteContext &context)
Writes a symbol definition to XML.
Abstract base class for all rendered symbols.