[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