mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
[symbology] migrate graduated renderer color ramp widget (#3815)
This commit is contained in:
parent
9bb9b58e12
commit
ae75e45d80
@ -197,6 +197,16 @@ class QgsGraduatedSymbolRenderer : QgsFeatureRenderer
|
||||
//! @note Added in 2.6
|
||||
void calculateLabelPrecision( bool updateRanges = true );
|
||||
|
||||
/** Creates a new graduated renderer.
|
||||
* @param vlayer vector layer
|
||||
* @param attrName attribute to classify
|
||||
* @param classes number of classes
|
||||
* @param mode classification mode
|
||||
* @param symbol base symbol
|
||||
* @param ramp color ramp for classes
|
||||
* @param legendFormat
|
||||
* @returns new QgsGraduatedSymbolRenderer object
|
||||
*/
|
||||
static QgsGraduatedSymbolRenderer* createRenderer(
|
||||
QgsVectorLayer* vlayer,
|
||||
const QString& attrName,
|
||||
@ -204,7 +214,6 @@ class QgsGraduatedSymbolRenderer : QgsFeatureRenderer
|
||||
Mode mode,
|
||||
QgsSymbol* symbol /Transfer/,
|
||||
QgsColorRamp* ramp /Transfer/,
|
||||
bool inverted = false,
|
||||
const QgsRendererRangeLabelFormat& legendFormat = QgsRendererRangeLabelFormat()
|
||||
);
|
||||
|
||||
@ -252,16 +261,11 @@ class QgsGraduatedSymbolRenderer : QgsFeatureRenderer
|
||||
*/
|
||||
void setSourceColorRamp( QgsColorRamp* ramp /Transfer/ );
|
||||
|
||||
//! @note added in 2.1
|
||||
bool invertedColorRamp();
|
||||
void setInvertedColorRamp( bool inverted );
|
||||
|
||||
/** Update the color ramp used. Also updates all symbols colors.
|
||||
* Doesn't alter current breaks.
|
||||
* @param ramp color ramp. Ownership is transferred to the renderer
|
||||
* @param inverted set to true to invert ramp colors
|
||||
*/
|
||||
void updateColorRamp( QgsColorRamp* ramp /Transfer/ = 0, bool inverted = false );
|
||||
void updateColorRamp( QgsColorRamp* ramp /Transfer/ = 0 );
|
||||
|
||||
/** Update all the symbols but leave breaks and colors. This method also sets the source
|
||||
* symbol for the renderer.
|
||||
|
@ -288,7 +288,6 @@ QgsGraduatedSymbolRenderer::QgsGraduatedSymbolRenderer( const QString& attrName,
|
||||
: QgsFeatureRenderer( QStringLiteral( "graduatedSymbol" ) )
|
||||
, mAttrName( attrName )
|
||||
, mMode( Custom )
|
||||
, mInvertedColorRamp( false )
|
||||
, mGraduatedMethod( GraduatedColor )
|
||||
, mAttrNum( -1 )
|
||||
, mCounting( false )
|
||||
@ -501,7 +500,6 @@ QgsGraduatedSymbolRenderer* QgsGraduatedSymbolRenderer::clone() const
|
||||
if ( mSourceColorRamp.data() )
|
||||
{
|
||||
r->setSourceColorRamp( mSourceColorRamp->clone() );
|
||||
r->setInvertedColorRamp( mInvertedColorRamp );
|
||||
}
|
||||
r->setUsingSymbolLevels( usingSymbolLevels() );
|
||||
r->setLabelFormat( labelFormat() );
|
||||
@ -790,7 +788,6 @@ QgsGraduatedSymbolRenderer* QgsGraduatedSymbolRenderer::createRenderer(
|
||||
Mode mode,
|
||||
QgsSymbol* symbol,
|
||||
QgsColorRamp* ramp,
|
||||
bool inverted,
|
||||
const QgsRendererRangeLabelFormat& labelFormat
|
||||
)
|
||||
{
|
||||
@ -798,7 +795,6 @@ QgsGraduatedSymbolRenderer* QgsGraduatedSymbolRenderer::createRenderer(
|
||||
QgsGraduatedSymbolRenderer* r = new QgsGraduatedSymbolRenderer( attrName, ranges );
|
||||
r->setSourceSymbol( symbol->clone() );
|
||||
r->setSourceColorRamp( ramp->clone() );
|
||||
r->setInvertedColorRamp( inverted );
|
||||
r->setMode( mode );
|
||||
r->setLabelFormat( labelFormat );
|
||||
r->updateClasses( vlayer, mode, classes );
|
||||
@ -916,7 +912,7 @@ void QgsGraduatedSymbolRenderer::updateClasses( QgsVectorLayer* vlayer, Mode mod
|
||||
QgsSymbol* newSymbol = mSourceSymbol ? mSourceSymbol->clone() : QgsSymbol::defaultSymbol( vlayer->geometryType() );
|
||||
addClass( QgsRendererRange( lower, upper, newSymbol, label ) );
|
||||
}
|
||||
updateColorRamp( nullptr, mInvertedColorRamp );
|
||||
updateColorRamp( nullptr );
|
||||
}
|
||||
|
||||
QgsFeatureRenderer* QgsGraduatedSymbolRenderer::create( QDomElement& element )
|
||||
@ -985,9 +981,6 @@ QgsFeatureRenderer* QgsGraduatedSymbolRenderer::create( QDomElement& element )
|
||||
if ( !sourceColorRampElem.isNull() && sourceColorRampElem.attribute( QStringLiteral( "name" ) ) == QLatin1String( "[source]" ) )
|
||||
{
|
||||
r->setSourceColorRamp( QgsSymbolLayerUtils::loadColorRamp( sourceColorRampElem ) );
|
||||
QDomElement invertedColorRampElem = element.firstChildElement( QStringLiteral( "invertedcolorramp" ) );
|
||||
if ( !invertedColorRampElem.isNull() )
|
||||
r->setInvertedColorRamp( invertedColorRampElem.attribute( QStringLiteral( "value" ) ) == QLatin1String( "1" ) );
|
||||
}
|
||||
|
||||
// try to load mode
|
||||
@ -1098,9 +1091,6 @@ QDomElement QgsGraduatedSymbolRenderer::save( QDomDocument& doc )
|
||||
{
|
||||
QDomElement colorRampElem = QgsSymbolLayerUtils::saveColorRamp( QStringLiteral( "[source]" ), mSourceColorRamp.data(), doc );
|
||||
rendererElem.appendChild( colorRampElem );
|
||||
QDomElement invertedElem = doc.createElement( QStringLiteral( "invertedcolorramp" ) );
|
||||
invertedElem.setAttribute( QStringLiteral( "value" ), mInvertedColorRamp );
|
||||
rendererElem.appendChild( invertedElem );
|
||||
}
|
||||
|
||||
// save mode
|
||||
@ -1306,13 +1296,12 @@ void QgsGraduatedSymbolRenderer::setSymbolSizes( double minSize, double maxSize
|
||||
}
|
||||
}
|
||||
|
||||
void QgsGraduatedSymbolRenderer::updateColorRamp( QgsColorRamp *ramp, bool inverted )
|
||||
void QgsGraduatedSymbolRenderer::updateColorRamp( QgsColorRamp *ramp )
|
||||
{
|
||||
int i = 0;
|
||||
if ( ramp )
|
||||
{
|
||||
setSourceColorRamp( ramp );
|
||||
setInvertedColorRamp( inverted );
|
||||
}
|
||||
|
||||
if ( mSourceColorRamp )
|
||||
@ -1323,10 +1312,7 @@ void QgsGraduatedSymbolRenderer::updateColorRamp( QgsColorRamp *ramp, bool inver
|
||||
if ( symbol )
|
||||
{
|
||||
double colorValue;
|
||||
if ( inverted )
|
||||
colorValue = ( mRanges.count() > 1 ? static_cast< double >( mRanges.count() - i - 1 ) / ( mRanges.count() - 1 ) : 0 );
|
||||
else
|
||||
colorValue = ( mRanges.count() > 1 ? static_cast< double >( i ) / ( mRanges.count() - 1 ) : 0 );
|
||||
colorValue = ( mRanges.count() > 1 ? static_cast< double >( i ) / ( mRanges.count() - 1 ) : 0 );
|
||||
symbol->setColor( mSourceColorRamp->color( colorValue ) );
|
||||
}
|
||||
updateRangeSymbol( i, symbol );
|
||||
@ -1441,7 +1427,7 @@ void QgsGraduatedSymbolRenderer::addBreak( double breakValue, bool updateSymbols
|
||||
switch ( mGraduatedMethod )
|
||||
{
|
||||
case GraduatedColor:
|
||||
updateColorRamp( mSourceColorRamp.data(), mInvertedColorRamp );
|
||||
updateColorRamp( mSourceColorRamp.data() );
|
||||
break;
|
||||
case GraduatedSize:
|
||||
setSymbolSizes( minSymbolSize(), maxSymbolSize() );
|
||||
|
@ -235,7 +235,6 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
* @param mode classification mode
|
||||
* @param symbol base symbol
|
||||
* @param ramp color ramp for classes
|
||||
* @param inverted set to true to invert color ramp
|
||||
* @param legendFormat
|
||||
* @returns new QgsGraduatedSymbolRenderer object
|
||||
*/
|
||||
@ -246,7 +245,6 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
Mode mode,
|
||||
QgsSymbol* symbol,
|
||||
QgsColorRamp* ramp,
|
||||
bool inverted = false,
|
||||
const QgsRendererRangeLabelFormat& legendFormat = QgsRendererRangeLabelFormat()
|
||||
);
|
||||
|
||||
@ -285,16 +283,11 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
*/
|
||||
void setSourceColorRamp( QgsColorRamp* ramp );
|
||||
|
||||
//! @note added in 2.1
|
||||
bool invertedColorRamp() { return mInvertedColorRamp; }
|
||||
void setInvertedColorRamp( bool inverted ) { mInvertedColorRamp = inverted; }
|
||||
|
||||
/** Update the color ramp used. Also updates all symbols colors.
|
||||
* Doesn't alter current breaks.
|
||||
* @param ramp color ramp. Ownership is transferred to the renderer
|
||||
* @param inverted set to true to invert ramp colors
|
||||
*/
|
||||
void updateColorRamp( QgsColorRamp* ramp = nullptr, bool inverted = false );
|
||||
void updateColorRamp( QgsColorRamp* ramp = nullptr );
|
||||
|
||||
/** Update all the symbols but leave breaks and colors. This method also sets the source
|
||||
* symbol for the renderer.
|
||||
@ -343,7 +336,6 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
Mode mMode;
|
||||
QScopedPointer<QgsSymbol> mSourceSymbol;
|
||||
QScopedPointer<QgsColorRamp> mSourceColorRamp;
|
||||
bool mInvertedColorRamp;
|
||||
QgsRendererRangeLabelFormat mLabelFormat;
|
||||
|
||||
QScopedPointer<QgsExpression> mExpression;
|
||||
|
@ -226,7 +226,7 @@ QPixmap QgsColorRampButton::createMenuIcon( QgsColorRamp* colorramp )
|
||||
|
||||
void QgsColorRampButton::buttonClicked()
|
||||
{
|
||||
if ( !isRandomColorRamp() )
|
||||
if ( !isRandomColorRamp() && !isNull() )
|
||||
{
|
||||
showColorRampDialog();
|
||||
}
|
||||
@ -241,7 +241,7 @@ void QgsColorRampButton::prepareMenu()
|
||||
mMenu->clear();
|
||||
|
||||
QAction* invertAction = new QAction( tr( "Invert color ramp" ), this );
|
||||
invertAction->setEnabled( !isRandomColorRamp() );
|
||||
invertAction->setEnabled( !isNull() && !isRandomColorRamp() );
|
||||
mMenu->addAction( invertAction );
|
||||
connect( invertAction, &QAction::triggered, this, &QgsColorRampButton::invertColorRamp );
|
||||
|
||||
@ -317,6 +317,7 @@ void QgsColorRampButton::prepareMenu()
|
||||
mMenu->addAction( newColorRampAction );
|
||||
|
||||
QAction* editColorRampAction = new QAction( tr( "Edit color ramp..." ), this );
|
||||
editColorRampAction->setEnabled( !isNull() && !isRandomColorRamp() );
|
||||
connect( editColorRampAction, &QAction::triggered, this, &QgsColorRampButton::showColorRampDialog );
|
||||
mMenu->addAction( editColorRampAction );
|
||||
}
|
||||
|
@ -421,6 +421,12 @@ QgsCategorizedSymbolRendererWidget::QgsCategorizedSymbolRendererWidget( QgsVecto
|
||||
{
|
||||
btnColorRamp->setColorRampFromName( defaultColorRamp );
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsColorRamp* ramp = new QgsGradientColorRamp( QColor( 255, 255, 255 ), QColor( 255, 0, 0 ) );
|
||||
btnColorRamp->setColorRamp( ramp );
|
||||
delete ramp;
|
||||
}
|
||||
|
||||
mCategorizedSymbol = QgsSymbol::defaultSymbol( mLayer->geometryType() );
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "qgssymbol.h"
|
||||
#include "qgssymbollayerutils.h"
|
||||
#include "qgscolorramp.h"
|
||||
#include "qgscolorrampbutton.h"
|
||||
#include "qgsstyle.h"
|
||||
|
||||
#include "qgsvectorlayer.h"
|
||||
@ -446,18 +447,22 @@ QgsGraduatedSymbolRendererWidget::QgsGraduatedSymbolRendererWidget( QgsVectorLay
|
||||
|
||||
mSizeUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderMapUnits << QgsUnitTypes::RenderPixels );
|
||||
|
||||
cboGraduatedColorRamp->populate( mStyle );
|
||||
|
||||
spinPrecision->setMinimum( QgsRendererRangeLabelFormat::MinPrecision );
|
||||
spinPrecision->setMaximum( QgsRendererRangeLabelFormat::MaxPrecision );
|
||||
|
||||
btnColorRamp->setShowRandomColorRamp( true );
|
||||
|
||||
// set project default color ramp
|
||||
QString defaultColorRamp = QgsProject::instance()->readEntry( QStringLiteral( "DefaultStyles" ), QStringLiteral( "/ColorRamp" ), QLatin1String( "" ) );
|
||||
if ( defaultColorRamp != QLatin1String( "" ) )
|
||||
{
|
||||
int index = cboGraduatedColorRamp->findText( defaultColorRamp, Qt::MatchCaseSensitive );
|
||||
if ( index >= 0 )
|
||||
cboGraduatedColorRamp->setCurrentIndex( index );
|
||||
btnColorRamp->setColorRampFromName( defaultColorRamp );
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsColorRamp* ramp = new QgsGradientColorRamp( QColor( 255, 255, 255 ), QColor( 255, 0, 0 ) );
|
||||
btnColorRamp->setColorRamp( ramp );
|
||||
delete ramp;
|
||||
}
|
||||
|
||||
|
||||
@ -543,10 +548,7 @@ void QgsGraduatedSymbolRendererWidget::connectUpdateHandlers()
|
||||
{
|
||||
connect( spinGraduatedClasses, SIGNAL( valueChanged( int ) ), this, SLOT( classifyGraduated() ) );
|
||||
connect( cboGraduatedMode, SIGNAL( currentIndexChanged( int ) ), this, SLOT( classifyGraduated() ) );
|
||||
connect( cboGraduatedColorRamp, SIGNAL( currentIndexChanged( int ) ), this, SLOT( reapplyColorRamp() ) );
|
||||
connect( cboGraduatedColorRamp, SIGNAL( sourceRampEdited() ), this, SLOT( reapplyColorRamp() ) );
|
||||
connect( mButtonEditRamp, SIGNAL( clicked() ), cboGraduatedColorRamp, SLOT( editSourceRamp() ) );
|
||||
connect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ), this, SLOT( reapplyColorRamp() ) );
|
||||
connect( btnColorRamp, &QgsColorRampButton::colorRampChanged, this, &QgsGraduatedSymbolRendererWidget::reapplyColorRamp );
|
||||
connect( spinPrecision, SIGNAL( valueChanged( int ) ), this, SLOT( labelFormatChanged() ) );
|
||||
connect( cbxTrimTrailingZeroes, SIGNAL( toggled( bool ) ), this, SLOT( labelFormatChanged() ) );
|
||||
connect( txtLegendFormat, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
|
||||
@ -563,10 +565,7 @@ void QgsGraduatedSymbolRendererWidget::disconnectUpdateHandlers()
|
||||
{
|
||||
disconnect( spinGraduatedClasses, SIGNAL( valueChanged( int ) ), this, SLOT( classifyGraduated() ) );
|
||||
disconnect( cboGraduatedMode, SIGNAL( currentIndexChanged( int ) ), this, SLOT( classifyGraduated() ) );
|
||||
disconnect( cboGraduatedColorRamp, SIGNAL( currentIndexChanged( int ) ), this, SLOT( reapplyColorRamp() ) );
|
||||
disconnect( cboGraduatedColorRamp, SIGNAL( sourceRampEdited() ), this, SLOT( reapplyColorRamp() ) );
|
||||
disconnect( mButtonEditRamp, SIGNAL( clicked() ), cboGraduatedColorRamp, SLOT( editSourceRamp() ) );
|
||||
disconnect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ), this, SLOT( reapplyColorRamp() ) );
|
||||
disconnect( btnColorRamp, &QgsColorRampButton::colorRampChanged, this, &QgsGraduatedSymbolRendererWidget::reapplyColorRamp );
|
||||
disconnect( spinPrecision, SIGNAL( valueChanged( int ) ), this, SLOT( labelFormatChanged() ) );
|
||||
disconnect( cbxTrimTrailingZeroes, SIGNAL( toggled( bool ) ), this, SLOT( labelFormatChanged() ) );
|
||||
disconnect( txtLegendFormat, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
|
||||
@ -622,8 +621,9 @@ void QgsGraduatedSymbolRendererWidget::updateUiFromRenderer( bool updateCount )
|
||||
{
|
||||
methodComboBox->setCurrentIndex( 0 );
|
||||
if ( mRenderer->sourceColorRamp() )
|
||||
cboGraduatedColorRamp->setSourceColorRamp( mRenderer->sourceColorRamp() );
|
||||
cbxInvertedColorRamp->setChecked( mRenderer->invertedColorRamp() );
|
||||
{
|
||||
btnColorRamp->setColorRamp( mRenderer->sourceColorRamp() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -634,7 +634,7 @@ void QgsGraduatedSymbolRendererWidget::updateUiFromRenderer( bool updateCount )
|
||||
maxSizeSpinBox->setValue( mRenderer->maxSymbolSize() );
|
||||
}
|
||||
}
|
||||
mMethodStackedWidget->setCurrentIndex( methodComboBox->currentIndex() );
|
||||
toggleMethodWidgets( methodComboBox->currentIndex() );
|
||||
methodComboBox->blockSignals( false );
|
||||
|
||||
QgsRendererRangeLabelFormat labelFormat = mRenderer->labelFormat();
|
||||
@ -659,18 +659,15 @@ void QgsGraduatedSymbolRendererWidget::graduatedColumnChanged( const QString& fi
|
||||
|
||||
void QgsGraduatedSymbolRendererWidget::on_methodComboBox_currentIndexChanged( int idx )
|
||||
{
|
||||
mMethodStackedWidget->setCurrentIndex( idx );
|
||||
toggleMethodWidgets( idx );
|
||||
if ( idx == 0 )
|
||||
{
|
||||
mRenderer->setGraduatedMethod( QgsGraduatedSymbolRenderer::GraduatedColor );
|
||||
QgsColorRamp* ramp = cboGraduatedColorRamp->currentColorRamp();
|
||||
QgsColorRamp* ramp = btnColorRamp->colorRamp();
|
||||
|
||||
if ( !ramp )
|
||||
{
|
||||
if ( cboGraduatedColorRamp->count() == 0 )
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "There are no available color ramps. You can add them in Style Manager." ) );
|
||||
else
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "The selected color ramp is not available." ) );
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "No color ramp defined." ) );
|
||||
return;
|
||||
}
|
||||
mRenderer->setSourceColorRamp( ramp );
|
||||
@ -678,11 +675,43 @@ void QgsGraduatedSymbolRendererWidget::on_methodComboBox_currentIndexChanged( in
|
||||
}
|
||||
else
|
||||
{
|
||||
lblColorRamp->setVisible( false );
|
||||
btnColorRamp->setVisible( false );
|
||||
lblSize->setVisible( true );
|
||||
minSizeSpinBox->setVisible( true );
|
||||
lblSize->setVisible( true );
|
||||
maxSizeSpinBox->setVisible( true );
|
||||
mSizeUnitWidget->setVisible( true );
|
||||
|
||||
mRenderer->setGraduatedMethod( QgsGraduatedSymbolRenderer::GraduatedSize );
|
||||
reapplySizes();
|
||||
}
|
||||
}
|
||||
|
||||
void QgsGraduatedSymbolRendererWidget::toggleMethodWidgets( int idx )
|
||||
{
|
||||
if ( idx == 0 )
|
||||
{
|
||||
lblColorRamp->setVisible( true );
|
||||
btnColorRamp->setVisible( true );
|
||||
lblSize->setVisible( false );
|
||||
minSizeSpinBox->setVisible( false );
|
||||
lblSizeTo->setVisible( false );
|
||||
maxSizeSpinBox->setVisible( false );
|
||||
mSizeUnitWidget->setVisible( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
lblColorRamp->setVisible( false );
|
||||
btnColorRamp->setVisible( false );
|
||||
lblSize->setVisible( true );
|
||||
minSizeSpinBox->setVisible( true );
|
||||
lblSizeTo->setVisible( true );
|
||||
maxSizeSpinBox->setVisible( true );
|
||||
mSizeUnitWidget->setVisible( true );
|
||||
}
|
||||
}
|
||||
|
||||
void QgsGraduatedSymbolRendererWidget::refreshRanges( bool reset )
|
||||
{
|
||||
if ( !mModel )
|
||||
@ -748,13 +777,10 @@ void QgsGraduatedSymbolRendererWidget::classifyGraduated()
|
||||
|
||||
int nclasses = spinGraduatedClasses->value();
|
||||
|
||||
QScopedPointer<QgsColorRamp> ramp( cboGraduatedColorRamp->currentColorRamp() );
|
||||
QScopedPointer<QgsColorRamp> ramp( btnColorRamp->colorRamp() );
|
||||
if ( !ramp )
|
||||
{
|
||||
if ( cboGraduatedColorRamp->count() == 0 )
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "There are no available color ramps. You can add them in Style Manager." ) );
|
||||
else
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "The selected color ramp is not available." ) );
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "No color ramp defined." ) );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -787,10 +813,7 @@ void QgsGraduatedSymbolRendererWidget::classifyGraduated()
|
||||
{
|
||||
if ( !ramp )
|
||||
{
|
||||
if ( cboGraduatedColorRamp->count() == 0 )
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "There are no available color ramps. You can add them in Style Manager." ) );
|
||||
else
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "The selected color ramp is not available." ) );
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "No color ramp defined." ) );
|
||||
return;
|
||||
}
|
||||
mRenderer->setSourceColorRamp( ramp.take() );
|
||||
@ -815,11 +838,11 @@ void QgsGraduatedSymbolRendererWidget::classifyGraduated()
|
||||
|
||||
void QgsGraduatedSymbolRendererWidget::reapplyColorRamp()
|
||||
{
|
||||
QScopedPointer< QgsColorRamp > ramp( cboGraduatedColorRamp->currentColorRamp() );
|
||||
QScopedPointer< QgsColorRamp > ramp( btnColorRamp->colorRamp() );
|
||||
if ( !ramp )
|
||||
return;
|
||||
|
||||
mRenderer->updateColorRamp( ramp.take(), cbxInvertedColorRamp->isChecked() );
|
||||
mRenderer->updateColorRamp( ramp.take() );
|
||||
mRenderer->updateSymbols( mGraduatedSymbol );
|
||||
refreshSymbolView();
|
||||
}
|
||||
|
@ -122,6 +122,7 @@ class GUI_EXPORT QgsGraduatedSymbolRendererWidget : public QgsRendererWidget, pr
|
||||
private slots:
|
||||
void cleanUpSymbolSelector( QgsPanelWidget* container );
|
||||
void updateSymbolsFromWidget();
|
||||
void toggleMethodWidgets( int idx );
|
||||
|
||||
protected:
|
||||
void updateUiFromRenderer( bool updateCount = true );
|
||||
|
@ -148,137 +148,106 @@ Negative rounds to powers of 10</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QStackedWidget" name="mMethodStackedWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1,0,0,0">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_7">
|
||||
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lblColorRamp">
|
||||
<property name="text">
|
||||
<string>Color ramp</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>cboGraduatedColorRamp</cstring>
|
||||
<cstring>btnColorRamp</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsColorRampComboBox" name="cboGraduatedColorRamp"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mButtonEditRamp">
|
||||
<property name="text">
|
||||
<string>Edit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbxInvertedColorRamp">
|
||||
<property name="text">
|
||||
<string>Invert</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_2">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="2">
|
||||
<widget class="QgsDoubleSpinBox" name="minSizeSpinBox">
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.200000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="showClearButton" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Size from </string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>cboGraduatedColorRamp</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QgsDoubleSpinBox" name="maxSizeSpinBox">
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.200000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>10.000000000000000</double>
|
||||
</property>
|
||||
<property name="showClearButton" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<item row="4" column="1">
|
||||
<widget class="QgsColorRampButton" name="btnColorRamp">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>to</string>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>120</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="lblSize">
|
||||
<property name="text">
|
||||
<string>Size from </string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>minSizeSpinBox</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<layout class="QHBoxLayout" name="layoutSize">
|
||||
<item>
|
||||
<widget class="QgsDoubleSpinBox" name="minSizeSpinBox">
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.200000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="showClearButton" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblSizeTo">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>to</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsDoubleSpinBox" name="maxSizeSpinBox">
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.200000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>10.000000000000000</double>
|
||||
</property>
|
||||
<property name="showClearButton" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QgsUnitSelectionWidget" name="mSizeUnitWidget" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
@ -291,11 +260,9 @@ Negative rounds to powers of 10</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
|
||||
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
@ -522,9 +489,10 @@ Negative rounds to powers of 10</string>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorRampComboBox</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>qgscolorrampcombobox.h</header>
|
||||
<class>QgsColorRampButton</class>
|
||||
<extends>QToolButton</extends>
|
||||
<header>qgscolorrampbutton.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsDoubleSpinBox</class>
|
||||
@ -545,9 +513,7 @@ Negative rounds to powers of 10</string>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>cboGraduatedColorRamp</tabstop>
|
||||
<tabstop>mButtonEditRamp</tabstop>
|
||||
<tabstop>cbxInvertedColorRamp</tabstop>
|
||||
<tabstop>btnColorRamp</tabstop>
|
||||
<tabstop>cboGraduatedMode</tabstop>
|
||||
<tabstop>spinGraduatedClasses</tabstop>
|
||||
<tabstop>btnGraduatedClassify</tabstop>
|
||||
|
@ -142,7 +142,6 @@ def dumpGraduatedRenderer(r):
|
||||
else:
|
||||
rstr = rstr + symbol.dump() + ':'
|
||||
rstr = rstr + dumpColorRamp(r.sourceColorRamp())
|
||||
rstr = rstr + str(r.invertedColorRamp()) + ':'
|
||||
rstr = rstr + dumpRangeList(r.ranges())
|
||||
return rstr
|
||||
|
||||
@ -305,13 +304,6 @@ class TestQgsGraduatedSymbolRenderer(unittest.TestCase):
|
||||
dumpColorRamp(renderer.sourceColorRamp()),
|
||||
"Get/set renderer color ramp")
|
||||
|
||||
renderer.setInvertedColorRamp(True)
|
||||
self.assertTrue(renderer.invertedColorRamp(),
|
||||
"Get/set renderer inverted color ramp")
|
||||
renderer.setInvertedColorRamp(False)
|
||||
self.assertFalse(renderer.invertedColorRamp(),
|
||||
"Get/set renderer inverted color ramp")
|
||||
|
||||
renderer.setSourceColorRamp(ramp)
|
||||
self.assertEqual(
|
||||
dumpColorRamp(ramp),
|
||||
|
Loading…
x
Reference in New Issue
Block a user