Skip to content

Commit

Permalink
[settings] migrate raster settings (#51600)
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Jan 27, 2023
1 parent da29df8 commit b3e4295
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 6 deletions.
1 change: 1 addition & 0 deletions python/core/auto_generated/raster/qgsrasterlayer.sip.in
Expand Up @@ -36,6 +36,7 @@ Sample usage of the :py:class:`QgsRasterLayer` class:
%End
public:


static const double SAMPLE_SIZE;

static const QgsContrastEnhancement::ContrastEnhancementAlgorithm SINGLE_BAND_ENHANCEMENT_ALGORITHM;
Expand Down
8 changes: 4 additions & 4 deletions src/app/options/qgsrasterrenderingoptions.cpp
Expand Up @@ -51,9 +51,9 @@ QgsRasterRenderingOptionsWidget::QgsRasterRenderingOptionsWidget( QWidget *paren
QString zoomedOutResampling = settings.value( QStringLiteral( "/Raster/defaultZoomedOutResampling" ), QStringLiteral( "nearest neighbour" ) ).toString();
mZoomedOutResamplingComboBox->setCurrentIndex( mZoomedOutResamplingComboBox->findData( zoomedOutResampling ) );

spnOversampling->setValue( settings.value( QStringLiteral( "/Raster/defaultOversampling" ), 2.0 ).toDouble() );
spnOversampling->setValue( QgsRasterLayer::settingsRasterDefaultOversampling->value() );
spnOversampling->setClearValue( 2.0 );
mCbEarlyResampling->setChecked( settings.value( QStringLiteral( "/Raster/defaultEarlyResampling" ), false ).toBool() );
mCbEarlyResampling->setChecked( QgsRasterLayer::settingsRasterDefaultEarlyResampling->value() );

initContrastEnhancement( cboxContrastEnhancementAlgorithmSingleBand, QStringLiteral( "singleBand" ),
QgsContrastEnhancement::contrastEnhancementAlgorithmString( QgsRasterLayer::SINGLE_BAND_ENHANCEMENT_ALGORITHM ) );
Expand Down Expand Up @@ -89,8 +89,8 @@ void QgsRasterRenderingOptionsWidget::apply()
settings.setValue( QStringLiteral( "/Raster/defaultZoomedInResampling" ), mZoomedInResamplingComboBox->currentData().toString() );
settings.setValue( QStringLiteral( "/Raster/defaultZoomedOutResampling" ), mZoomedOutResamplingComboBox->currentData().toString() );

settings.setValue( QStringLiteral( "/Raster/defaultOversampling" ), spnOversampling->value() );
settings.setValue( QStringLiteral( "/Raster/defaultEarlyResampling" ), mCbEarlyResampling->isChecked() );
QgsRasterLayer::settingsRasterDefaultOversampling->setValue( spnOversampling->value() );
QgsRasterLayer::settingsRasterDefaultEarlyResampling->setValue( mCbEarlyResampling->isChecked() );

saveContrastEnhancement( cboxContrastEnhancementAlgorithmSingleBand, QStringLiteral( "singleBand" ) );
saveContrastEnhancement( cboxContrastEnhancementAlgorithmMultiBandSingleByte, QStringLiteral( "multiBandSingleByte" ) );
Expand Down
8 changes: 6 additions & 2 deletions src/core/raster/qgsrasterlayer.cpp
Expand Up @@ -58,6 +58,7 @@ email : tim at linfiniti.com
#include "qgsrasterlayerelevationproperties.h"
#include "qgsrasterlayerprofilegenerator.h"
#include "qgsthreadingutils.h"
#include "qgssettingsentryimpl.h"

#include <cmath>
#include <cstdio>
Expand All @@ -83,6 +84,9 @@ email : tim at linfiniti.com
#include <QSlider>
#include <QUrl>

const QgsSettingsEntryDouble *QgsRasterLayer::settingsRasterDefaultOversampling = new QgsSettingsEntryDouble( QStringLiteral( "default-oversampling" ), QgsSettings::sTreeRaster, 2.0 );
const QgsSettingsEntryBool *QgsRasterLayer::settingsRasterDefaultEarlyResampling = new QgsSettingsEntryBool( QStringLiteral( "default-early-resampling" ), QgsSettings::sTreeRaster, false );

#define ERR(message) QGS_ERROR_MESSAGE(message,"Raster layer")

const double QgsRasterLayer::SAMPLE_SIZE = 250000;
Expand Down Expand Up @@ -939,12 +943,12 @@ void QgsRasterLayer::setDataProvider( QString const &provider, const QgsDataProv
mDataProvider->setZoomedOutResamplingMethod( QgsRasterDataProvider::ResamplingMethod::Bilinear );
}

const double maxOversampling = settings.value( QStringLiteral( "/Raster/defaultOversampling" ), 2.0 ).toDouble();
const double maxOversampling = QgsRasterLayer::settingsRasterDefaultOversampling->value();
resampleFilter->setMaxOversampling( maxOversampling );
mDataProvider->setMaxOversampling( maxOversampling );

if ( ( mDataProvider->providerCapabilities() & QgsRasterDataProvider::ProviderHintCanPerformProviderResampling ) &&
settings.value( QStringLiteral( "/Raster/defaultEarlyResampling" ), false ).toBool() )
QgsRasterLayer::settingsRasterDefaultEarlyResampling->value() )
{
setResamplingStage( Qgis::RasterResamplingStage::Provider );
}
Expand Down
5 changes: 5 additions & 0 deletions src/core/raster/qgsrasterlayer.h
Expand Up @@ -48,6 +48,8 @@ class QgsRasterResampleFilter;
class QgsBrightnessContrastFilter;
class QgsHueSaturationFilter;
class QgsRasterLayerElevationProperties;
class QgsSettingsEntryBool;
class QgsSettingsEntryDouble;

class QImage;
class QPixmap;
Expand Down Expand Up @@ -78,6 +80,9 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer, public QgsAbstractProfile

public:

static const QgsSettingsEntryBool *settingsRasterDefaultEarlyResampling SIP_SKIP;
static const QgsSettingsEntryDouble *settingsRasterDefaultOversampling SIP_SKIP;

//! \brief Default sample size (number of pixels) for estimated statistics/histogram calculation
static const double SAMPLE_SIZE;

Expand Down
1 change: 1 addition & 0 deletions src/core/settings/qgssettings.h
Expand Up @@ -105,6 +105,7 @@ class CORE_EXPORT QgsSettings : public QObject
static inline QgsSettingsTreeNode *sTreeQgis = treeRoot()->createChildElement( QStringLiteral( "qgis" ) );
static inline QgsSettingsTreeNode *sTreePlugins = treeRoot()->createChildElement( QStringLiteral( "plugins" ) );
static inline QgsSettingsTreeNode *sTreeProcessing = treeRoot()->createChildElement( QStringLiteral( "processing" ) );
static inline QgsSettingsTreeNode *sTreeRaster = treeRoot()->createChildElement( QStringLiteral( "raster" ) );
static inline QgsSettingsTreeNode *sTreeSvg = treeRoot()->createChildElement( QStringLiteral( "svg" ) );
static inline QgsSettingsTreeNode *sTreeWms = treeRoot()->createChildElement( QStringLiteral( "wms" ) );

Expand Down
8 changes: 8 additions & 0 deletions src/core/settings/qgssettingsregistrycore.cpp
Expand Up @@ -26,6 +26,7 @@
#include "qgsprocessing.h"
#include "qgsvectortileconnection.h"
#include "qgsgpsdetector.h"
#include "qgsrasterlayer.h"
#include "qgsvectorlayer.h"

const QgsSettingsEntryEnumFlag<Qgis::SnappingMode> *QgsSettingsRegistryCore::settingsDigitizingDefaultSnapMode = new QgsSettingsEntryEnumFlag<Qgis::SnappingMode>( QStringLiteral( "default_snap_mode" ), QgsSettings::sTreeDigitizing, Qgis::SnappingMode::AllLayers );
Expand Down Expand Up @@ -137,6 +138,9 @@ void QgsSettingsRegistryCore::migrateOldSettings()
QgsGpsDetector::settingsGpsParity->copyValueFromKey( QStringLiteral( "core/gps/parity" ) );
#endif

QgsRasterLayer::settingsRasterDefaultOversampling->copyValueFromKey( QStringLiteral( "Raster/defaultOversampling" ), true );
QgsRasterLayer::settingsRasterDefaultEarlyResampling->copyValueFromKey( QStringLiteral( "Raster/defaultEarlyResampling" ), true );

// locator filters - added in 3.30
{
QgsSettings settings;
Expand Down Expand Up @@ -280,6 +284,10 @@ void QgsSettingsRegistryCore::backwardCompatibility()
QgsGpsDetector::settingsGpsParity->copyValueToKey( QStringLiteral( "core/gps/parity" ) );
#endif

QgsRasterLayer::settingsRasterDefaultOversampling->copyValueToKey( QStringLiteral( "Raster/defaultOversampling" ) );
QgsRasterLayer::settingsRasterDefaultEarlyResampling->copyValueToKey( QStringLiteral( "Raster/defaultEarlyResampling" ) );


// locator filters - added in 3.30
{
const QStringList filters = QgsLocator::sTreeLocatorFilters->items();
Expand Down

0 comments on commit b3e4295

Please sign in to comment.