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

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Nov 6 06:49:01 EST 2009


Author: wonder
Date: 2009-11-06 06:49:01 -0500 (Fri, 06 Nov 2009)
New Revision: 11932

Added:
   branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.cpp
   branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.h
Modified:
   branches/symbology-ng-branch/python/core/symbology-ng-core.sip
   branches/symbology-ng-branch/src/app/legend/qgslegendlayer.cpp
   branches/symbology-ng-branch/src/core/CMakeLists.txt
   branches/symbology-ng-branch/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
   branches/symbology-ng-branch/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
   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/core/symbology-ng/qgssinglesymbolrendererv2.cpp
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
Log:
Added renderer registry to allow custom renderers. GUI for renderers is still hardcoded.


Modified: branches/symbology-ng-branch/python/core/symbology-ng-core.sip
===================================================================
--- branches/symbology-ng-branch/python/core/symbology-ng-core.sip	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/python/core/symbology-ng-core.sip	2009-11-06 11:49:01 UTC (rev 11932)
@@ -34,18 +34,10 @@
 
 public:
 
-  enum RendererType
-  {
-    RendererSingleSymbol,
-    RendererCategorizedSymbol,
-    RendererGraduatedSymbol
-    // TODO: user type?
-  };
-
   //! return a new renderer - used by default in vector layers
   static QgsFeatureRendererV2* defaultRenderer(QGis::GeometryType geomType) /Factory/;
 
-  RendererType type() const;
+  QString type() const;
 
 	virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature)=0;
 	
@@ -69,7 +61,7 @@
   void setUsingSymbolLevels(bool usingSymbolLevels);
 
 protected:
-  QgsFeatureRendererV2(RendererType type);
+  QgsFeatureRendererV2(QString type);
 
 };
 

Modified: branches/symbology-ng-branch/src/app/legend/qgslegendlayer.cpp
===================================================================
--- branches/symbology-ng-branch/src/app/legend/qgslegendlayer.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/app/legend/qgslegendlayer.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -402,6 +402,7 @@
   QPixmap pix(iconSize);
   pix.fill(Qt::white);
   p.begin(&pix);
+  p.setRenderHint(QPainter::Antialiasing);
   sym->drawPreviewIcon(&p, iconSize);
   p.end();
   return pix;
@@ -417,54 +418,50 @@
   bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool();
 
   QgsFeatureRendererV2* renderer = layer->rendererV2();
-  switch (renderer->type())
+  QString rendererType = renderer->type();
+  if (rendererType == "singleSymbol")
   {
-    case QgsFeatureRendererV2::RendererSingleSymbol:
-      {
-        QgsSingleSymbolRendererV2* r = static_cast<QgsSingleSymbolRendererV2*>(renderer);
-        QPixmap pix = _symbolPreviewPixmap(r->symbol(), iconSize);
+   QgsSingleSymbolRendererV2* r = static_cast<QgsSingleSymbolRendererV2*>(renderer);
+    QPixmap pix = _symbolPreviewPixmap(r->symbol(), iconSize);
 
-        itemList.push_back( std::make_pair( "", pix ) );
-      }
-      break;
-    case QgsFeatureRendererV2::RendererCategorizedSymbol:
-      {
-        QgsCategorizedSymbolRendererV2* r = static_cast<QgsCategorizedSymbolRendererV2*>(renderer);
-        if (showClassifiers)
-        {
-          itemList.push_back( std::make_pair( r->classAttribute(), QPixmap() ) );
-        }
+    itemList.push_back( std::make_pair( "", pix ) );
+  }
+  else if (rendererType == "categorizedSymbol")
+  {
+    QgsCategorizedSymbolRendererV2* r = static_cast<QgsCategorizedSymbolRendererV2*>(renderer);
+    if (showClassifiers)
+    {
+      itemList.push_back( std::make_pair( r->classAttribute(), QPixmap() ) );
+    }
 
-        int count = r->categories().count();
-        for (int i = 0; i < count; i++)
-        {
-          const QgsRendererCategoryV2& cat = r->categories()[i];
-          QPixmap pix = _symbolPreviewPixmap( cat.symbol(), iconSize );
-          itemList.push_back( std::make_pair( cat.label(), pix ) );
-        }
-      }
-      break;
-    case QgsFeatureRendererV2::RendererGraduatedSymbol:
-      {
-        QgsGraduatedSymbolRendererV2* r = static_cast<QgsGraduatedSymbolRendererV2*>(renderer);
-        if (showClassifiers)
-        {
-          itemList.push_back( std::make_pair( r->classAttribute(), QPixmap() ) );
-        }
+    int count = r->categories().count();
+    for (int i = 0; i < count; i++)
+    {
+      const QgsRendererCategoryV2& cat = r->categories()[i];
+      QPixmap pix = _symbolPreviewPixmap( cat.symbol(), iconSize );
+      itemList.push_back( std::make_pair( cat.label(), pix ) );
+    }
+  }
+  else if (rendererType == "graduatedSymbol")
+  {
+    QgsGraduatedSymbolRendererV2* r = static_cast<QgsGraduatedSymbolRendererV2*>(renderer);
+    if (showClassifiers)
+    {
+      itemList.push_back( std::make_pair( r->classAttribute(), QPixmap() ) );
+    }
 
-        int count = r->ranges().count();
-        for (int i = 0; i < count; i++)
-        {
-          const QgsRendererRangeV2& range = r->ranges()[i];
-          QPixmap pix = _symbolPreviewPixmap( range.symbol(), iconSize );
-          itemList.push_back( std::make_pair( range.label(), pix ) );
-        }
-      }
-      break;
-    default:
-      // nothing for unknown renderers
-      break;
+    int count = r->ranges().count();
+    for (int i = 0; i < count; i++)
+    {
+      const QgsRendererRangeV2& range = r->ranges()[i];
+      QPixmap pix = _symbolPreviewPixmap( range.symbol(), iconSize );
+      itemList.push_back( std::make_pair( range.label(), pix ) );
+    }
   }
+  else
+  {
+    // nothing for unknown renderers
+  }
 
   changeSymbologySettings( layer, itemList );
 }

Modified: branches/symbology-ng-branch/src/core/CMakeLists.txt
===================================================================
--- branches/symbology-ng-branch/src/core/CMakeLists.txt	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/CMakeLists.txt	2009-11-06 11:49:01 UTC (rev 11932)
@@ -13,6 +13,7 @@
   symbology-ng/qgsmarkersymbollayerv2.cpp
   symbology-ng/qgsfillsymbollayerv2.cpp
   symbology-ng/qgsrendererv2.cpp
+  symbology-ng/qgsrendererv2registry.cpp
   symbology-ng/qgssinglesymbolrendererv2.cpp
   symbology-ng/qgscategorizedsymbolrendererv2.cpp
   symbology-ng/qgsgraduatedsymbolrendererv2.cpp

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -64,7 +64,7 @@
 ///////////////////
 
 QgsCategorizedSymbolRendererV2::QgsCategorizedSymbolRendererV2(QString attrName, QgsCategoryList categories)
-  : QgsFeatureRendererV2(RendererCategorizedSymbol),
+  : QgsFeatureRendererV2("categorizedSymbol"),
     mAttrName(attrName),
     mCategories(categories),
     mSourceSymbol(NULL),

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -69,7 +69,7 @@
 
 
 QgsGraduatedSymbolRendererV2::QgsGraduatedSymbolRendererV2(QString attrName, QgsRangeList ranges)
-  : QgsFeatureRendererV2(RendererGraduatedSymbol),
+  : QgsFeatureRendererV2("graduatedSymbol"),
     mAttrName(attrName),
     mRanges(ranges),
     mMode(Custom),

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -5,9 +5,7 @@
 
 #include "qgssinglesymbolrendererv2.h" // for default renderer
 
-// TODO: to be removed once renderer registry is in place
-#include "qgscategorizedsymbolrendererv2.h"
-#include "qgsgraduatedsymbolrendererv2.h"
+#include "qgsrendererv2registry.h"
 
 #include "qgsrendercontext.h"
 #include "qgsgeometry.h"
@@ -121,7 +119,7 @@
 }
 
 
-QgsFeatureRendererV2::QgsFeatureRendererV2(RendererType type)
+QgsFeatureRendererV2::QgsFeatureRendererV2(QString type)
   : mType(type), mUsingSymbolLevels(false)
 {
 }
@@ -268,22 +266,13 @@
   // load renderer
   QString rendererType = element.attribute("type");
 
-  // TODO: use renderer registry
-  if (rendererType == "singleSymbol")
-  {
-    return QgsSingleSymbolRendererV2::create(element);
-  }
-  else if (rendererType == "categorizedSymbol")
-  {
-    return QgsCategorizedSymbolRendererV2::create(element);
-  }
-  else if (rendererType == "graduatedSymbol")
-  {
-    return QgsGraduatedSymbolRendererV2::create(element);
-  }
+  QgsRendererV2CreateFunc pfCreate = QgsRendererV2Registry::instance()->rendererCreateFunction(rendererType);
 
-  // unknown renderer type
-  return NULL;
+  // unknown renderer type?
+  if (pfCreate == NULL)
+    return NULL;
+
+  return pfCreate(element);
 }
 
 QDomElement QgsFeatureRendererV2::save(QDomDocument& doc)

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h	2009-11-06 11:49:01 UTC (rev 11932)
@@ -50,18 +50,10 @@
 public:
 	// renderer takes ownership of its symbols!
   
-  enum RendererType
-  {
-    RendererSingleSymbol,
-    RendererCategorizedSymbol,
-    RendererGraduatedSymbol
-    // TODO: user type?
-  };
-
   //! return a new renderer - used by default in vector layers
   static QgsFeatureRendererV2* defaultRenderer(QGis::GeometryType geomType);
   
-  RendererType type() const { return mType; }
+  QString type() const { return mType; }
 	
 	// to be overridden
 	virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature)=0;
@@ -100,9 +92,9 @@
 
 
 protected:
-  QgsFeatureRendererV2(RendererType type);
+  QgsFeatureRendererV2(QString type);
 
-  RendererType mType;
+  QString mType;
 
   bool mUsingSymbolLevels;
 };

Added: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.cpp	                        (rev 0)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -0,0 +1,47 @@
+#include "qgsrendererv2registry.h"
+
+// default renderers
+#include "qgssinglesymbolrendererv2.h"
+#include "qgscategorizedsymbolrendererv2.h"
+#include "qgsgraduatedsymbolrendererv2.h"
+
+
+QgsRendererV2Registry* QgsRendererV2Registry::mInstance = NULL;
+
+QgsRendererV2Registry::QgsRendererV2Registry()
+{
+  // add default renderers
+  addRenderer("singleSymbol", QgsSingleSymbolRendererV2::create);
+  addRenderer("categorizedSymbol", QgsCategorizedSymbolRendererV2::create);
+  addRenderer("graduatedSymbol", QgsGraduatedSymbolRendererV2::create);
+}
+
+QgsRendererV2Registry* QgsRendererV2Registry::instance()
+{
+  if (!mInstance)
+    mInstance = new QgsRendererV2Registry();
+
+  return mInstance;
+}
+
+
+bool QgsRendererV2Registry::addRenderer(QString rendererName, QgsRendererV2CreateFunc pfCreate)
+{
+  if (mRenderers.contains(rendererName))
+    return false;
+  mRenderers.insert(rendererName, pfCreate);
+  return true;
+}
+
+bool QgsRendererV2Registry::removeRenderer(QString rendererName)
+{
+  if (!mRenderers.contains(rendererName))
+    return false;
+  mRenderers.remove(rendererName);
+  return true;
+}
+
+QgsRendererV2CreateFunc QgsRendererV2Registry::rendererCreateFunction(QString rendererName)
+{
+  return mRenderers.value(rendererName, NULL);
+}

Added: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.h	                        (rev 0)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2registry.h	2009-11-06 11:49:01 UTC (rev 11932)
@@ -0,0 +1,37 @@
+#ifndef QGSRENDERERV2REGISTRY_H
+#define QGSRENDERERV2REGISTRY_H
+
+#include <QMap>
+
+class QgsFeatureRendererV2;
+class QDomElement;
+
+typedef QgsFeatureRendererV2* (*QgsRendererV2CreateFunc)(QDomElement&);
+
+/**
+  Registry of renderers.
+
+  This is a singleton, renderers can be added / removed at any time
+ */
+class QgsRendererV2Registry
+{
+public:
+
+  static QgsRendererV2Registry* instance();
+
+  bool addRenderer(QString rendererName, QgsRendererV2CreateFunc pfCreate);
+
+  bool removeRenderer(QString rendererName);
+
+  QgsRendererV2CreateFunc rendererCreateFunction(QString rendererName);
+
+protected:
+  //! protected constructor
+  QgsRendererV2Registry();
+
+  static QgsRendererV2Registry* mInstance;
+
+  QMap<QString, QgsRendererV2CreateFunc> mRenderers;
+};
+
+#endif // QGSRENDERERV2REGISTRY_H

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -8,7 +8,7 @@
 #include <QDomElement>
 
 QgsSingleSymbolRendererV2::QgsSingleSymbolRendererV2(QgsSymbolV2* symbol)
-  : QgsFeatureRendererV2(RendererSingleSymbol)
+  : QgsFeatureRendererV2("singleSymbol")
 {
   mSymbol = symbol;
 }

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-11-06 11:23:17 UTC (rev 11931)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-11-06 11:49:01 UTC (rev 11932)
@@ -54,7 +54,7 @@
   connect(radGraduated, SIGNAL(clicked()), this, SLOT(updateRenderer()));
   
   // simple symbol page
-  if (mRenderer->type() == QgsFeatureRendererV2::RendererSingleSymbol)
+  if (mRenderer->type() == "singleSymbol")
     mSingleSymbol = ((QgsSingleSymbolRendererV2*)mRenderer)->symbol()->clone();
   else
     mSingleSymbol = QgsSymbolV2::defaultSymbol(mLayer->geometryType());
@@ -127,19 +127,19 @@
 
 QgsSingleSymbolRendererV2* QgsRendererV2PropertiesDialog::rendererSingle()
 {
-  Q_ASSERT(mRenderer != NULL && mRenderer->type() == QgsFeatureRendererV2::RendererSingleSymbol);
+  Q_ASSERT(mRenderer != NULL && mRenderer->type() == "singleSymbol");
   return static_cast<QgsSingleSymbolRendererV2*>(mRenderer);
 }
 
 QgsCategorizedSymbolRendererV2* QgsRendererV2PropertiesDialog::rendererCategorized()
 {
-  Q_ASSERT(mRenderer != NULL && mRenderer->type() == QgsFeatureRendererV2::RendererCategorizedSymbol);
+  Q_ASSERT(mRenderer != NULL && mRenderer->type() == "categorizedSymbol");
   return static_cast<QgsCategorizedSymbolRendererV2*>(mRenderer);
 }
 
 QgsGraduatedSymbolRendererV2* QgsRendererV2PropertiesDialog::rendererGraduated()
 {
-  Q_ASSERT(mRenderer != NULL && mRenderer->type() == QgsFeatureRendererV2::RendererGraduatedSymbol);
+  Q_ASSERT(mRenderer != NULL && mRenderer->type() == "graduatedSymbol");
   return static_cast<QgsGraduatedSymbolRendererV2*>(mRenderer);
 }
 
@@ -167,101 +167,93 @@
 
 void QgsRendererV2PropertiesDialog::updateUiFromRenderer()
 {
-  switch (mRenderer->type())
+  QString rendererType = mRenderer->type();
+
+  if (rendererType == "singleSymbol")
   {
-    case QgsFeatureRendererV2::RendererSingleSymbol:
-      radSingleSymbol->setChecked(true);
-    
-      stackedWidget->setCurrentWidget(pageSingleSymbol);
-      //updateSingleSymbolIcon();
-      break;
-      
-    case QgsFeatureRendererV2::RendererCategorizedSymbol:
-      radCategorized->setChecked(true);
-    
-      stackedWidget->setCurrentWidget(pageCategorized);
+    radSingleSymbol->setChecked(true);
+
+    stackedWidget->setCurrentWidget(pageSingleSymbol);
+    //updateSingleSymbolIcon();
+  }
+  else if (rendererType == "categorizedSymbol")
+  {
+    radCategorized->setChecked(true);
+
+    stackedWidget->setCurrentWidget(pageCategorized);
+    updateCategorizedSymbolIcon();
+    populateCategories();
+
+    QgsCategorizedSymbolRendererV2* r = rendererCategorized();
+
+    // set column
+    disconnect(cboCategorizedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(categoryColumnChanged()));
+    QString attrName = r->classAttribute();
+    int idx = cboCategorizedColumn->findText(attrName, Qt::MatchExactly);
+    cboCategorizedColumn->setCurrentIndex(idx >= 0 ? idx : 0);
+    connect(cboCategorizedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(categoryColumnChanged()));
+
+    // set source symbol
+    if (r->sourceSymbol())
+    {
+      delete mCategorizedSymbol;
+      mCategorizedSymbol = r->sourceSymbol()->clone();
       updateCategorizedSymbolIcon();
-      populateCategories();
+    }
 
-      {
-        QgsCategorizedSymbolRendererV2* r = rendererCategorized();
+    // set source color ramp
+    if (r->sourceColorRamp())
+    {
+      QSize rampIconSize(50,16);
+      QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon(r->sourceColorRamp(), rampIconSize);
+      if (cboCategorizedColorRamp->itemText(0) == "[source]")
+        cboCategorizedColorRamp->setItemIcon(0, icon);
+      else
+        cboCategorizedColorRamp->insertItem(0, icon, "[source]");
+      cboCategorizedColorRamp->setCurrentIndex(0);
+    }
+  }
+  else if (rendererType == "graduatedSymbol")
+  {
+    radGraduated->setChecked(true);
 
-        // set column
-        disconnect(cboCategorizedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(categoryColumnChanged()));
-        QString attrName = r->classAttribute();
-        int idx = cboCategorizedColumn->findText(attrName, Qt::MatchExactly);
-        cboCategorizedColumn->setCurrentIndex(idx >= 0 ? idx : 0);
-        connect(cboCategorizedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(categoryColumnChanged()));
+    stackedWidget->setCurrentWidget(pageGraduated);
+    updateGraduatedSymbolIcon();
+    populateRanges();
 
-        // set source symbol
-        if (r->sourceSymbol())
-        {
-          delete mCategorizedSymbol;
-          mCategorizedSymbol = r->sourceSymbol()->clone();
-          updateCategorizedSymbolIcon();
-        }
+    // update UI from the graduated renderer (update combo boxes, view)
+    QgsGraduatedSymbolRendererV2* r = rendererGraduated();
+    if (r->mode() < cboGraduatedMode->count())
+      cboGraduatedMode->setCurrentIndex( r->mode() );
+    if (r->ranges().count())
+      spinGraduatedClasses->setValue( r->ranges().count() );
 
-        // set source color ramp
-        if (r->sourceColorRamp())
-        {
-          QSize rampIconSize(50,16);
-          QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon(r->sourceColorRamp(), rampIconSize);
-          if (cboCategorizedColorRamp->itemText(0) == "[source]")
-            cboCategorizedColorRamp->setItemIcon(0, icon);
-          else
-            cboCategorizedColorRamp->insertItem(0, icon, "[source]");
-          cboCategorizedColorRamp->setCurrentIndex(0);
-        }
-      }
+    // set column
+    //disconnect(cboGraduatedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(graduatedColumnChanged()));
+    QString attrName = r->classAttribute();
+    int idx = cboGraduatedColumn->findText(attrName, Qt::MatchExactly);
+    cboGraduatedColumn->setCurrentIndex(idx >= 0 ? idx : 0);
+    //connect(cboGraduatedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(graduatedColumnChanged()));
 
-      break;
-  
-    case QgsFeatureRendererV2::RendererGraduatedSymbol:
-      radGraduated->setChecked(true);
-      
-      stackedWidget->setCurrentWidget(pageGraduated);
+    // set source symbol
+    if (r->sourceSymbol())
+    {
+      delete mGraduatedSymbol;
+      mGraduatedSymbol = r->sourceSymbol()->clone();
       updateGraduatedSymbolIcon();
-      populateRanges();
-      
-      {
-        // update UI from the graduated renderer (update combo boxes, view)
-        QgsGraduatedSymbolRendererV2* r = rendererGraduated();
-        if (r->mode() < cboGraduatedMode->count())
-          cboGraduatedMode->setCurrentIndex( r->mode() );
-        if (r->ranges().count())
-          spinGraduatedClasses->setValue( r->ranges().count() );
-        
-        // set column
-        //disconnect(cboGraduatedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(graduatedColumnChanged()));
-        QString attrName = r->classAttribute();
-        int idx = cboGraduatedColumn->findText(attrName, Qt::MatchExactly);
-        cboGraduatedColumn->setCurrentIndex(idx >= 0 ? idx : 0);
-        //connect(cboGraduatedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(graduatedColumnChanged()));
+    }
 
-        // set source symbol
-        if (r->sourceSymbol())
-        {
-          delete mGraduatedSymbol;
-          mGraduatedSymbol = r->sourceSymbol()->clone();
-          updateGraduatedSymbolIcon();
-        }
-
-        // set source color ramp
-        if (r->sourceColorRamp())
-        {
-          QSize rampIconSize(50,16);
-          QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon(r->sourceColorRamp(), rampIconSize);
-          if (cboGraduatedColorRamp->itemText(0) == "[source]")
-            cboGraduatedColorRamp->setItemIcon(0, icon);
-          else
-            cboGraduatedColorRamp->insertItem(0, icon, "[source]");
-          cboGraduatedColorRamp->setCurrentIndex(0);
-        }
-      }
-      break;
-      
-    default: // custom renderer
-      break;
+    // set source color ramp
+    if (r->sourceColorRamp())
+    {
+      QSize rampIconSize(50,16);
+      QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon(r->sourceColorRamp(), rampIconSize);
+      if (cboGraduatedColorRamp->itemText(0) == "[source]")
+        cboGraduatedColorRamp->setItemIcon(0, icon);
+      else
+        cboGraduatedColorRamp->insertItem(0, icon, "[source]");
+      cboGraduatedColorRamp->setCurrentIndex(0);
+    }
   }
 }
 



More information about the QGIS-commit mailing list