[QGIS Commit] r10986 - in trunk/qgis/src: app core/renderer core/symbology

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat Jun 27 17:35:42 EDT 2009


Author: jef
Date: 2009-06-27 17:35:41 -0400 (Sat, 27 Jun 2009)
New Revision: 10986

Modified:
   trunk/qgis/src/app/qgsuniquevaluedialog.cpp
   trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp
   trunk/qgis/src/core/symbology/qgssymbol.cpp
Log:
[FEATURE] add default class to unique value renderer (fixes #1750)
- unique value enull" now default class (ie. class for values without a defined class)
- "add class" and "classify" now add the default class



Modified: trunk/qgis/src/app/qgsuniquevaluedialog.cpp
===================================================================
--- trunk/qgis/src/app/qgsuniquevaluedialog.cpp	2009-06-26 20:18:52 UTC (rev 10985)
+++ trunk/qgis/src/app/qgsuniquevaluedialog.cpp	2009-06-27 21:35:41 UTC (rev 10986)
@@ -200,7 +200,7 @@
 void QgsUniqueValueDialog::addClass( QString value )
 {
   QgsDebugMsg( "called." );
-  if ( value.isNull() || mValues.contains( value ) )
+  if ( mValues.contains( value ) )
   {
     int i;
     for ( i = 0; mValues.contains( value + QString::number( i ) ); i++ )
@@ -208,7 +208,7 @@
     value += QString::number( i );
   }
 
-  QgsSymbol *symbol = new QgsSymbol( mVectorLayer->geometryType(), value );
+  QgsSymbol *symbol = new QgsSymbol( mVectorLayer->geometryType(), value, value, value.isNull() ? tr( "default" ) : "" );
   mValues.insert( value, symbol );
 
   QListWidgetItem *item = new QListWidgetItem( value );
@@ -306,6 +306,9 @@
       if ( !mValues.contains( values[i].toString() ) )
         addClass( values[i].toString() );
     }
+
+    if ( !mValues.contains( QString::null ) )
+      addClass( QString::null );
   }
 }
 

Modified: trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp
===================================================================
--- trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp	2009-06-26 20:18:52 UTC (rev 10985)
+++ trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp	2009-06-27 21:35:41 UTC (rev 10986)
@@ -185,6 +185,11 @@
   QMap<QString, QgsSymbol*>::iterator it = mSymbols.find( value );
   if ( it == mSymbols.end() )
   {
+    it = mSymbols.find( QString::null );
+  }
+
+  if ( it == mSymbols.end() )
+  {
     return 0;
   }
   else

Modified: trunk/qgis/src/core/symbology/qgssymbol.cpp
===================================================================
--- trunk/qgis/src/core/symbology/qgssymbol.cpp	2009-06-26 20:18:52 UTC (rev 10985)
+++ trunk/qgis/src/core/symbology/qgssymbol.cpp	2009-06-27 21:35:41 UTC (rev 10986)
@@ -445,6 +445,10 @@
 {
   QDomElement node = document.createElement( name );
   QDomText txt = document.createTextNode( value );
+  if ( value.isNull() )
+  {
+    node.setAttribute( "null", "1" );
+  }
   symbol.appendChild( node );
   node.appendChild( txt );
 }
@@ -542,7 +546,14 @@
   if ( ! lvalnode.isNull() )
   {
     QDomElement lvalelement = lvalnode.toElement();
-    mLowerValue = lvalelement.text();
+    if ( lvalelement.attribute( "null" ).toInt() == 1 )
+    {
+      mLowerValue = QString::null;
+    }
+    else
+    {
+      mLowerValue = lvalelement.text();
+    }
   }
 
   QDomNode uvalnode = synode.namedItem( "uppervalue" );



More information about the QGIS-commit mailing list