[QGIS Commit] r8646 - in branches/advanced_printing_branch/src: app/composer ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Jun 11 02:22:32 EDT 2008


Author: mhugent
Date: 2008-06-11 02:22:32 -0400 (Wed, 11 Jun 2008)
New Revision: 8646

Modified:
   branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp
   branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h
   branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp
   branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.h
   branches/advanced_printing_branch/src/ui/qgscomposerlabelwidgetbase.ui
Log:
Margin between label text and box

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp	2008-06-10 19:01:33 UTC (rev 8645)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp	2008-06-11 06:22:32 UTC (rev 8646)
@@ -18,7 +18,7 @@
 #include "qgscomposerlabel.h"
 #include <QPainter>
 
-QgsComposerLabel::QgsComposerLabel( QgsComposition *composition, int id): QgsComposerItem(0)
+QgsComposerLabel::QgsComposerLabel( QgsComposition *composition, int id): QgsComposerItem(0), mMargin(0.0)
 {
   mId = id;
 }
@@ -40,7 +40,7 @@
   outputFont.setPointSizeF(mFont.pointSizeF() * fontPointScaleFactor(painter));
 
   painter->setFont(outputFont);
-  painter->drawText(rect(), Qt::AlignLeft, mText, 0);
+  painter->drawText(QRectF(mMargin, mMargin, rect().width(), rect().height()), Qt::AlignLeft, mText, 0);
 
   drawFrame(painter);
   if(isSelected())
@@ -57,8 +57,12 @@
 void QgsComposerLabel::adjustSizeToText()
 {
   //find out width and hight mText and set bounding box to it
-  QFontMetricsF fontInfo(mFont);
-  setSceneRect(QRectF(transform().dx(), transform().dy(), fontInfo.width(mText), fontInfo.xHeight()));
+  QFont scaledFont(mFont);
+  scaledFont.setPointSizeF(mFont.pointSizeF() * (25.4 / 120 / 0.376)); //how to find out the 120 dpi of QGraphicsView?
+
+
+  QFontMetricsF fontInfo(scaledFont);
+  setSceneRect(QRectF(transform().dx(), transform().dy(), fontInfo.width(mText) + 2 * mMargin, fontInfo.ascent() + 2 * mMargin));
 }
 
 

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h	2008-06-10 19:01:33 UTC (rev 8645)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h	2008-06-11 06:22:32 UTC (rev 8646)
@@ -36,6 +36,8 @@
   QFont font() {return mFont;}
   void setFont(const QFont& f){mFont = f;}
   void setFontSize(double size);
+  double margin(){return mMargin;}
+  void setMargin(double m){mMargin = m;}
  
  private:
   // Text 
@@ -43,6 +45,9 @@
 
     // Font
     QFont mFont;
+
+    // Border between text and fram (in mm)
+    double mMargin;
 };
 
 #endif 

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp	2008-06-10 19:01:33 UTC (rev 8645)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp	2008-06-11 06:22:32 UTC (rev 8646)
@@ -77,5 +77,15 @@
     }
 }
 
+void QgsComposerLabelWidget::on_mMarginDoubleSpinBox_valueChanged(double d)
+{
+  if(mComposerLabel)
+    {
+      mComposerLabel->setMargin(d);
+      mComposerLabel->adjustSizeToText();
+      mComposerLabel->update();
+    }
+}
 
 
+

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.h	2008-06-10 19:01:33 UTC (rev 8645)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.h	2008-06-11 06:22:32 UTC (rev 8646)
@@ -33,6 +33,7 @@
   void on_mTextEdit_textChanged();
   void on_mFontButton_clicked();
   void on_mBoxCheckBox_stateChanged(int state);
+  void on_mMarginDoubleSpinBox_valueChanged(double d);
 
  private:
   QgsComposerLabel* mComposerLabel;

Modified: branches/advanced_printing_branch/src/ui/qgscomposerlabelwidgetbase.ui
===================================================================
--- branches/advanced_printing_branch/src/ui/qgscomposerlabelwidgetbase.ui	2008-06-10 19:01:33 UTC (rev 8645)
+++ branches/advanced_printing_branch/src/ui/qgscomposerlabelwidgetbase.ui	2008-06-11 06:22:32 UTC (rev 8646)
@@ -5,7 +5,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>215</width>
+    <width>217</width>
     <height>341</height>
    </rect>
   </property>
@@ -18,30 +18,15 @@
   <property name="windowTitle" >
    <string>Label Options</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <property name="leftMargin" >
-    <number>9</number>
-   </property>
-   <property name="topMargin" >
-    <number>9</number>
-   </property>
-   <property name="rightMargin" >
-    <number>9</number>
-   </property>
-   <property name="bottomMargin" >
-    <number>9</number>
-   </property>
-   <item>
+  <layout class="QGridLayout" >
+   <item row="0" column="0" colspan="2" >
     <widget class="QTextEdit" name="mTextEdit" >
      <property name="lineWrapMode" >
       <enum>QTextEdit::NoWrap</enum>
      </property>
     </widget>
    </item>
-   <item>
+   <item row="1" column="0" colspan="2" >
     <widget class="QPushButton" name="mFontButton" >
      <property name="sizePolicy" >
       <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
@@ -54,14 +39,24 @@
      </property>
     </widget>
    </item>
-   <item>
+   <item row="2" column="0" >
+    <widget class="QLabel" name="mMarginTextLabel" >
+     <property name="text" >
+      <string>Margin (mm):</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1" >
+    <widget class="QDoubleSpinBox" name="mMarginDoubleSpinBox" />
+   </item>
+   <item row="3" column="0" colspan="2" >
     <widget class="QCheckBox" name="mBoxCheckBox" >
      <property name="text" >
       <string>Box</string>
      </property>
     </widget>
    </item>
-   <item>
+   <item row="4" column="0" colspan="2" >
     <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
@@ -72,7 +67,7 @@
      <property name="sizeHint" >
       <size>
        <width>197</width>
-       <height>71</height>
+       <height>31</height>
       </size>
      </property>
     </spacer>



More information about the QGIS-commit mailing list