@@ -270,14 +270,17 @@ void QgsComposerScaleBar::applyDefaultSettings()
270270
271271 mHeight = 3 ;
272272
273- mPen = QPen ( QColor ( 0 , 0 , 0 ) );
273+ mPen = QPen ( Qt::black );
274274 mPen .setJoinStyle ( mLineJoinStyle );
275275 mPen .setCapStyle ( mLineCapStyle );
276276 mPen .setWidthF ( 1.0 );
277277
278- mBrush .setColor ( QColor ( 0 , 0 , 0 ) );
278+ mBrush .setColor ( Qt::black );
279279 mBrush .setStyle ( Qt::SolidPattern );
280280
281+ mBrush2 .setColor ( Qt::white );
282+ mBrush2 .setStyle ( Qt::SolidPattern );
283+
281284 // get default composer font from settings
282285 QSettings settings;
283286 QString defaultFontString = settings.value ( " /Composer/defaultFont" ).toString ();
@@ -533,9 +536,41 @@ bool QgsComposerScaleBar::writeXML( QDomElement& elem, QDomDocument & doc ) cons
533536 }
534537
535538 // colors
536- composerScaleBarElem.setAttribute ( " brushColor" , mBrush .color ().name () );
537- composerScaleBarElem.setAttribute ( " penColor" , mPen .color ().name () );
538- composerScaleBarElem.setAttribute ( " fontColor" , mFontColor .name () );
539+
540+ // fill color
541+ QDomElement fillColorElem = doc.createElement ( " fillColor" );
542+ QColor fillColor = mBrush .color ();
543+ fillColorElem.setAttribute ( " red" , QString::number ( fillColor.red () ) );
544+ fillColorElem.setAttribute ( " green" , QString::number ( fillColor.green () ) );
545+ fillColorElem.setAttribute ( " blue" , QString::number ( fillColor.blue () ) );
546+ fillColorElem.setAttribute ( " alpha" , QString::number ( fillColor.alpha () ) );
547+ composerScaleBarElem.appendChild ( fillColorElem );
548+
549+ // fill color 2
550+ QDomElement fillColor2Elem = doc.createElement ( " fillColor2" );
551+ QColor fillColor2 = mBrush2 .color ();
552+ fillColor2Elem.setAttribute ( " red" , QString::number ( fillColor2.red () ) );
553+ fillColor2Elem.setAttribute ( " green" , QString::number ( fillColor2.green () ) );
554+ fillColor2Elem.setAttribute ( " blue" , QString::number ( fillColor2.blue () ) );
555+ fillColor2Elem.setAttribute ( " alpha" , QString::number ( fillColor2.alpha () ) );
556+ composerScaleBarElem.appendChild ( fillColor2Elem );
557+
558+ // pen color
559+ QDomElement strokeColorElem = doc.createElement ( " strokeColor" );
560+ QColor strokeColor = mPen .color ();
561+ strokeColorElem.setAttribute ( " red" , QString::number ( strokeColor.red () ) );
562+ strokeColorElem.setAttribute ( " green" , QString::number ( strokeColor.green () ) );
563+ strokeColorElem.setAttribute ( " blue" , QString::number ( strokeColor.blue () ) );
564+ strokeColorElem.setAttribute ( " alpha" , QString::number ( strokeColor.alpha () ) );
565+ composerScaleBarElem.appendChild ( strokeColorElem );
566+
567+ // font color
568+ QDomElement fontColorElem = doc.createElement ( " textColor" );
569+ fontColorElem.setAttribute ( " red" , QString::number ( mFontColor .red () ) );
570+ fontColorElem.setAttribute ( " green" , QString::number ( mFontColor .green () ) );
571+ fontColorElem.setAttribute ( " blue" , QString::number ( mFontColor .blue () ) );
572+ fontColorElem.setAttribute ( " alpha" , QString::number ( mFontColor .alpha () ) );
573+ composerScaleBarElem.appendChild ( fontColorElem );
539574
540575 // alignment
541576 composerScaleBarElem.setAttribute ( " alignment" , QString::number (( int ) mAlignment ) );
@@ -573,9 +608,96 @@ bool QgsComposerScaleBar::readXML( const QDomElement& itemElem, const QDomDocume
573608
574609 // colors
575610 // fill color
576- mBrush .setColor ( QColor ( itemElem.attribute ( " brushColor" , " #000000" ) ) );
577- mPen .setColor ( QColor ( itemElem.attribute ( " penColor" , " #000000" ) ) );
578- mFontColor .setNamedColor ( itemElem.attribute ( " fontColor" , " #000000" ) );
611+ QDomNodeList fillColorList = itemElem.elementsByTagName ( " fillColor" );
612+ if ( fillColorList.size () > 0 )
613+ {
614+ QDomElement fillColorElem = fillColorList.at ( 0 ).toElement ();
615+ bool redOk, greenOk, blueOk, alphaOk;
616+ int fillRed, fillGreen, fillBlue, fillAlpha;
617+
618+ fillRed = fillColorElem.attribute ( " red" ).toDouble ( &redOk );
619+ fillGreen = fillColorElem.attribute ( " green" ).toDouble ( &greenOk );
620+ fillBlue = fillColorElem.attribute ( " blue" ).toDouble ( &blueOk );
621+ fillAlpha = fillColorElem.attribute ( " alpha" ).toDouble ( &alphaOk );
622+
623+ if ( redOk && greenOk && blueOk && alphaOk )
624+ {
625+ mBrush .setColor ( QColor ( fillRed, fillGreen, fillBlue, fillAlpha ) );
626+ }
627+ }
628+ else
629+ {
630+ mBrush .setColor ( QColor ( itemElem.attribute ( " brushColor" , " #000000" ) ) );
631+ }
632+
633+ // fill color 2
634+ QDomNodeList fillColor2List = itemElem.elementsByTagName ( " fillColor2" );
635+ if ( fillColor2List.size () > 0 )
636+ {
637+ QDomElement fillColor2Elem = fillColor2List.at ( 0 ).toElement ();
638+ bool redOk, greenOk, blueOk, alphaOk;
639+ int fillRed, fillGreen, fillBlue, fillAlpha;
640+
641+ fillRed = fillColor2Elem.attribute ( " red" ).toDouble ( &redOk );
642+ fillGreen = fillColor2Elem.attribute ( " green" ).toDouble ( &greenOk );
643+ fillBlue = fillColor2Elem.attribute ( " blue" ).toDouble ( &blueOk );
644+ fillAlpha = fillColor2Elem.attribute ( " alpha" ).toDouble ( &alphaOk );
645+
646+ if ( redOk && greenOk && blueOk && alphaOk )
647+ {
648+ mBrush2 .setColor ( QColor ( fillRed, fillGreen, fillBlue, fillAlpha ) );
649+ }
650+ }
651+ else
652+ {
653+ mBrush2 .setColor ( QColor ( itemElem.attribute ( " brush2Color" , " #ffffff" ) ) );
654+ }
655+
656+ // stroke color
657+ QDomNodeList strokeColorList = itemElem.elementsByTagName ( " strokeColor" );
658+ if ( strokeColorList.size () > 0 )
659+ {
660+ QDomElement strokeColorElem = strokeColorList.at ( 0 ).toElement ();
661+ bool redOk, greenOk, blueOk, alphaOk;
662+ int strokeRed, strokeGreen, strokeBlue, strokeAlpha;
663+
664+ strokeRed = strokeColorElem.attribute ( " red" ).toDouble ( &redOk );
665+ strokeGreen = strokeColorElem.attribute ( " green" ).toDouble ( &greenOk );
666+ strokeBlue = strokeColorElem.attribute ( " blue" ).toDouble ( &blueOk );
667+ strokeAlpha = strokeColorElem.attribute ( " alpha" ).toDouble ( &alphaOk );
668+
669+ if ( redOk && greenOk && blueOk && alphaOk )
670+ {
671+ mPen .setColor ( QColor ( strokeRed, strokeGreen, strokeBlue, strokeAlpha ) );
672+ }
673+ }
674+ else
675+ {
676+ mPen .setColor ( QColor ( itemElem.attribute ( " penColor" , " #000000" ) ) );
677+ }
678+
679+ // font color
680+ QDomNodeList textColorList = itemElem.elementsByTagName ( " textColor" );
681+ if ( textColorList.size () > 0 )
682+ {
683+ QDomElement textColorElem = textColorList.at ( 0 ).toElement ();
684+ bool redOk, greenOk, blueOk, alphaOk;
685+ int textRed, textGreen, textBlue, textAlpha;
686+
687+ textRed = textColorElem.attribute ( " red" ).toDouble ( &redOk );
688+ textGreen = textColorElem.attribute ( " green" ).toDouble ( &greenOk );
689+ textBlue = textColorElem.attribute ( " blue" ).toDouble ( &blueOk );
690+ textAlpha = textColorElem.attribute ( " alpha" ).toDouble ( &alphaOk );
691+
692+ if ( redOk && greenOk && blueOk && alphaOk )
693+ {
694+ mFontColor = QColor ( textRed, textGreen, textBlue, textAlpha );
695+ }
696+ }
697+ else
698+ {
699+ mFontColor .setNamedColor ( itemElem.attribute ( " fontColor" , " #000000" ) );
700+ }
579701
580702 // style
581703 delete mStyle ;
0 commit comments