[QGIS Commit] r12852 - in trunk/qgis: python/core src/core/symbology-ng src/gui/symbology-ng

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Jan 29 15:19:38 EST 2010


Author: wonder
Date: 2010-01-29 15:19:37 -0500 (Fri, 29 Jan 2010)
New Revision: 12852

Modified:
   trunk/qgis/python/core/symbology-ng-core.sip
   trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.cpp
   trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.h
   trunk/qgis/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
Log:
QgsRendererV2 metadata: for renderer icon use QIcon instead of icon file name.


Modified: trunk/qgis/python/core/symbology-ng-core.sip
===================================================================
--- trunk/qgis/python/core/symbology-ng-core.sip	2010-01-29 15:13:41 UTC (rev 12851)
+++ trunk/qgis/python/core/symbology-ng-core.sip	2010-01-29 20:19:37 UTC (rev 12852)
@@ -809,12 +809,14 @@
 %End
 
   public:
-    QgsRendererV2AbstractMetadata( QString name, QString visibleName, QString iconName = QString() );
+    QgsRendererV2AbstractMetadata( QString name, QString visibleName, QIcon icon = QIcon() );
 
     QString name() const;
     QString visibleName() const;
-    QString iconName() const;
 
+    QIcon icon() const;
+    void setIcon(const QIcon& icon);
+
     /** Return new instance of the renderer given the DOM element. Returns NULL on error.
      * Pure virtual function: must be implemented in derived classes.  */
     virtual QgsFeatureRendererV2* createRenderer( QDomElement& elem ) = 0 /Factory/;

Modified: trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.cpp
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.cpp	2010-01-29 15:13:41 UTC (rev 12851)
+++ trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.cpp	2010-01-29 20:19:37 UTC (rev 12852)
@@ -13,16 +13,13 @@
   // add default renderers
   addRenderer( new QgsRendererV2Metadata( "singleSymbol",
                                       QObject::tr( "Single Symbol" ),
-                                      QgsSingleSymbolRendererV2::create,
-                                      "rendererSingleSymbol.png" ) );
+                                      QgsSingleSymbolRendererV2::create ) );
   addRenderer( new QgsRendererV2Metadata( "categorizedSymbol",
                                       QObject::tr( "Categorized" ),
-                                      QgsCategorizedSymbolRendererV2::create,
-                                      "rendererCategorizedSymbol.png" ) );
+                                      QgsCategorizedSymbolRendererV2::create ) );
   addRenderer( new QgsRendererV2Metadata( "graduatedSymbol",
                                       QObject::tr( "Graduated" ),
-                                      QgsGraduatedSymbolRendererV2::create,
-                                      "rendererGraduatedSymbol.png" ) );
+                                      QgsGraduatedSymbolRendererV2::create ) );
 }
 
 QgsRendererV2Registry::~QgsRendererV2Registry()

Modified: trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.h
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.h	2010-01-29 15:13:41 UTC (rev 12851)
+++ trunk/qgis/src/core/symbology-ng/qgsrendererv2registry.h	2010-01-29 20:19:37 UTC (rev 12852)
@@ -1,6 +1,7 @@
 #ifndef QGSRENDERERV2REGISTRY_H
 #define QGSRENDERERV2REGISTRY_H
 
+#include <QIcon>
 #include <QMap>
 #include <QStringList>
 
@@ -19,13 +20,15 @@
 class CORE_EXPORT QgsRendererV2AbstractMetadata
 {
   public:
-    QgsRendererV2AbstractMetadata( QString name, QString visibleName, QString iconName = QString() )
-        : mName( name ), mVisibleName( visibleName ), mIconName( iconName ) {}
+    QgsRendererV2AbstractMetadata( QString name, QString visibleName, QIcon icon = QIcon() )
+        : mName( name ), mVisibleName( visibleName ), mIcon( icon ) {}
 
     QString name() const { return mName; }
     QString visibleName() const { return mVisibleName; }
-    QString iconName() const { return mIconName; }
 
+    QIcon icon() const { return mIcon; }
+    void setIcon(const QIcon& icon) { mIcon = icon; }
+
     /** Return new instance of the renderer given the DOM element. Returns NULL on error.
      * Pure virtual function: must be implemented in derived classes.  */
     virtual QgsFeatureRendererV2* createRenderer( QDomElement& elem ) = 0;
@@ -39,7 +42,7 @@
     //! name visible for users (translatable)
     QString mVisibleName;
     //! icon to be shown in the renderer properties dialog
-    QString mIconName;
+    QIcon mIcon;
 };
 
 
@@ -57,9 +60,9 @@
     QgsRendererV2Metadata( QString name,
                            QString visibleName,
                            QgsRendererV2CreateFunc pfCreate,
-                           QString iconName = QString(),
+                           QIcon icon = QIcon(),
                            QgsRendererV2WidgetFunc pfWidget = NULL )
-        : QgsRendererV2AbstractMetadata( name, visibleName, iconName ), mCreateFunc( pfCreate ), mWidgetFunc( pfWidget ) {}
+        : QgsRendererV2AbstractMetadata( name, visibleName, icon ), mCreateFunc( pfCreate ), mWidgetFunc( pfWidget ) {}
 
     virtual QgsFeatureRendererV2* createRenderer( QDomElement& elem ) { return mCreateFunc ? mCreateFunc(elem):NULL; }
     virtual QgsRendererV2Widget* createRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer )

Modified: trunk/qgis/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
===================================================================
--- trunk/qgis/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2010-01-29 15:13:41 UTC (rev 12851)
+++ trunk/qgis/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2010-01-29 20:19:37 UTC (rev 12852)
@@ -18,7 +18,7 @@
 #include <QKeyEvent>
 #include <QMessageBox>
 
-static bool _initRendererWidgetFunction(QString name, QgsRendererV2WidgetFunc f )
+static bool _initRenderer(QString name, QgsRendererV2WidgetFunc f, QString iconName )
 {
   QgsRendererV2Registry* reg = QgsRendererV2Registry::instance();
   QgsRendererV2AbstractMetadata* am = reg->rendererMetadata( name );
@@ -29,6 +29,12 @@
     return false;
 
   m->setWidgetFunction(f);
+
+  QString iconPath = QgsApplication::defaultThemePath() + iconName;
+  QPixmap pix;
+  if ( pix.load( iconPath, "png" ) )
+    m->setIcon(pix);
+
   QgsDebugMsg("Set for "+name);
   return true;
 }
@@ -39,9 +45,9 @@
   if (initialized)
     return;
 
-  _initRendererWidgetFunction( "singleSymbol", QgsSingleSymbolRendererV2Widget::create );
-  _initRendererWidgetFunction( "categorizedSymbol", QgsCategorizedSymbolRendererV2Widget::create );
-  _initRendererWidgetFunction( "graduatedSymbol", QgsGraduatedSymbolRendererV2Widget::create );
+  _initRenderer( "singleSymbol", QgsSingleSymbolRendererV2Widget::create, "rendererSingleSymbol.png" );
+  _initRenderer( "categorizedSymbol", QgsCategorizedSymbolRendererV2Widget::create, "rendererCategorizedSymbol.png" );
+  _initRenderer( "graduatedSymbol", QgsGraduatedSymbolRendererV2Widget::create, "rendererGraduatedSymbol.png" );
   initialized = true;
 }
 
@@ -70,12 +76,7 @@
   foreach( QString name, renderers )
   {
     QgsRendererV2AbstractMetadata* m = reg->rendererMetadata( name );
-
-    QString iconPath = QgsApplication::defaultThemePath() + m->iconName();
-    if ( !pix.load( iconPath, "png" ) )
-      pix = QPixmap();
-
-    cboRenderers->addItem( QIcon( pix ), m->visibleName(), name );
+    cboRenderers->addItem( m->icon(), m->visibleName(), name );
   }
 
   cboRenderers->setCurrentIndex( -1 ); // set no current renderer



More information about the QGIS-commit mailing list