Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
qgssymbollayerv2registry.cpp
Go to the documentation of this file.
1 
3 
5 #include "qgslinesymbollayerv2.h"
6 #include "qgsfillsymbollayerv2.h"
7 
9 
11 {
12  // init registry with known symbol layers
13  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "SimpleLine", QObject::tr( "Simple line" ), QgsSymbolV2::Line,
15  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "MarkerLine", QObject::tr( "Marker line" ), QgsSymbolV2::Line,
17  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "LineDecoration", QObject::tr( "Line decoration" ), QgsSymbolV2::Line,
19 
20  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "SimpleMarker", QObject::tr( "Simple marker" ), QgsSymbolV2::Marker,
22  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "SvgMarker", QObject::tr( "SVG marker" ), QgsSymbolV2::Marker,
24  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "FontMarker", QObject::tr( "Font marker" ), QgsSymbolV2::Marker,
26 
27  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "SimpleFill", QObject::tr( "Simple fill" ), QgsSymbolV2::Fill,
29  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "SVGFill", QObject::tr( "SVG fill" ), QgsSymbolV2::Fill,
31  addSymbolLayerType( new QgsSymbolLayerV2Metadata( "CentroidFill", QObject::tr( "Centroid fill" ), QgsSymbolV2::Fill,
33 }
34 
36 {
37  foreach( QString name, mMetadata.keys() )
38  {
39  delete mMetadata[name];
40  }
41  mMetadata.clear();
42 }
43 
45 {
46  if ( metadata == NULL || mMetadata.contains( metadata->name() ) )
47  return false;
48 
49  mMetadata[metadata->name()] = metadata;
50  return true;
51 }
52 
53 
55 {
56  if ( mMetadata.contains( name ) )
57  return mMetadata.value( name );
58  else
59  return NULL;
60 }
61 
63 {
64  if ( !mInstance )
66  return mInstance;
67 }
68 
70 {
71  switch ( type )
72  {
75 
76  case QgsSymbolV2::Line:
78 
79  case QgsSymbolV2::Fill:
81  }
82  return NULL;
83 }
84 
85 
87 {
88  if ( !mMetadata.contains( name ) )
89  return NULL;
90 
91  return mMetadata[name]->createSymbolLayer( properties );
92 }
93 
95 {
96  QStringList lst;
97  QMap<QString, QgsSymbolLayerV2AbstractMetadata*>::ConstIterator it = mMetadata.begin();
98  for ( ; it != mMetadata.end(); ++it )
99  {
100  if (( *it )->type() == type )
101  lst.append( it.key() );
102  }
103  return lst;
104 }