[QGIS Commit] r9020 -
branches/advanced_printing_branch/src/app/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Aug 7 06:10:17 EDT 2008
Author: mhugent
Date: 2008-08-07 06:10:17 -0400 (Thu, 07 Aug 2008)
New Revision: 9020
Modified:
branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp
branches/advanced_printing_branch/src/app/composer/qgslegendmodel.cpp
Log:
Display name of classification attribute in composer legend if option is set
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp 2008-08-07 09:54:28 UTC (rev 9019)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp 2008-08-07 10:10:17 UTC (rev 9020)
@@ -199,9 +199,9 @@
if(!symbolIcon.isNull() && p)
{
symbolIcon.paint(p, currentXCoord, currentYCoord, mSymbolWidth, mSymbolHeight);
+ currentXCoord += mSymbolWidth;
+ currentXCoord += mIconLabelSpace;
}
- currentXCoord += mSymbolWidth;
- currentXCoord += mIconLabelSpace;
}
//finally draw text
Modified: branches/advanced_printing_branch/src/app/composer/qgslegendmodel.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgslegendmodel.cpp 2008-08-07 09:54:28 UTC (rev 9019)
+++ branches/advanced_printing_branch/src/app/composer/qgslegendmodel.cpp 2008-08-07 10:10:17 UTC (rev 9020)
@@ -16,14 +16,17 @@
***************************************************************************/
#include "qgslegendmodel.h"
+#include "qgsfield.h"
#include "qgsmaplayer.h"
#include "qgsmaplayerregistry.h"
#include "qgsrasterlayer.h"
#include "qgsrenderer.h"
#include "qgssymbol.h"
+#include "qgsvectordataprovider.h"
#include "qgsvectorlayer.h"
#include <QDomDocument>
#include <QDomElement>
+#include <QSettings>
QgsLegendModel::QgsLegendModel(): QStandardItemModel()
{
@@ -96,6 +99,30 @@
return 3;
}
+ //text field that describes classification attribute?
+ QSettings settings;
+ if(settings.value("/qgis/showLegendClassifiers",false).toBool())
+ {
+ QgsVectorDataProvider* provider = vectorLayer->getDataProvider();
+
+ if(provider)
+ {
+ QgsFieldMap providerFields = provider->fields();
+ QgsAttributeList attributes = vectorRenderer->classificationAttributes();
+ QgsAttributeList::const_iterator att_it = attributes.constBegin();
+ for(; att_it != attributes.constEnd(); ++att_it)
+ {
+ QgsFieldMap::const_iterator fieldIt = providerFields.find(*att_it);
+ if(fieldIt != providerFields.constEnd())
+ {
+ QString attributeName = fieldIt.value().name();
+ QStandardItem* attributeItem = new QStandardItem(attributeName);
+ layerItem->setChild(layerItem->rowCount(), 0, attributeItem);
+ }
+ }
+ }
+ }
+
const QList<QgsSymbol*> vectorSymbols = vectorRenderer->symbols();
QList<QgsSymbol*>::const_iterator symbolIt = vectorSymbols.constBegin();
@@ -327,13 +354,14 @@
textItemElem.setAttribute("text", currentClassificationItem->text());
newLayerItem.appendChild(textItemElem);
}
-
- //else it can only be a raster item
- QDomElement rasterClassElem = doc.createElement("RasterItem");
- rasterClassElem.setAttribute("text", currentClassificationItem->text());
- //storing the layer id also in the raster item makes parsing easier
- rasterClassElem.setAttribute("layerId", currentLayerItem->data().toString());
- newLayerItem.appendChild(rasterClassElem);
+ else //else it can only be a raster item
+ {
+ QDomElement rasterClassElem = doc.createElement("RasterItem");
+ rasterClassElem.setAttribute("text", currentClassificationItem->text());
+ //storing the layer id also in the raster item makes parsing easier
+ rasterClassElem.setAttribute("layerId", currentLayerItem->data().toString());
+ newLayerItem.appendChild(rasterClassElem);
+ }
}
legendModelElem.appendChild(newLayerItem);
More information about the QGIS-commit
mailing list