QgsSymbolV2* QgsFillSymbolV2::clone() const { QgsSymbolV2* cloneSymbol = new QgsFillSymbolV2( cloneLayers() ); cloneSymbol->setOutputUnit( mOutputUnit ); cloneSymbol->setAlpha( mAlpha ); return cloneSymbol; }
QgsSymbolV2* QgsMarkerSymbolV2::clone() const { QgsSymbolV2* cloneSymbol = new QgsMarkerSymbolV2( cloneLayers() ); cloneSymbol->setAlpha( mAlpha ); cloneSymbol->setLayer( mLayer ); cloneSymbol->setClipFeaturesToExtent( mClipFeaturesToExtent ); return cloneSymbol; }
QgsSymbolV2* QgsSymbolV2::defaultSymbol( QGis::GeometryType geomType ) { QgsSymbolV2* s = 0; // override global default if project has a default for this type QString defaultSymbol; switch ( geomType ) { case QGis::Point : defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Marker", "" ); break; case QGis::Line : defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Line", "" ); break; case QGis::Polygon : defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Fill", "" ); break; default: defaultSymbol = ""; break; } if ( defaultSymbol != "" ) s = QgsStyleV2::defaultStyle()->symbol( defaultSymbol ); // if no default found for this type, get global default (as previously) if ( ! s ) { switch ( geomType ) { case QGis::Point: s = new QgsMarkerSymbolV2(); break; case QGis::Line: s = new QgsLineSymbolV2(); break; case QGis::Polygon: s = new QgsFillSymbolV2(); break; default: QgsDebugMsg( "unknown layer's geometry type" ); return NULL; } } // set alpha transparency s->setAlpha( QgsProject::instance()->readDoubleEntry( "DefaultStyles", "/AlphaInt", 255 ) / 255.0 ); // set random color, it project prefs allow if ( defaultSymbol == "" || QgsProject::instance()->readBoolEntry( "DefaultStyles", "/RandomColors", true ) ) { s->setColor( QColor::fromHsv( qrand() % 360, 64 + qrand() % 192, 128 + qrand() % 128 ) ); } return s; }
QgsSymbolV2* QgsLineSymbolV2::clone() const { QgsSymbolV2* cloneSymbol = new QgsLineSymbolV2( cloneLayers() ); cloneSymbol->setAlpha( mAlpha ); return cloneSymbol; }