@@ -270,14 +270,17 @@ void QgsComposerScaleBar::applyDefaultSettings()
270
270
271
271
mHeight = 3 ;
272
272
273
- mPen = QPen ( QColor ( 0 , 0 , 0 ) );
273
+ mPen = QPen ( Qt::black );
274
274
mPen .setJoinStyle ( mLineJoinStyle );
275
275
mPen .setCapStyle ( mLineCapStyle );
276
276
mPen .setWidthF ( 1.0 );
277
277
278
- mBrush .setColor ( QColor ( 0 , 0 , 0 ) );
278
+ mBrush .setColor ( Qt::black );
279
279
mBrush .setStyle ( Qt::SolidPattern );
280
280
281
+ mBrush2 .setColor ( Qt::white );
282
+ mBrush2 .setStyle ( Qt::SolidPattern );
283
+
281
284
// get default composer font from settings
282
285
QSettings settings;
283
286
QString defaultFontString = settings.value ( " /Composer/defaultFont" ).toString ();
@@ -533,9 +536,41 @@ bool QgsComposerScaleBar::writeXML( QDomElement& elem, QDomDocument & doc ) cons
533
536
}
534
537
535
538
// 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 );
539
574
540
575
// alignment
541
576
composerScaleBarElem.setAttribute ( " alignment" , QString::number (( int ) mAlignment ) );
@@ -573,9 +608,96 @@ bool QgsComposerScaleBar::readXML( const QDomElement& itemElem, const QDomDocume
573
608
574
609
// colors
575
610
// 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
+ }
579
701
580
702
// style
581
703
delete mStyle ;
0 commit comments