|
38 | 38 | #include "qgsrenderer.h"
|
39 | 39 | #include "qgsrendererregistry.h"
|
40 | 40 | #include "qgsmaplayerregistry.h"
|
| 41 | +#include "qgsrasterdataprovider.h" |
41 | 42 | #include "qgsrasterlayer.h"
|
42 | 43 | #include "qgsmaplayerconfigwidget.h"
|
43 | 44 | #include "qgsmaplayerstylemanagerwidget.h"
|
@@ -171,10 +172,14 @@ void QgsLayerStylingWidget::setLayer( QgsMapLayer *layer )
|
171 | 172 | transparencyItem->setToolTip( tr( "Transparency" ) );
|
172 | 173 | transparencyItem->setData( Qt::UserRole, RasterTransparency );
|
173 | 174 | mOptionsListWidget->addItem( transparencyItem );
|
174 |
| - QListWidgetItem* histogramItem = new QListWidgetItem( QgsApplication::getThemeIcon( "propertyicons/histogram.png" ), QString() ); |
175 |
| - histogramItem->setData( Qt::UserRole, RasterHistogram ); |
176 |
| - mOptionsListWidget->addItem( histogramItem ); |
177 |
| - histogramItem->setToolTip( tr( "Histogram" ) ); |
| 175 | + |
| 176 | + if ( static_cast<QgsRasterLayer*>( layer )->dataProvider()->capabilities() & QgsRasterDataProvider::Size ) |
| 177 | + { |
| 178 | + QListWidgetItem* histogramItem = new QListWidgetItem( QgsApplication::getThemeIcon( "propertyicons/histogram.png" ), QString() ); |
| 179 | + histogramItem->setData( Qt::UserRole, RasterHistogram ); |
| 180 | + mOptionsListWidget->addItem( histogramItem ); |
| 181 | + histogramItem->setToolTip( tr( "Histogram" ) ); |
| 182 | + } |
178 | 183 | }
|
179 | 184 |
|
180 | 185 | Q_FOREACH ( QgsMapLayerConfigWidgetFactory* factory, mPageFactories )
|
@@ -392,21 +397,24 @@ void QgsLayerStylingWidget::updateCurrentWidgetLayer()
|
392 | 397 | }
|
393 | 398 | case 2: // Histogram
|
394 | 399 | {
|
395 |
| - if ( mRasterStyleWidget ) |
| 400 | + if ( rlayer->dataProvider()->capabilities() & QgsRasterDataProvider::Size ) |
396 | 401 | {
|
397 |
| - mRasterStyleWidget->deleteLater(); |
398 |
| - delete mRasterStyleWidget; |
| 402 | + if ( mRasterStyleWidget ) |
| 403 | + { |
| 404 | + mRasterStyleWidget->deleteLater(); |
| 405 | + delete mRasterStyleWidget; |
| 406 | + } |
| 407 | + mRasterStyleWidget = new QgsRendererRasterPropertiesWidget( rlayer, mMapCanvas, mWidgetStack ); |
| 408 | + mRasterStyleWidget->syncToLayer( rlayer ); |
| 409 | + connect( mRasterStyleWidget, SIGNAL( widgetChanged() ), this, SLOT( autoApply() ) ); |
| 410 | + |
| 411 | + QgsRasterHistogramWidget* widget = new QgsRasterHistogramWidget( rlayer, mWidgetStack ); |
| 412 | + connect( widget, SIGNAL( widgetChanged() ), this, SLOT( autoApply() ) ); |
| 413 | + QString name = mRasterStyleWidget->currentRenderWidget()->renderer()->type(); |
| 414 | + widget->setRendererWidget( name, mRasterStyleWidget->currentRenderWidget() ); |
| 415 | + |
| 416 | + mWidgetStack->addMainPanel( widget ); |
399 | 417 | }
|
400 |
| - mRasterStyleWidget = new QgsRendererRasterPropertiesWidget( rlayer, mMapCanvas, mWidgetStack ); |
401 |
| - mRasterStyleWidget->syncToLayer( rlayer ); |
402 |
| - connect( mRasterStyleWidget, SIGNAL( widgetChanged() ), this, SLOT( autoApply() ) ); |
403 |
| - |
404 |
| - QgsRasterHistogramWidget* widget = new QgsRasterHistogramWidget( rlayer, mWidgetStack ); |
405 |
| - connect( widget, SIGNAL( widgetChanged() ), this, SLOT( autoApply() ) ); |
406 |
| - QString name = mRasterStyleWidget->currentRenderWidget()->renderer()->type(); |
407 |
| - widget->setRendererWidget( name, mRasterStyleWidget->currentRenderWidget() ); |
408 |
| - |
409 |
| - mWidgetStack->addMainPanel( widget ); |
410 | 418 | break;
|
411 | 419 | }
|
412 | 420 | default:
|
|
0 commit comments