[QGIS Commit] r11114 - in branches/symbology-ng-branch: python/core src/core/symbology-ng src/gui/symbology-ng

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Jul 20 10:02:25 EDT 2009


Author: wonder
Date: 2009-07-20 10:02:24 -0400 (Mon, 20 Jul 2009)
New Revision: 11114

Modified:
   branches/symbology-ng-branch/python/core/symbology-ng-core.sip
   branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp
   branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
   branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbollevelsv2dialog.h
Log:
symbology-ng: small refactoring - every renderer can now returns its list of symbols


Modified: branches/symbology-ng-branch/python/core/symbology-ng-core.sip
===================================================================
--- branches/symbology-ng-branch/python/core/symbology-ng-core.sip	2009-07-20 12:12:55 UTC (rev 11113)
+++ branches/symbology-ng-branch/python/core/symbology-ng-core.sip	2009-07-20 14:02:24 UTC (rev 11114)
@@ -1,4 +1,6 @@
 
+typedef QList<QgsSymbolV2*> QgsSymbolV2List;
+
 ///////////////
 
 
@@ -55,6 +57,8 @@
 
   virtual QgsFeatureRendererV2* clone()=0 /Factory/;
 
+  virtual QgsSymbolV2List symbols()=0;
+
   void renderFeature(QgsFeature& feature, QgsRenderContext& context, int layer = -1);
 
   QgsSymbolV2LevelOrder& symbolLevels();

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp	2009-07-20 12:12:55 UTC (rev 11113)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp	2009-07-20 14:02:24 UTC (rev 11114)
@@ -241,6 +241,7 @@
   return "UNKNOWN RENDERER\n";
 }
 
+
 ///////////////////
 
 QgsSingleSymbolRendererV2::QgsSingleSymbolRendererV2(QgsSymbolV2* symbol)
@@ -297,6 +298,13 @@
   return r;
 }
 
+QgsSymbolV2List QgsSingleSymbolRendererV2::symbols()
+{
+  QgsSymbolV2List lst;
+  lst.append(mSymbol);
+  return lst;
+}
+
 ///////////////////
 
 QgsRendererCategoryV2::QgsRendererCategoryV2(QVariant value, QgsSymbolV2* symbol, QString label)
@@ -492,6 +500,13 @@
   return r;
 }
 
+QgsSymbolV2List QgsCategorizedSymbolRendererV2::symbols()
+{
+  QgsSymbolV2List lst;
+  for (int i = 0; i < mCategories.count(); i++)
+    lst.append(mCategories[i].symbol());
+  return lst;
+}
 
 /////////////////////////
 // graduated
@@ -643,6 +658,13 @@
   return r;
 }
 
+QgsSymbolV2List QgsGraduatedSymbolRendererV2::symbols()
+{
+  QgsSymbolV2List lst;
+  for (int i = 0; i < mRanges.count(); i++)
+    lst.append(mRanges[i].symbol());
+  return lst;
+}
 
 static QList<double> _calcEqualIntervalBreaks(double minimum, double maximum, int classes)
 {

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h	2009-07-20 12:12:55 UTC (rev 11113)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h	2009-07-20 14:02:24 UTC (rev 11114)
@@ -11,6 +11,7 @@
 class QgsRenderContext;
 class QgsFeature;
 
+typedef QList<QgsSymbolV2*> QgsSymbolV2List;
 
 ////////
 // symbol levels
@@ -69,7 +70,8 @@
   //! for debugging
   virtual QString dump();
 	
-	//TODO: symbols() for symbol levels
+  //! for symbol levels
+  virtual QgsSymbolV2List symbols()=0;
 
   QgsSymbolV2LevelOrder& symbolLevels() { return mLevelOrder; }
   void setSymbolLevels(const QgsSymbolV2LevelOrder& levelOrder) { mLevelOrder = levelOrder; }
@@ -105,6 +107,8 @@
 
   virtual QgsFeatureRendererV2* clone();
 
+  virtual QgsSymbolV2List symbols();
+
 protected:
 	QgsSymbolV2* mSymbol;
 };
@@ -160,6 +164,8 @@
 
   virtual QgsFeatureRendererV2* clone();
 
+  virtual QgsSymbolV2List symbols();
+
   const QgsCategoryList& categories() { return mCategories; }
   
   //! return index of category with specified value (-1 if not found)
@@ -239,6 +245,8 @@
 
   virtual QgsFeatureRendererV2* clone();
 
+  virtual QgsSymbolV2List symbols();
+
   int attributeIndex() const { return mAttrNum; }
   void setAttributeIndex(int attr) { mAttrNum = attr; }
   

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-07-20 12:12:55 UTC (rev 11113)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-07-20 14:02:24 UTC (rev 11114)
@@ -548,47 +548,8 @@
 
 void QgsRendererV2PropertiesDialog::symbolLevels()
 {
-  QgsSymbolV2List symbols;
+  QgsSymbolV2List symbols = mRenderer->symbols();
 
-  switch (mRenderer->type())
-  {
-    case QgsFeatureRendererV2::RendererSingleSymbol:
-    {
-      QgsSingleSymbolRendererV2* r = rendererSingle();
-      symbols.append(r->symbol());
-    }
-      break;
-
-    case QgsFeatureRendererV2::RendererCategorizedSymbol:
-    {
-      QgsCategorizedSymbolRendererV2* r = rendererCategorized();
-      int i, count = r->categories().count();
-
-      for (i = 0; i < count; i++)
-      {
-        const QgsRendererCategoryV2& cat = r->categories()[i];
-        symbols.append(cat.symbol());
-      }
-    }
-      break;
-
-    case QgsFeatureRendererV2::RendererGraduatedSymbol:
-    {
-      QgsGraduatedSymbolRendererV2* r = rendererGraduated();
-      int i, count = r->ranges().count();
-
-      for (i = 0; i < count; i++)
-      {
-        const QgsRendererRangeV2& range = r->ranges()[i];
-        symbols.append(range.symbol());
-      }
-    }
-      break;
-
-    default:
-      break;
-  }
-
   QgsSymbolLevelsV2Dialog dlg(symbols, mRenderer->symbolLevels(), this);
   if (dlg.exec())
   {

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbollevelsv2dialog.h
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbollevelsv2dialog.h	2009-07-20 12:12:55 UTC (rev 11113)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbollevelsv2dialog.h	2009-07-20 14:02:24 UTC (rev 11114)
@@ -8,9 +8,7 @@
 
 #include "ui_qgssymbollevelsv2dialogbase.h"
 
-typedef QList<QgsSymbolV2*> QgsSymbolV2List;
 
-
 class QgsSymbolLevelsV2Dialog : public QDialog, private Ui::QgsSymbolLevelsV2DialogBase
 {
   Q_OBJECT



More information about the QGIS-commit mailing list