int QgsAuxiliaryLayer::createProperty( QgsDiagramLayerSettings::Property property, QgsVectorLayer *layer ) { int index = -1; if ( layer && layer->diagramLayerSettings() && layer->auxiliaryLayer() ) { const QgsPropertyDefinition def = layer->diagramLayerSettings()->propertyDefinitions()[property]; if ( layer->auxiliaryLayer()->addAuxiliaryField( def ) ) { const QString fieldName = nameFromProperty( def, true ); const QgsProperty prop = QgsProperty::fromField( fieldName ); QgsDiagramLayerSettings settings( *layer->diagramLayerSettings() ); QgsPropertyCollection c = settings.dataDefinedProperties(); c.setProperty( property, prop ); settings.setDataDefinedProperties( c ); layer->setDiagramLayerSettings( settings ); emit layer->styleChanged(); index = layer->fields().lookupField( fieldName ); } } return index; }
int QgsAuxiliaryLayer::createProperty( QgsPalLayerSettings::Property property, QgsVectorLayer *layer ) { int index = -1; if ( layer && layer->labeling() && layer->auxiliaryLayer() ) { // property definition are identical whatever the provider id const QgsPropertyDefinition def = layer->labeling()->settings().propertyDefinitions()[property]; const QString fieldName = nameFromProperty( def, true ); layer->auxiliaryLayer()->addAuxiliaryField( def ); if ( layer->auxiliaryLayer()->indexOfPropertyDefinition( def ) >= 0 ) { const QgsProperty prop = QgsProperty::fromField( fieldName ); for ( const QString &providerId : layer->labeling()->subProviders() ) { QgsPalLayerSettings *settings = new QgsPalLayerSettings( layer->labeling()->settings( providerId ) ); QgsPropertyCollection c = settings->dataDefinedProperties(); c.setProperty( property, prop ); settings->setDataDefinedProperties( c ); layer->labeling()->setSettings( settings, providerId ); } emit layer->styleChanged(); } index = layer->fields().lookupField( fieldName ); } return index; }
QgsPolygon3DSymbol QgsPolygon3DSymbolWidget::symbol() const { QgsPolygon3DSymbol sym; sym.setHeight( spinHeight->value() ); sym.setExtrusionHeight( spinExtrusion->value() ); sym.setAltitudeClamping( static_cast<Qgs3DTypes::AltitudeClamping>( cboAltClamping->currentIndex() ) ); sym.setAltitudeBinding( static_cast<Qgs3DTypes::AltitudeBinding>( cboAltBinding->currentIndex() ) ); sym.setCullingMode( static_cast<Qgs3DTypes::CullingMode>( cboCullingMode->currentIndex() ) ); sym.setAddBackFaces( chkAddBackFaces->isChecked() ); sym.setInvertNormals( chkInvertNormals->isChecked() ); sym.setMaterial( widgetMaterial->material() ); QgsPropertyCollection ddp; ddp.setProperty( QgsAbstract3DSymbol::PropertyHeight, btnHeightDD->toProperty() ); ddp.setProperty( QgsAbstract3DSymbol::PropertyExtrusionHeight, btnExtrusionDD->toProperty() ); sym.setDataDefinedProperties( ddp ); return sym; }
void QgsComposerUtils::readOldDataDefinedPropertyMap( const QDomElement &itemElem, QgsPropertyCollection& dataDefinedProperties ) { QgsPropertiesDefinition::const_iterator i = QgsComposerObject::propertyDefinitions().constBegin(); for ( ; i != QgsComposerObject::propertyDefinitions().constEnd(); ++i ) { QString elemName = i.value().name(); QDomNodeList ddNodeList = itemElem.elementsByTagName( elemName ); if ( !ddNodeList.isEmpty() ) { QDomElement ddElem = ddNodeList.at( 0 ).toElement(); QgsProperty prop = readOldDataDefinedProperty( static_cast< QgsComposerObject::DataDefinedProperty >( i.key() ), ddElem ); if ( prop ) dataDefinedProperties.setProperty( i.key(), prop ); } } }