[QGIS Commit] r12204 - in trunk/qgis: python/core src/app/composer src/core/composer src/ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Nov 20 04:43:45 EST 2009


Author: mhugent
Date: 2009-11-20 04:43:39 -0500 (Fri, 20 Nov 2009)
New Revision: 12204

Modified:
   trunk/qgis/python/core/qgscomposerlabel.sip
   trunk/qgis/src/app/composer/qgscomposerlabelwidget.cpp
   trunk/qgis/src/app/composer/qgscomposerlabelwidget.h
   trunk/qgis/src/core/composer/qgscomposeritem.cpp
   trunk/qgis/src/core/composer/qgscomposerlabel.cpp
   trunk/qgis/src/core/composer/qgscomposerlabel.h
   trunk/qgis/src/core/composer/qgscomposerlegend.cpp
   trunk/qgis/src/core/composer/qgscomposermap.cpp
   trunk/qgis/src/core/composer/qgscomposershape.cpp
   trunk/qgis/src/core/composer/qgsnumericscalebarstyle.cpp
   trunk/qgis/src/core/composer/qgsscalebarstyle.cpp
   trunk/qgis/src/ui/qgscomposerlabelwidgetbase.ui
Log:
Added possibility to set label font color

Modified: trunk/qgis/python/core/qgscomposerlabel.sip
===================================================================
--- trunk/qgis/python/core/qgscomposerlabel.sip	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/python/core/qgscomposerlabel.sip	2009-11-20 09:43:39 UTC (rev 12204)
@@ -22,12 +22,19 @@
      /**Returns the text as it appears on screen (with replaced data field)
       @note this function was added in version 1.2*/
     QString displayText() const;
-
+    /**Get font color
+      @note: this function was added in version 1.4*/
     QFont font() const;
     void setFont( const QFont& f );
     double margin();
     void setMargin( double m );
 
+    /**Sets text color
+    @note: this function was added in version 1.4*/
+    void setFontColor( const QColor& c);
+
+    QColor fontColor() const;
+
     /** stores state in Dom node
        * @param node is Dom node corresponding to 'Composer' tag
        * @param temp write template file

Modified: trunk/qgis/src/app/composer/qgscomposerlabelwidget.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscomposerlabelwidget.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/app/composer/qgscomposerlabelwidget.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -18,6 +18,7 @@
 #include "qgscomposerlabelwidget.h"
 #include "qgscomposerlabel.h"
 #include "qgscomposeritemwidget.h"
+#include <QColorDialog>
 #include <QFontDialog>
 #include <QWidget>
 
@@ -73,3 +74,17 @@
   }
 }
 
+void QgsComposerLabelWidget::on_mFontColorButton_clicked()
+{
+  if ( !mComposerLabel )
+  {
+    return;
+  }
+  QColor newColor = QColorDialog::getColor( mComposerLabel->fontColor() );
+  if ( !newColor.isValid() )
+  {
+    return;
+  }
+  mComposerLabel->setFontColor( newColor );
+}
+

Modified: trunk/qgis/src/app/composer/qgscomposerlabelwidget.h
===================================================================
--- trunk/qgis/src/app/composer/qgscomposerlabelwidget.h	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/app/composer/qgscomposerlabelwidget.h	2009-11-20 09:43:39 UTC (rev 12204)
@@ -35,6 +35,7 @@
     void on_mTextEdit_textChanged();
     void on_mFontButton_clicked();
     void on_mMarginDoubleSpinBox_valueChanged( double d );
+    void on_mFontColorButton_clicked();
 
   private:
     QgsComposerLabel* mComposerLabel;

Modified: trunk/qgis/src/core/composer/qgscomposeritem.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposeritem.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposeritem.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -715,7 +715,6 @@
 
   p->save();
   p->setFont( textFont );
-  p->setPen( QColor( 0, 0, 0 ) ); //draw text always in black
   double scaleFactor = 1.0 / FONT_WORKAROUND_SCALE;
   p->scale( scaleFactor, scaleFactor );
   p->drawText( scaledRect, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, text );

Modified: trunk/qgis/src/core/composer/qgscomposerlabel.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerlabel.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposerlabel.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -20,7 +20,7 @@
 #include <QDomElement>
 #include <QPainter>
 
-QgsComposerLabel::QgsComposerLabel( QgsComposition *composition ): QgsComposerItem( composition ), mMargin( 1.0 )
+QgsComposerLabel::QgsComposerLabel( QgsComposition *composition ): QgsComposerItem( composition ), mMargin( 1.0 ), mFontColor( QColor( 0, 0, 0 ) )
 {
   //default font size is 10 point
   mFont.setPointSizeF( 10 );
@@ -38,7 +38,7 @@
   }
 
   drawBackground( painter );
-  painter->setPen( QPen( QColor( 0, 0, 0 ) ) ); //draw all text black
+  painter->setPen( QPen( QColor( mFontColor ) ) ); //draw all text black
   painter->setFont( mFont );
 
   QFontMetricsF fontSize( mFont );
@@ -128,6 +128,13 @@
   labelFontElem.setAttribute( "description", mFont.toString() );
   composerLabelElem.appendChild( labelFontElem );
 
+  //font color
+  QDomElement fontColorElem = doc.createElement( "FontColor" );
+  fontColorElem.setAttribute( "red", mFontColor.red() );
+  fontColorElem.setAttribute( "green", mFontColor.green() );
+  fontColorElem.setAttribute( "blue", mFontColor.blue() );
+  composerLabelElem.appendChild( fontColorElem );
+
   elem.appendChild( composerLabelElem );
   return _writeXML( composerLabelElem, doc );
 }
@@ -155,6 +162,21 @@
     mFont.fromString( labelFontElem.attribute( "description" ) );
   }
 
+  //font color
+  QDomNodeList fontColorList = itemElem.elementsByTagName( "FontColor" );
+  if ( fontColorList.size() > 0 )
+  {
+    QDomElement fontColorElem = fontColorList.at( 0 ).toElement();
+    int red = fontColorElem.attribute( "red", "0" ).toInt();
+    int green = fontColorElem.attribute( "green", "0" ).toInt();
+    int blue = fontColorElem.attribute( "blue", "0" ).toInt();
+    mFontColor = QColor( red, green, blue );
+  }
+  else
+  {
+    mFontColor = QColor( 0, 0, 0 );
+  }
+
   //restore general composer item properties
   QDomNodeList composerItemList = itemElem.elementsByTagName( "ComposerItem" );
   if ( composerItemList.size() > 0 )

Modified: trunk/qgis/src/core/composer/qgscomposerlabel.h
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerlabel.h	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposerlabel.h	2009-11-20 09:43:39 UTC (rev 12204)
@@ -46,6 +46,13 @@
     double margin() {return mMargin;}
     void setMargin( double m ) {mMargin = m;}
 
+    /**Sets text color
+        @note: this function was added in version 1.4*/
+    void setFontColor( const QColor& c ) {mFontColor = c;}
+    /**Get font color
+        @note: this function was added in version 1.4*/
+    QColor fontColor() const {return mFontColor;}
+
     /** stores state in Dom node
        * @param node is Dom node corresponding to 'Composer' tag
        * @param temp write template file
@@ -64,6 +71,9 @@
     // Font
     QFont mFont;
 
+    // Font color
+    QColor mFontColor;
+
     // Border between text and fram (in mm)
     double mMargin;
 

Modified: trunk/qgis/src/core/composer/qgscomposerlegend.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerlegend.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposerlegend.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -88,6 +88,7 @@
   currentYCoordinate += fontAscentMillimeters( mTitleFont );
   if ( painter )
   {
+    painter->setPen( QColor( 0, 0, 0 ) );
     drawText( painter, mBoxSpace, currentYCoordinate, mTitle, mTitleFont );
   }
 
@@ -126,6 +127,7 @@
           //draw layer Item
           if ( painter )
           {
+            painter->setPen( QColor( 0, 0, 0 ) );
             drawText( painter, mBoxSpace, currentYCoordinate, currentLayerItem->text(), mLayerFont );
           }
         }
@@ -237,6 +239,7 @@
     //finally draw text
     if ( p )
     {
+      p->setPen( QColor( 0, 0, 0 ) );
       drawText( p, currentXCoord, currentYCoord + fontAscentMillimeters( mItemFont ) + ( realItemHeight - fontAscentMillimeters( mItemFont ) ) / 2, currentItem->text(), mItemFont );
     }
 

Modified: trunk/qgis/src/core/composer/qgscomposermap.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposermap.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposermap.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -1031,6 +1031,7 @@
   p->save();
   p->translate( pos );
   p->rotate( rotation );
+  p->setPen( QColor( 0, 0, 0 ) );
   drawText( p, 0, 0, annotationText, mGridAnnotationFont );
   p->restore();
 }

Modified: trunk/qgis/src/core/composer/qgscomposershape.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposershape.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgscomposershape.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -36,6 +36,12 @@
 
 void QgsComposerShape::paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget )
 {
+  if ( !painter )
+  {
+    return;
+  }
+  drawBackground( painter );
+
   double width = rect().width();
   double height = rect().height();
   imageSizeConsideringRotation( width, height );

Modified: trunk/qgis/src/core/composer/qgsnumericscalebarstyle.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgsnumericscalebarstyle.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgsnumericscalebarstyle.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -49,7 +49,7 @@
 
   p->save();
   p->setFont( mScaleBar->font() );
-
+  p->setPen( QColor( 0, 0, 0 ) );
   mScaleBar->drawText( p, mScaleBar->pen().widthF() + mScaleBar->boxContentSpace(), mScaleBar->boxContentSpace() + mScaleBar->fontAscentMillimeters( mScaleBar->font() ), scaleText(), mScaleBar->font() );
 
   p->restore();

Modified: trunk/qgis/src/core/composer/qgsscalebarstyle.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgsscalebarstyle.cpp	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/core/composer/qgsscalebarstyle.cpp	2009-11-20 09:43:39 UTC (rev 12204)
@@ -78,6 +78,7 @@
 
     if ( segmentCounter == 0 || segmentCounter >= nSegmentsLeft ) //don't draw label for intermediate left segments
     {
+      p->setPen( QColor( 0, 0, 0 ) );
       mScaleBar->drawText( p, segmentIt->first - mScaleBar->textWidthMillimeters( mScaleBar->font(), currentNumericLabel ) / 2 + xOffset, mScaleBar->fontAscentMillimeters( mScaleBar->font() ) + mScaleBar->boxContentSpace(), currentNumericLabel, mScaleBar->font() );
     }
 
@@ -92,6 +93,7 @@
   if ( !segmentInfo.isEmpty() )
   {
     currentNumericLabel = QString::number( currentLabelNumber / mScaleBar->numMapUnitsPerScaleBarUnit() );
+    p->setPen( QColor( 0, 0, 0 ) );
     mScaleBar->drawText( p, segmentInfo.last().first + mScaleBar->segmentMillimeters() - mScaleBar->textWidthMillimeters( mScaleBar->font(), currentNumericLabel ) / 2 + xOffset, mScaleBar->fontAscentMillimeters( mScaleBar->font() ) + mScaleBar->boxContentSpace(), currentNumericLabel + " " + mScaleBar->unitLabeling(), mScaleBar->font() );
   }
 

Modified: trunk/qgis/src/ui/qgscomposerlabelwidgetbase.ui
===================================================================
--- trunk/qgis/src/ui/qgscomposerlabelwidgetbase.ui	2009-11-20 00:39:29 UTC (rev 12203)
+++ trunk/qgis/src/ui/qgscomposerlabelwidgetbase.ui	2009-11-20 09:43:39 UTC (rev 12204)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>203</width>
-    <height>303</height>
+    <height>362</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -20,9 +20,6 @@
    <string>Label Options</string>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
-   <property name="margin">
-    <number>0</number>
-   </property>
    <item row="0" column="0">
     <widget class="QToolBox" name="toolBox">
      <property name="currentIndex">
@@ -33,14 +30,21 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>203</width>
-        <height>271</height>
+        <width>185</width>
+        <height>318</height>
        </rect>
       </property>
       <attribute name="label">
        <string>Label</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout">
+       <item row="0" column="0">
+        <widget class="QTextEdit" name="mTextEdit">
+         <property name="lineWrapMode">
+          <enum>QTextEdit::NoWrap</enum>
+         </property>
+        </widget>
+       </item>
        <item row="1" column="0">
         <widget class="QPushButton" name="mFontButton">
          <property name="sizePolicy">
@@ -55,6 +59,13 @@
         </widget>
        </item>
        <item row="2" column="0">
+        <widget class="QPushButton" name="mFontColorButton">
+         <property name="text">
+          <string>Font color...</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
         <widget class="QLabel" name="mMarginTextLabel">
          <property name="text">
           <string>Margin (mm)</string>
@@ -64,16 +75,9 @@
          </property>
         </widget>
        </item>
-       <item row="3" column="0">
+       <item row="4" column="0">
         <widget class="QDoubleSpinBox" name="mMarginDoubleSpinBox"/>
        </item>
-       <item row="0" column="0">
-        <widget class="QTextEdit" name="mTextEdit">
-         <property name="lineWrapMode">
-          <enum>QTextEdit::NoWrap</enum>
-         </property>
-        </widget>
-       </item>
       </layout>
      </widget>
     </widget>



More information about the QGIS-commit mailing list