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

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Nov 25 09:58:18 EST 2009


Author: mhugent
Date: 2009-11-25 09:58:17 -0500 (Wed, 25 Nov 2009)
New Revision: 12257

Modified:
   trunk/qgis/src/app/composer/qgscomposerarrowwidget.cpp
   trunk/qgis/src/app/composer/qgscomposerarrowwidget.h
   trunk/qgis/src/core/composer/qgscomposerarrow.cpp
   trunk/qgis/src/core/composer/qgscomposerarrow.h
   trunk/qgis/src/ui/qgscomposerarrowwidgetbase.ui
Log:
Possitility to set start and end arrow marker from svg files

Modified: trunk/qgis/src/app/composer/qgscomposerarrowwidget.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscomposerarrowwidget.cpp	2009-11-25 12:24:33 UTC (rev 12256)
+++ trunk/qgis/src/app/composer/qgscomposerarrowwidget.cpp	2009-11-25 14:58:17 UTC (rev 12257)
@@ -19,11 +19,21 @@
 #include "qgscomposerarrow.h"
 #include "qgscomposeritemwidget.h"
 #include <QColorDialog>
+#include <QFileDialog>
+#include <QFileInfo>
 
 QgsComposerArrowWidget::QgsComposerArrowWidget( QgsComposerArrow* arrow ): QWidget( 0 ), mArrow( arrow )
 {
   setupUi( this );
+  mRadioButtonGroup = new QButtonGroup( this );
+  mRadioButtonGroup->addButton( mDefaultMarkerRadioButton );
+  mRadioButtonGroup->addButton( mNoMarkerRadioButton );
+  mRadioButtonGroup->addButton( mSvgMarkerRadioButton );
+  mRadioButtonGroup->setExclusive( true );
 
+  //disable the svg related gui elements by default
+  on_mSvgMarkerRadioButton_toggled( false );
+
   //add widget for general composer item properties
   QgsComposerItemWidget* itemPropertiesWidget = new QgsComposerItemWidget( this, mArrow );
   toolBox->addItem( itemPropertiesWidget, tr( "General options" ) );
@@ -38,88 +48,175 @@
 
 void QgsComposerArrowWidget::on_mOutlineWidthSpinBox_valueChanged( double d )
 {
-    if(!mArrow)
-    {
-        return;
-    }
+  if ( !mArrow )
+  {
+    return;
+  }
 
-    mArrow->setOutlineWidth( d );
-    mArrow->update();
+  mArrow->setOutlineWidth( d );
+  mArrow->update();
 }
 
 void QgsComposerArrowWidget::on_mArrowHeadWidthSpinBox_valueChanged( double d )
 {
-    if(!mArrow)
-    {
-        return;
-    }
+  if ( !mArrow )
+  {
+    return;
+  }
 
-    mArrow->setArrowHeadWidth( d );
+  mArrow->setArrowHeadWidth( d );
+  mArrow->update();
+}
+
+void QgsComposerArrowWidget::on_mArrowColorButton_clicked()
+{
+  if ( !mArrow )
+  {
+    return;
+  }
+
+#if QT_VERSION >= 0x040500
+  QColor newColor = QColorDialog::getColor( mArrow->arrowColor(), 0, tr( "Arrow color" ), QColorDialog::ShowAlphaChannel );
+#else
+  QColor newColor = QColorDialog::getColor( mArrow->arrowColor() );
+#endif
+  if ( newColor.isValid() )
+  {
+    mArrow->setArrowColor( newColor );
     mArrow->update();
+  }
 }
 
-void QgsComposerArrowWidget::on_mShowArrowHeadCheckBox_stateChanged ( int state )
+void QgsComposerArrowWidget::blockAllSignals( bool block )
 {
-    if(!mArrow)
-    {
-        return;
-    }
+  mArrowColorButton->blockSignals( block );
+  mOutlineWidthSpinBox->blockSignals( block );
+  mArrowHeadWidthSpinBox->blockSignals( block );
+  mDefaultMarkerRadioButton->blockSignals( block );
+  mNoMarkerRadioButton->blockSignals( block );
+  mSvgMarkerRadioButton->blockSignals( block );
+  mStartMarkerLineEdit->blockSignals( block );
+  mStartMarkerToolButton->blockSignals( block );
+  mEndMarkerLineEdit->blockSignals( block );
+  mEndMarkerToolButton->blockSignals( block );
+}
 
-    if(state == Qt::Checked)
+void QgsComposerArrowWidget::setGuiElementValues()
+{
+  if ( !mArrow )
+  {
+    return;
+  }
+
+  blockAllSignals( true );
+  mOutlineWidthSpinBox->setValue( mArrow->outlineWidth() );
+  mArrowHeadWidthSpinBox->setValue( mArrow->arrowHeadWidth() );
+
+  QgsComposerArrow::MarkerMode mode = mArrow->markerMode();
+  if ( mode == QgsComposerArrow::DefaultMarker )
+  {
+    mDefaultMarkerRadioButton->setChecked( true );
+  }
+  else if ( mode == QgsComposerArrow::NoMarker )
+  {
+    mNoMarkerRadioButton->setChecked( true );
+  }
+  else //svg marker
+  {
+    mSvgMarkerRadioButton->setChecked( true );
+    enableSvgInputElements( true );
+  }
+  mStartMarkerLineEdit->setText( mArrow->startMarker() );
+  mEndMarkerLineEdit->setText( mArrow->endMarker() );
+  blockAllSignals( false );
+}
+
+void QgsComposerArrowWidget::enableSvgInputElements( bool enable )
+{
+  mStartMarkerLineEdit->setEnabled( enable );
+  mStartMarkerToolButton->setEnabled( enable );
+  mEndMarkerLineEdit->setEnabled( enable );
+  mEndMarkerToolButton->setEnabled( enable );
+}
+
+void QgsComposerArrowWidget::on_mDefaultMarkerRadioButton_toggled( bool toggled )
+{
+  if ( mArrow && toggled )
+  {
+    mArrow->setMarkerMode( QgsComposerArrow::DefaultMarker );
+    mArrow->update();
+  }
+}
+
+void QgsComposerArrowWidget::on_mNoMarkerRadioButton_toggled( bool toggled )
+{
+  if ( mArrow && toggled )
+  {
+    mArrow->setMarkerMode( QgsComposerArrow::NoMarker );
+    mArrow->update();
+  }
+}
+
+void QgsComposerArrowWidget::on_mSvgMarkerRadioButton_toggled( bool toggled )
+{
+  enableSvgInputElements( toggled );
+  if ( mArrow && toggled )
+  {
+    mArrow->setMarkerMode( QgsComposerArrow::SVGMarker );
+    mArrow->update();
+  }
+}
+
+void QgsComposerArrowWidget::on_mStartMarkerLineEdit_textChanged( const QString & text )
+{
+  if ( mArrow )
+  {
+    QFileInfo fi( text );
+    if ( fi.exists() )
     {
-        mArrow->setShowArrowMarker(true);
+      mArrow->setStartMarker( text );
     }
     else
     {
-        mArrow->setShowArrowMarker(false);
+      mArrow->setStartMarker( "" );
     }
     mArrow->update();
+  }
 }
 
-void QgsComposerArrowWidget::on_mArrowColorButton_clicked()
+void QgsComposerArrowWidget::on_mEndMarkerLineEdit_textChanged( const QString & text )
 {
-    if(!mArrow)
+  if ( mArrow )
+  {
+    QFileInfo fi( text );
+    if ( fi.exists() )
     {
-        return;
+      mArrow->setEndMarker( text );
     }
-
-    #if QT_VERSION >= 0x040500
-    QColor newColor = QColorDialog::getColor(mArrow->arrowColor(), 0, tr("Arrow color"), QColorDialog::ShowAlphaChannel);
-    #else
-    QColor newColor = QColorDialog::getColor(mArrow->arrowColor());
-    #endif
-    if(newColor.isValid())
+    else
     {
-        mArrow->setArrowColor(newColor);
-        mArrow->update();
+      mArrow->setEndMarker( "" );
     }
+    mArrow->update();
+  }
 }
 
-void QgsComposerArrowWidget::blockAllSignals(bool block)
+void QgsComposerArrowWidget::on_mStartMarkerToolButton_clicked()
 {
-    mArrowColorButton->blockSignals(block);
-    mShowArrowHeadCheckBox->blockSignals(block);
-    mOutlineWidthSpinBox->blockSignals(block);
-    mArrowHeadWidthSpinBox->blockSignals(block);
+  QFileInfo fi( mStartMarkerLineEdit->text() );
+  QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "Start marker svg file" ), fi.dir().absolutePath() );
+  if ( !svgFileName.isNull() )
+  {
+    mStartMarkerLineEdit->setText( svgFileName );
+  }
 }
 
-void QgsComposerArrowWidget::setGuiElementValues()
+void QgsComposerArrowWidget::on_mEndMarkerToolButton_clicked()
 {
-    if(!mArrow)
-    {
-        return;
-    }
-
-    blockAllSignals(true);
-    mOutlineWidthSpinBox->setValue(mArrow->outlineWidth());
-    mArrowHeadWidthSpinBox->setValue(mArrow->arrowHeadWidth());
-    if( mArrow->showArrowMarker())
-    {
-        mShowArrowHeadCheckBox->setCheckState(Qt::Checked);
-    }
-    else
-    {
-        mShowArrowHeadCheckBox->setCheckState(Qt::Unchecked);
-    }
-    blockAllSignals(false);
+  QFileInfo fi( mEndMarkerLineEdit->text() );
+  QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "End marker svg file" ), fi.dir().absolutePath() );
+  if ( !svgFileName.isNull() )
+  {
+    mEndMarkerLineEdit ->setText( svgFileName );
+  }
 }

Modified: trunk/qgis/src/app/composer/qgscomposerarrowwidget.h
===================================================================
--- trunk/qgis/src/app/composer/qgscomposerarrowwidget.h	2009-11-25 12:24:33 UTC (rev 12256)
+++ trunk/qgis/src/app/composer/qgscomposerarrowwidget.h	2009-11-25 14:58:17 UTC (rev 12257)
@@ -34,12 +34,22 @@
 
     void blockAllSignals( bool block );
     void setGuiElementValues();
+    QButtonGroup* mRadioButtonGroup;
 
+    /**Enables / disables the SVG line inputs*/
+    void enableSvgInputElements( bool enable );
+
   private slots:
     void on_mOutlineWidthSpinBox_valueChanged( double d );
     void on_mArrowHeadWidthSpinBox_valueChanged( double d );
-    void on_mShowArrowHeadCheckBox_stateChanged( int state );
     void on_mArrowColorButton_clicked();
+    void on_mDefaultMarkerRadioButton_toggled( bool toggled );
+    void on_mNoMarkerRadioButton_toggled( bool toggled );
+    void on_mSvgMarkerRadioButton_toggled( bool toggled );
+    void on_mStartMarkerLineEdit_textChanged( const QString & text );
+    void on_mEndMarkerLineEdit_textChanged( const QString & text );
+    void on_mStartMarkerToolButton_clicked();
+    void on_mEndMarkerToolButton_clicked();
 };
 
 #endif // QGSCOMPOSERARROWWIDGET_H

Modified: trunk/qgis/src/core/composer/qgscomposerarrow.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerarrow.cpp	2009-11-25 12:24:33 UTC (rev 12256)
+++ trunk/qgis/src/core/composer/qgscomposerarrow.cpp	2009-11-25 14:58:17 UTC (rev 12257)
@@ -25,16 +25,14 @@
 #include <math.h>
 #endif
 
-QgsComposerArrow::QgsComposerArrow( QgsComposition* c ): QgsComposerItem( c ), mStartPoint( 0, 0 ), mStopPoint( 0, 0 ), mArrowColor( QColor( 0, 0, 0 ) )
+QgsComposerArrow::QgsComposerArrow( QgsComposition* c ): QgsComposerItem( c ), mStartPoint( 0, 0 ), mStopPoint( 0, 0 ), mMarkerMode( DefaultMarker ), mArrowColor( QColor( 0, 0, 0 ) )
 {
   initGraphicsSettings();
 }
 
 QgsComposerArrow::QgsComposerArrow( const QPointF& startPoint, const QPointF& stopPoint, QgsComposition* c ): QgsComposerItem( c ), mStartPoint( startPoint ), \
-    mStopPoint( stopPoint ), mArrowColor( QColor( 0, 0, 0 ) )
+    mStopPoint( stopPoint ), mMarkerMode( DefaultMarker ), mArrowColor( QColor( 0, 0, 0 ) )
 {
-  //setStartMarker( "/home/marco/src/qgis/images/svg/north_arrows/NorthArrow11.svg" );
-  //setEndMarker( "/home/marco/src/qgis/images/svg/north_arrows/NorthArrow11.svg" );
   initGraphicsSettings();
   adaptItemSceneRect();
 }
@@ -49,8 +47,10 @@
   setArrowHeadWidth( 4 );
   mPen.setColor( QColor( 0, 0, 0 ) );
   mPen.setWidthF( 1 );
-  mShowArrowMarker = true;
 
+  //setStartMarker( "/home/marco/src/qgis/images/svg/north_arrows/NorthArrow11.svg" );
+  //setEndMarker( "/home/marco/src/qgis/images/svg/north_arrows/NorthArrow11.svg" );
+
   //set composer item brush and pen to transparent white by default
   setPen( QPen( QColor( 255, 255, 255, 0 ) ) );
   setBrush( QBrush( QColor( 255, 255, 255, 0 ) ) );
@@ -73,12 +73,15 @@
   painter->setBrush( QBrush( mArrowColor ) );
   painter->drawLine( QPointF( mStartPoint.x() - transform().dx(), mStartPoint.y() - transform().dy() ), QPointF( mStopPoint.x() - transform().dx(), mStopPoint.y() - transform().dy() ) );
 
-  if ( mShowArrowMarker )
+  if ( mMarkerMode == DefaultMarker )
   {
     drawHardcodedMarker( painter, EndMarker );
-    //drawSVGMarker( painter, StartMarker, mStartMarkerFile );
-    //drawSVGMarker( painter, EndMarker, mEndMarkerFile );
   }
+  else if ( mMarkerMode == SVGMarker )
+  {
+    drawSVGMarker( painter, StartMarker, mStartMarkerFile );
+    drawSVGMarker( painter, EndMarker, mEndMarkerFile );
+  }
 
   drawFrame( painter );
   if ( isSelected() )
@@ -155,9 +158,19 @@
 
   //prepare paint device
   int dpi = ( p->device()->logicalDpiX() + p->device()->logicalDpiY() ) / 2;
+  double viewScaleFactor = horizontalViewScaleFactor();
   int imageWidth = mArrowHeadWidth / 25.4 * dpi;
   int imageHeight = arrowHeadHeight / 25.4 * dpi;
+
+  //make nicer preview
+  if ( mComposition && mComposition->plotStyle() == QgsComposition::Preview )
+  {
+    imageWidth *= std::min( viewScaleFactor, 10.0 );
+    imageHeight *= std::min( viewScaleFactor, 10.0 );
+  }
   QImage markerImage( imageWidth, imageHeight, QImage::Format_ARGB32 );
+  QColor markerBG( 255, 255, 255, 0 ); //transparent white background
+  markerImage.fill( markerBG.rgba() );
 
   QPointF imageFixPoint;
   imageFixPoint.setX( mArrowHeadWidth / 2.0 );
@@ -202,8 +215,8 @@
   }
   QPointF rotatedFixPoint;
   double angleRad = angle / 180 * M_PI;
-  rotatedFixPoint.setX( fixPoint.x() * cos( angleRad ) + fixPoint.y() * sin( angleRad ) );
-  rotatedFixPoint.setY( fixPoint.x() * -sin( angleRad ) + fixPoint.y() * cos( angleRad ) );
+  rotatedFixPoint.setX( fixPoint.x() * cos( angleRad ) + fixPoint.y() * -sin( angleRad ) );
+  rotatedFixPoint.setY( fixPoint.x() * sin( angleRad ) + fixPoint.y() * cos( angleRad ) );
 
 
   QPainter imagePainter( &markerImage );
@@ -275,30 +288,31 @@
 void QgsComposerArrow::setArrowHeadWidth( double width )
 {
   mArrowHeadWidth = width;
+  setStartMarker( mStartMarkerFile );
+  setEndMarker( mEndMarkerFile );
   adaptItemSceneRect();
 }
 
-void QgsComposerArrow::setShowArrowMarker( bool show )
-{
-  mShowArrowMarker = show;
-  adaptItemSceneRect();
-}
-
 void QgsComposerArrow::adaptItemSceneRect()
 {
   //rectangle containing start and end point
   QRectF rect = QRectF( std::min( mStartPoint.x(), mStopPoint.x() ), std::min( mStartPoint.y(), mStopPoint.y() ), \
                         fabs( mStopPoint.x() - mStartPoint.x() ), fabs( mStopPoint.y() - mStartPoint.y() ) );
   double enlarge;
-  if ( mShowArrowMarker )
+  if ( mMarkerMode == DefaultMarker )
   {
-    double maxArrowHeight = std::max( mStartArrowHeadHeight, mStopArrowHeadHeight );
-    enlarge = mPen.widthF() / 2 + std::max( mArrowHeadWidth / 2.0, maxArrowHeight / 2.0 );
+    enlarge == mPen.widthF() / 2.0 + mArrowHeadWidth / 2.0;
   }
-  else
+  else if ( mMarkerMode == NoMarker )
   {
     enlarge = mPen.widthF() / 2.0;
   }
+  else if ( mMarkerMode == SVGMarker )
+  {
+    double maxArrowHeight = std::max( mStartArrowHeadHeight, mStopArrowHeadHeight );
+    enlarge = mPen.widthF() / 2 + std::max( mArrowHeadWidth / 2.0, maxArrowHeight / 2.0 );
+  }
+
   rect.adjust( -enlarge, -enlarge, enlarge, enlarge );
   QgsComposerItem::setSceneRect( rect );
 }
@@ -307,8 +321,10 @@
 {
   QDomElement composerArrowElem = doc.createElement( "ComposerArrow" );
   composerArrowElem.setAttribute( "outlineWidth", outlineWidth() );
-  composerArrowElem.setAttribute( "showArrowMarker", mShowArrowMarker );
   composerArrowElem.setAttribute( "arrowHeadWidth", mArrowHeadWidth );
+  composerArrowElem.setAttribute( "markerMode", mMarkerMode );
+  composerArrowElem.setAttribute( "startMarkerFile", mStartMarkerFile );
+  composerArrowElem.setAttribute( "endMarkerFile", mEndMarkerFile );
 
   //arrow color
   QDomElement arrowColorElem = doc.createElement( "ArrowColor" );
@@ -336,9 +352,11 @@
 
 bool QgsComposerArrow::readXML( const QDomElement& itemElem, const QDomDocument& doc )
 {
-  mShowArrowMarker = itemElem.attribute( "showArrowMarker", "1" ).toInt();
   mArrowHeadWidth = itemElem.attribute( "arrowHeadWidth", "2.0" ).toDouble();
   mPen.setWidthF( itemElem.attribute( "outlineWidth", "1.0" ).toDouble() );
+  setStartMarker( itemElem.attribute( "startMarkerFile", "" ) );
+  setEndMarker( itemElem.attribute( "endMarkerFile", "" ) );
+  mMarkerMode = QgsComposerArrow::MarkerMode( itemElem.attribute( "markerMode", "0" ).toInt() );
 
   //arrow color
   QDomNodeList arrowColorList = itemElem.elementsByTagName( "ArrowColor" );

Modified: trunk/qgis/src/core/composer/qgscomposerarrow.h
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerarrow.h	2009-11-25 12:24:33 UTC (rev 12256)
+++ trunk/qgis/src/core/composer/qgscomposerarrow.h	2009-11-25 14:58:17 UTC (rev 12257)
@@ -24,6 +24,14 @@
 class CORE_EXPORT QgsComposerArrow: public QgsComposerItem
 {
   public:
+
+    enum MarkerMode
+    {
+      DefaultMarker,
+      NoMarker,
+      SVGMarker
+    };
+
     QgsComposerArrow( QgsComposition* c );
     QgsComposerArrow( const QPointF& startPoint, const QPointF& stopPoint, QgsComposition* c );
     ~QgsComposerArrow();
@@ -42,14 +50,16 @@
     double outlineWidth() const {return mPen.widthF();}
 
     void setStartMarker( const QString& svgPath );
+    QString startMarker() const {return mStartMarkerFile;}
     void setEndMarker( const QString& svgPath );
+    QString endMarker() const {return mEndMarkerFile;}
 
-    bool showArrowMarker() const { return mShowArrowMarker;}
-    void setShowArrowMarker( bool show );
-
     QColor arrowColor() const { return mArrowColor; }
     void setArrowColor( const QColor& c ) { mArrowColor = c; }
 
+    MarkerMode markerMode() const { return mMarkerMode;}
+    void setMarkerMode( MarkerMode mode ) {mMarkerMode = mode;}
+
     /** stores state in Dom node
     * @param node is Dom node corresponding to 'Composer' tag
     * @param temp write template file
@@ -85,16 +95,18 @@
     QString mStartMarkerFile;
     /**Path to the end marker file*/
     QString mEndMarkerFile;
-
-    /**True if arrow head marker is drawn*/
-    bool mShowArrowMarker;
+    /**Default marker, no marker or svg marker*/
+    MarkerMode mMarkerMode;
     QColor mArrowColor;
 
+
+
     /**Adapts the item scene rect to contain the start point, the stop point including the arrow marker and the outline.
         Needs to be called whenever the arrow width/height, the outline with or the endpoints are changed*/
     void adaptItemSceneRect();
-
+    /**Draws the default marker at the line end*/
     void drawHardcodedMarker( QPainter* p, MarkerType type );
+    /**Draws a user-defined marker (must be an svg file)*/
     void drawSVGMarker( QPainter* p, MarkerType type, const QString& markerPath );
     /**Calculates arrow angle (for marker rotation)*/
     double arrowAngle() const;

Modified: trunk/qgis/src/ui/qgscomposerarrowwidgetbase.ui
===================================================================
--- trunk/qgis/src/ui/qgscomposerarrowwidgetbase.ui	2009-11-25 12:24:33 UTC (rev 12256)
+++ trunk/qgis/src/ui/qgscomposerarrowwidgetbase.ui	2009-11-25 14:58:17 UTC (rev 12257)
@@ -6,14 +6,14 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>273</width>
-    <height>306</height>
+    <width>196</width>
+    <height>407</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2">
+  <layout class="QGridLayout" name="gridLayout_3">
    <item row="0" column="0">
     <widget class="QToolBox" name="toolBox">
      <property name="currentIndex">
@@ -24,14 +24,14 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>255</width>
-        <height>256</height>
+        <width>178</width>
+        <height>363</height>
        </rect>
       </property>
       <attribute name="label">
        <string>Arrow</string>
       </attribute>
-      <layout class="QGridLayout" name="gridLayout">
+      <layout class="QGridLayout" name="gridLayout_2">
        <item row="0" column="0">
         <widget class="QPushButton" name="mArrowColorButton">
          <property name="text">
@@ -40,26 +40,83 @@
         </widget>
        </item>
        <item row="1" column="0">
-        <widget class="QCheckBox" name="mShowArrowHeadCheckBox">
-         <property name="text">
-          <string>Show arrow head</string>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="0">
         <widget class="QDoubleSpinBox" name="mOutlineWidthSpinBox">
          <property name="prefix">
           <string>Outline width </string>
          </property>
         </widget>
        </item>
-       <item row="3" column="0">
+       <item row="2" column="0">
         <widget class="QDoubleSpinBox" name="mArrowHeadWidthSpinBox">
          <property name="prefix">
           <string>Arrow head width </string>
          </property>
         </widget>
        </item>
+       <item row="3" column="0">
+        <widget class="QGroupBox" name="mArrowMarkersGroupBox">
+         <property name="title">
+          <string>Arrow markers</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout">
+          <item row="0" column="0" colspan="2">
+           <widget class="QRadioButton" name="mDefaultMarkerRadioButton">
+            <property name="text">
+             <string>Default marker</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QRadioButton" name="mNoMarkerRadioButton">
+            <property name="text">
+             <string>No marker</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0" colspan="2">
+           <widget class="QRadioButton" name="mSvgMarkerRadioButton">
+            <property name="text">
+             <string>SVG markers</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QLabel" name="mStartMarkerLabel">
+            <property name="text">
+             <string>Start marker</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="0">
+           <widget class="QLineEdit" name="mStartMarkerLineEdit"/>
+          </item>
+          <item row="4" column="1">
+           <widget class="QToolButton" name="mStartMarkerToolButton">
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="5" column="0">
+           <widget class="QLabel" name="mEndMarkerLabel">
+            <property name="text">
+             <string>End marker</string>
+            </property>
+           </widget>
+          </item>
+          <item row="6" column="0">
+           <widget class="QLineEdit" name="mEndMarkerLineEdit"/>
+          </item>
+          <item row="6" column="1">
+           <widget class="QToolButton" name="mEndMarkerToolButton">
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
        <item row="4" column="0">
         <spacer name="verticalSpacer">
          <property name="orientation">
@@ -68,7 +125,7 @@
          <property name="sizeHint" stdset="0">
           <size>
            <width>20</width>
-           <height>40</height>
+           <height>62</height>
           </size>
          </property>
         </spacer>



More information about the QGIS-commit mailing list