File tree Expand file tree Collapse file tree 2 files changed +21
-7
lines changed Expand file tree Collapse file tree 2 files changed +21
-7
lines changed Original file line number Diff line number Diff line change @@ -6040,15 +6040,23 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
6040
6040
else if ( layer->type () == QgsMapLayer::RasterLayer )
6041
6041
{
6042
6042
const QgsRasterLayer *rlayer = qobject_cast<const QgsRasterLayer *>( layer );
6043
- if ( rlayer->providerKey () == " wms " )
6043
+ if ( rlayer->dataProvider ()-> dataType ( 1 ) != QgsRasterDataProvider::ARGBDataType )
6044
6044
{
6045
- mActionLocalHistogramStretch ->setEnabled ( false );
6046
- mActionFullHistogramStretch ->setEnabled ( false );
6045
+ if ( rlayer->dataProvider ()->capabilities () & QgsRasterDataProvider::Size )
6046
+ {
6047
+ mActionFullHistogramStretch ->setEnabled ( true );
6048
+ }
6049
+ else
6050
+ {
6051
+ // it would hang up reading the data for WMS for example
6052
+ mActionFullHistogramStretch ->setEnabled ( false );
6053
+ }
6054
+ mActionLocalHistogramStretch ->setEnabled ( true );
6047
6055
}
6048
6056
else
6049
6057
{
6050
- mActionLocalHistogramStretch ->setEnabled ( true );
6051
- mActionFullHistogramStretch ->setEnabled ( true );
6058
+ mActionLocalHistogramStretch ->setEnabled ( false );
6059
+ mActionFullHistogramStretch ->setEnabled ( false );
6052
6060
}
6053
6061
mActionLayerSubsetString ->setEnabled ( false );
6054
6062
mActionSelect ->setEnabled ( false );
Original file line number Diff line number Diff line change @@ -1126,8 +1126,14 @@ int QgsGdalProvider::capabilities() const
1126
1126
| QgsRasterDataProvider::ExactResolution
1127
1127
| QgsRasterDataProvider::EstimatedMinimumMaximum
1128
1128
| QgsRasterDataProvider::BuildPyramids
1129
- | QgsRasterDataProvider::Histogram
1130
- | QgsRasterDataProvider::Size;
1129
+ | QgsRasterDataProvider::Histogram;
1130
+ GDALDriverH myDriver = GDALGetDatasetDriver ( mGdalDataset );
1131
+ QString name = GDALGetDriverShortName ( myDriver );
1132
+ QgsDebugMsg ( " driver short name = " + name );
1133
+ if ( name != " WMS" )
1134
+ {
1135
+ capability |= QgsRasterDataProvider::Size;
1136
+ }
1131
1137
return capability;
1132
1138
}
1133
1139
You can’t perform that action at this time.
0 commit comments