[symbology] migrate graduated renderer color ramp widget (#3815)

This commit is contained in:
Mathieu Pellerin 2016-11-30 16:47:23 +07:00 committed by GitHub
parent 9bb9b58e12
commit ae75e45d80
9 changed files with 175 additions and 204 deletions

View File

@ -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.

View File

@ -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() );

View File

@ -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;

View File

@ -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 );
}

View File

@ -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() );

View File

@ -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();
}

View File

@ -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 );

View File

@ -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>

View File

@ -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),