|
17 | 17 |
|
18 | 18 | #include "qgscomposerlegenditem.h"
|
19 | 19 | #include "qgsmaplayerregistry.h"
|
| 20 | +#include "qgsrasterlayer.h" |
20 | 21 | #include "qgssymbol.h"
|
21 | 22 | #include "qgssymbolv2.h"
|
22 | 23 | #include "qgssymbollayerv2utils.h"
|
@@ -220,6 +221,56 @@ void QgsComposerSymbolV2Item::setSymbolV2( QgsSymbolV2* s )
|
220 | 221 | mSymbolV2 = s;
|
221 | 222 | }
|
222 | 223 |
|
| 224 | +////////////////////QgsComposerRasterSymbolItem |
| 225 | + |
| 226 | +QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem(): QgsComposerLegendItem() |
| 227 | +{ |
| 228 | +} |
| 229 | + |
| 230 | +QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem( const QString& text ): QgsComposerLegendItem( text ) |
| 231 | +{ |
| 232 | +} |
| 233 | + |
| 234 | +QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem( const QIcon& icon, const QString& text ): QgsComposerLegendItem( icon, text ) |
| 235 | +{ |
| 236 | +} |
| 237 | + |
| 238 | +QgsComposerRasterSymbolItem::~QgsComposerRasterSymbolItem() |
| 239 | +{ |
| 240 | +} |
| 241 | + |
| 242 | +QStandardItem* QgsComposerRasterSymbolItem::clone() const |
| 243 | +{ |
| 244 | + QgsComposerRasterSymbolItem* cloneItem = new QgsComposerRasterSymbolItem(); |
| 245 | + *cloneItem = *this; |
| 246 | + cloneItem->setLayerID( mLayerID ); |
| 247 | + return cloneItem; |
| 248 | +} |
| 249 | + |
| 250 | +void QgsComposerRasterSymbolItem::writeXML( QDomElement& elem, QDomDocument& doc ) const |
| 251 | +{ |
| 252 | + QDomElement rasterClassElem = doc.createElement( "RasterClassificationItem" ); |
| 253 | + rasterClassElem.setAttribute( "layerId", mLayerID ); |
| 254 | + rasterClassElem.setAttribute( "text", text() ); |
| 255 | + elem.appendChild( rasterClassElem ); |
| 256 | +} |
| 257 | + |
| 258 | +void QgsComposerRasterSymbolItem::readXML( const QDomElement& itemElem ) |
| 259 | +{ |
| 260 | + if ( itemElem.isNull() ) |
| 261 | + { |
| 262 | + return; |
| 263 | + } |
| 264 | + setText( itemElem.attribute( "text", "" ) ); |
| 265 | + setLayerID( itemElem.attribute( "layerId", "" ) ); |
| 266 | + |
| 267 | + QgsRasterLayer* rLayer = qobject_cast<QgsRasterLayer*>( QgsMapLayerRegistry::instance()->mapLayer( mLayerID ) ); |
| 268 | + if ( rLayer ) |
| 269 | + { |
| 270 | + setIcon( QIcon( rLayer->legendAsPixmap( true ) ) ); |
| 271 | + } |
| 272 | +} |
| 273 | + |
223 | 274 | ////////////////////QgsComposerLayerItem
|
224 | 275 |
|
225 | 276 | QgsComposerLayerItem::QgsComposerLayerItem(): QgsComposerLegendItem()
|
@@ -285,6 +336,10 @@ void QgsComposerLayerItem::readXML( const QDomElement& itemElem )
|
285 | 336 | {
|
286 | 337 | currentChildItem = new QgsComposerSymbolV2Item();
|
287 | 338 | }
|
| 339 | + else if ( elemTag == "RasterClassificationItem" ) |
| 340 | + { |
| 341 | + currentChildItem = new QgsComposerRasterSymbolItem(); |
| 342 | + } |
288 | 343 | else
|
289 | 344 | {
|
290 | 345 | continue; //unsupported child type
|
|
0 commit comments