@@ -24,11 +24,12 @@ email : tim@linfiniti.com
2424#include " qgsdecorationcopyright.h"
2525#include " qgsdecorationcopyrightdialog.h"
2626
27+ #include " qgisapp.h"
2728#include " qgsapplication.h"
2829#include " qgslogger.h"
2930#include " qgsmapcanvas.h"
3031#include " qgsproject.h"
31- #include " qgisapp .h"
32+ #include " qgssymbollayerutils .h"
3233
3334#include < QPainter>
3435#include < QMenu>
@@ -64,23 +65,22 @@ void QgsDecorationCopyright::projectRead()
6465 // there is no font setting in the UI, so just use the Qt/QGIS default font (what mQFont gets when created)
6566 // mQFont.setFamily( QgsProject::instance()->readEntry( "CopyrightLabel", "/FontName", "Sans Serif" ) );
6667 // mQFont.setPointSize( QgsProject::instance()->readNumEntry( "CopyrightLabel", "/FontSize", 9 ) );
67- QgsProject *prj = QgsProject::instance ();
68- mLabelQString = prj ->readEntry ( mNameConfig , QStringLiteral ( " /Label" ), defString );
68+
69+ mLabelQString = QgsProject::instance () ->readEntry ( mNameConfig , QStringLiteral ( " /Label" ), defString );
6970 mMarginHorizontal = QgsProject::instance ()->readNumEntry ( mNameConfig , QStringLiteral ( " /MarginH" ), 0 );
7071 mMarginVertical = QgsProject::instance ()->readNumEntry ( mNameConfig , QStringLiteral ( " /MarginV" ), 0 );
71- mLabelQColor . setNamedColor ( prj ->readEntry ( mNameConfig , QStringLiteral ( " /Color" ), QStringLiteral ( " #000000" ) ) ); // default color is black
72+ mColor = QgsSymbolLayerUtils::decodeColor ( QgsProject::instance () ->readEntry ( mNameConfig , QStringLiteral ( " /Color" ), QStringLiteral ( " #000000" ) ) );
7273}
7374
7475void QgsDecorationCopyright::saveToProject ()
7576{
7677 QgsDecorationItem::saveToProject ();
77- QgsProject *prj = QgsProject::instance ();
78- prj->writeEntry ( mNameConfig , QStringLiteral ( " /FontName" ), mQFont .family () );
79- prj->writeEntry ( mNameConfig , QStringLiteral ( " /FontSize" ), mQFont .pointSize () );
80- prj->writeEntry ( mNameConfig , QStringLiteral ( " /Label" ), mLabelQString );
81- prj->writeEntry ( mNameConfig , QStringLiteral ( " /Color" ), mLabelQColor .name () );
82- prj->writeEntry ( mNameConfig , QStringLiteral ( " /MarginH" ), mMarginHorizontal );
83- prj->writeEntry ( mNameConfig , QStringLiteral ( " /MarginV" ), mMarginVertical );
78+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /FontName" ), mQFont .family () );
79+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /FontSize" ), mQFont .pointSize () );
80+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /Label" ), mLabelQString );
81+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /Color" ), QgsSymbolLayerUtils::encodeColor ( mColor ) );
82+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /MarginH" ), mMarginHorizontal );
83+ QgsProject::instance ()->writeEntry ( mNameConfig , QStringLiteral ( " /MarginV" ), mMarginVertical );
8484}
8585
8686// Slot called when the buffer menu item is activated
@@ -104,8 +104,9 @@ void QgsDecorationCopyright::render( const QgsMapSettings &mapSettings, QgsRende
104104 QTextDocument text;
105105 text.setDefaultFont ( mQFont );
106106 // To set the text color in a QTextDocument we use a CSS style
107+
107108 QString style = " <style type=\" text/css\" > p {color: " +
108- mLabelQColor . name ( ) + " }</style>" ;
109+ QString ( " rgba( %1, %2, %3, %4 ) " ). arg ( mColor . red () ). arg ( mColor . green () ). arg ( mColor . blue () ). arg ( QString::number ( mColor . alphaF (), ' f ' , 2 ) ) + " }</style>" ;
109110 text.setHtml ( style + " <p>" + mLabelQString + " </p>" );
110111 QSizeF size = text.size ();
111112
0 commit comments