Quantum GIS API Documentation
1.7.4
|
00001 #include "qgsrendererv2registry.h" 00002 00003 // default renderers 00004 #include "qgssinglesymbolrendererv2.h" 00005 #include "qgscategorizedsymbolrendererv2.h" 00006 #include "qgsgraduatedsymbolrendererv2.h" 00007 #include "qgsrulebasedrendererv2.h" 00008 00009 QgsRendererV2Registry* QgsRendererV2Registry::mInstance = NULL; 00010 00011 QgsRendererV2Registry::QgsRendererV2Registry() 00012 { 00013 // add default renderers 00014 addRenderer( new QgsRendererV2Metadata( "singleSymbol", 00015 QObject::tr( "Single Symbol" ), 00016 QgsSingleSymbolRendererV2::create ) ); 00017 addRenderer( new QgsRendererV2Metadata( "categorizedSymbol", 00018 QObject::tr( "Categorized" ), 00019 QgsCategorizedSymbolRendererV2::create ) ); 00020 addRenderer( new QgsRendererV2Metadata( "graduatedSymbol", 00021 QObject::tr( "Graduated" ), 00022 QgsGraduatedSymbolRendererV2::create ) ); 00023 00024 addRenderer( new QgsRendererV2Metadata( "RuleRenderer", 00025 QObject::tr( "Rule-based" ), 00026 QgsRuleBasedRendererV2::create ) ); 00027 } 00028 00029 QgsRendererV2Registry::~QgsRendererV2Registry() 00030 { 00031 foreach( QString name, mRenderers.keys() ) 00032 { 00033 delete mRenderers[name]; 00034 } 00035 mRenderers.clear(); 00036 } 00037 00038 QgsRendererV2Registry* QgsRendererV2Registry::instance() 00039 { 00040 if ( !mInstance ) 00041 mInstance = new QgsRendererV2Registry(); 00042 00043 return mInstance; 00044 } 00045 00046 00047 bool QgsRendererV2Registry::addRenderer( QgsRendererV2AbstractMetadata* metadata ) 00048 { 00049 if ( metadata == NULL || mRenderers.contains( metadata->name() ) ) 00050 return false; 00051 00052 mRenderers[metadata->name()] = metadata; 00053 mRenderersOrder << metadata->name(); 00054 return true; 00055 } 00056 00057 bool QgsRendererV2Registry::removeRenderer( QString rendererName ) 00058 { 00059 if ( !mRenderers.contains( rendererName ) ) 00060 return false; 00061 00062 delete mRenderers[rendererName]; 00063 mRenderers.remove( rendererName ); 00064 mRenderersOrder.removeAll( rendererName ); 00065 return true; 00066 } 00067 00068 QgsRendererV2AbstractMetadata* QgsRendererV2Registry::rendererMetadata( QString rendererName ) 00069 { 00070 return mRenderers.value( rendererName ); 00071 } 00072 00073 QStringList QgsRendererV2Registry::renderersList() 00074 { 00075 return mRenderersOrder; 00076 }