@@ -595,10 +595,14 @@ QgsStringMap QgsColorBrewerColorRamp::properties() const
595595
596596
597597QgsCptCityColorRamp::QgsCptCityColorRamp ( const QString& schemeName, const QString& variantName,
598- bool doLoadFile )
598+ bool inverted, bool doLoadFile )
599599 : QgsGradientColorRamp()
600- , mSchemeName( schemeName ), mVariantName( variantName )
601- , mVariantList( QStringList() ), mFileLoaded( false ), mMultiStops( false )
600+ , mSchemeName( schemeName )
601+ , mVariantName( variantName )
602+ , mVariantList( QStringList() )
603+ , mFileLoaded( false )
604+ , mMultiStops( false )
605+ , mInverted( inverted )
602606{
603607 // TODO replace this with hard-coded data in the default case
604608 // don't load file if variant is missing
@@ -607,10 +611,14 @@ QgsCptCityColorRamp::QgsCptCityColorRamp( const QString& schemeName, const QStri
607611}
608612
609613QgsCptCityColorRamp::QgsCptCityColorRamp ( const QString& schemeName, const QStringList& variantList,
610- const QString& variantName, bool doLoadFile )
614+ const QString& variantName, bool inverted, bool doLoadFile )
611615 : QgsGradientColorRamp()
612- , mSchemeName( schemeName ), mVariantName( variantName )
613- , mVariantList( variantList ), mFileLoaded( false ), mMultiStops( false )
616+ , mSchemeName( schemeName )
617+ , mVariantName( variantName )
618+ , mVariantList( variantList )
619+ , mFileLoaded( false )
620+ , mMultiStops( false )
621+ , mInverted( inverted )
614622{
615623 mVariantList = variantList;
616624
@@ -624,18 +632,27 @@ QgsColorRamp* QgsCptCityColorRamp::create( const QgsStringMap& props )
624632{
625633 QString schemeName = DEFAULT_CPTCITY_SCHEMENAME;
626634 QString variantName = DEFAULT_CPTCITY_VARIANTNAME;
635+ bool inverted = false ;
627636
628637 if ( props.contains ( QStringLiteral ( " schemeName" ) ) )
629638 schemeName = props[QStringLiteral ( " schemeName" )];
630639 if ( props.contains ( QStringLiteral ( " variantName" ) ) )
631640 variantName = props[QStringLiteral ( " variantName" )];
641+ if ( props.contains ( QStringLiteral ( " inverted" ) ) )
642+ inverted = props[QStringLiteral ( " inverted" )].toInt ();
643+
644+ return new QgsCptCityColorRamp ( schemeName, variantName, inverted );
645+ }
632646
633- return new QgsCptCityColorRamp ( schemeName, variantName );
647+ void QgsCptCityColorRamp::invert ()
648+ {
649+ mInverted = !mInverted ;
650+ QgsGradientColorRamp::invert ();
634651}
635652
636653QgsCptCityColorRamp* QgsCptCityColorRamp::clone () const
637654{
638- QgsCptCityColorRamp* ramp = new QgsCptCityColorRamp ( QLatin1String ( " " ), QLatin1String ( " " ), false );
655+ QgsCptCityColorRamp* ramp = new QgsCptCityColorRamp ( QLatin1String ( " " ), QLatin1String ( " " ), mInverted , false );
639656 ramp->copy ( this );
640657 return ramp;
641658}
@@ -652,6 +669,7 @@ void QgsCptCityColorRamp::copy( const QgsCptCityColorRamp* other )
652669 mVariantName = other->mVariantName ;
653670 mVariantList = other->mVariantList ;
654671 mFileLoaded = other->mFileLoaded ;
672+ mInverted = other->mInverted ;
655673}
656674
657675QgsGradientColorRamp* QgsCptCityColorRamp::cloneGradientRamp () const
@@ -675,6 +693,7 @@ QgsStringMap QgsCptCityColorRamp::properties() const
675693 QgsStringMap map;
676694 map[QStringLiteral ( " schemeName" )] = mSchemeName ;
677695 map[QStringLiteral ( " variantName" )] = mVariantName ;
696+ map[QStringLiteral ( " inverted" )] = QString::number ( mInverted );
678697 map[QStringLiteral ( " rampType" )] = type ();
679698 return map;
680699}
@@ -788,6 +807,11 @@ bool QgsCptCityColorRamp::loadFile()
788807 if ( ! mStops .isEmpty () && mStops .last ().offset == 1.0 )
789808 mColor2 = mStops .takeLast ().color ;
790809
810+ if ( mInverted )
811+ {
812+ QgsGradientColorRamp::invert ();
813+ }
814+
791815 mFileLoaded = true ;
792816 return true ;
793817}
0 commit comments