[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