[QGIS Commit] r8804 - branches/advanced_printing_branch/src/app/composer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Jul 17 07:25:10 EDT 2008


Author: mhugent
Date: 2008-07-17 07:25:09 -0400 (Thu, 17 Jul 2008)
New Revision: 8804

Modified:
   branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp
   branches/advanced_printing_branch/src/app/composer/qgscomposerscalebarwidget.cpp
   branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.cpp
   branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.h
Log:
Support ticks up/down/middle position

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp	2008-07-17 10:54:44 UTC (rev 8803)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp	2008-07-17 11:25:09 UTC (rev 8804)
@@ -202,9 +202,21 @@
     {
       mStyle = new QgsDoubleBoxScaleBarStyle(this);
     }
-  else if(styleName == tr("Line Ticks Middle"))
+  else if(styleName == tr("Line Ticks Middle") || styleName == tr("Line Ticks Down") || styleName == tr("Line Ticks Up"))
     {
       mStyle = new QgsTicksMiddleScaleBarStyle(this);
+      /*if(styleName == tr("Line Ticks Middle"))
+	{
+	  mStyle->setTickPosition(QgsTicksScaleBarStyle::MIDDLE);
+	}
+      else if(styleName == tr("Line Ticks Down"))
+	{
+	  mStyle->setTickPosition(QgsTicksScaleBarStyle::DOWN);
+	}
+      else if(styleName == tr("Line Ticks Up"))
+	{
+	  mStyle->setTickPosition(QgsTicksScaleBarStyle::UP);
+	  }*/
     } 
   else if(styleName == tr("Numeric"))
     {

Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerscalebarwidget.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerscalebarwidget.cpp	2008-07-17 10:54:44 UTC (rev 8803)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerscalebarwidget.cpp	2008-07-17 11:25:09 UTC (rev 8804)
@@ -28,7 +28,9 @@
   mStyleComboBox->insertItem(0, tr("Single Box"));
   mStyleComboBox->insertItem(1, tr("Double Box"));
   mStyleComboBox->insertItem(2, tr("Line Ticks Middle"));
-  mStyleComboBox->insertItem(3, tr("Numeric"));
+  mStyleComboBox->insertItem(3, tr("Line Ticks Down"));
+  mStyleComboBox->insertItem(4, tr("Line Ticks Up"));
+  mStyleComboBox->insertItem(5, tr("Numeric"));
 
   setGuiElements(); //set the GUI elements to the state of scaleBar
 }

Modified: branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.cpp	2008-07-17 10:54:44 UTC (rev 8803)
+++ branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.cpp	2008-07-17 11:25:09 UTC (rev 8804)
@@ -20,12 +20,12 @@
 
 QgsTicksMiddleScaleBarStyle::QgsTicksMiddleScaleBarStyle(const QgsComposerScaleBar* bar): QgsScaleBarStyle(bar)
 {
-
+  mTickPosition = MIDDLE;
 }
 
 QgsTicksMiddleScaleBarStyle::QgsTicksMiddleScaleBarStyle(): QgsScaleBarStyle(0)
 {
-
+  mTickPosition = MIDDLE;
 }
 
 QgsTicksMiddleScaleBarStyle::~QgsTicksMiddleScaleBarStyle()
@@ -46,6 +46,7 @@
     }
   double barTopPosition = mScaleBar->fontHeight() + mScaleBar->labelBarSpace() + mScaleBar->boxContentSpace();
   double middlePosition = barTopPosition + mScaleBar->height()/2.0;
+  double bottomPosition = barTopPosition + mScaleBar->height();
 
   p->save();
   p->setPen(mScaleBar->pen());
@@ -57,7 +58,18 @@
   for(; segmentIt != segmentInfo.constEnd(); ++segmentIt)
     {
       p->drawLine(segmentIt->first, barTopPosition, segmentIt->first, barTopPosition + mScaleBar->height());
-      p->drawLine(segmentIt->first, middlePosition, segmentIt->first + mScaleBar->segmentMM(), middlePosition); 
+      switch(mTickPosition)
+	{
+	case DOWN:
+	  p->drawLine(segmentIt->first, barTopPosition, segmentIt->first + mScaleBar->segmentMM(), barTopPosition);
+	  break;
+	case MIDDLE:
+	  p->drawLine(segmentIt->first, middlePosition, segmentIt->first + mScaleBar->segmentMM(), middlePosition); 
+	  break;
+	case UP:
+	  p->drawLine(segmentIt->first, bottomPosition, segmentIt->first + mScaleBar->segmentMM(), bottomPosition); 
+	  break;
+	}
     }
 
   //draw last tick

Modified: branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.h	2008-07-17 10:54:44 UTC (rev 8803)
+++ branches/advanced_printing_branch/src/app/composer/qgsticksmiddlescalebarstyle.h	2008-07-17 11:25:09 UTC (rev 8804)
@@ -22,6 +22,13 @@
 class QgsTicksMiddleScaleBarStyle: public QgsScaleBarStyle
 {
   public:
+  enum TickPosition
+    {
+      UP,
+      DOWN,
+      MIDDLE
+    };
+
   QgsTicksMiddleScaleBarStyle(const QgsComposerScaleBar* bar);
   ~QgsTicksMiddleScaleBarStyle();
 
@@ -29,8 +36,12 @@
 
   void draw(QPainter* p) const;
 
+  void setTickPosition(TickPosition p){mTickPosition = p;}
+
  private:
   QgsTicksMiddleScaleBarStyle(); //forbidden
+
+  TickPosition mTickPosition;
 };
 
 #endif 



More information about the QGIS-commit mailing list