Skip to content

Commit a21e1db

Browse files
committed
Add line edit to select svg marker
1 parent 3fcdc4c commit a21e1db

File tree

3 files changed

+50
-6
lines changed

3 files changed

+50
-6
lines changed

src/gui/symbology-ng/qgssymbollayerv2widget.cpp

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
#include <QAbstractButton>
1515
#include <QColorDialog>
1616
#include <QDir>
17+
#include <QFileDialog>
1718
#include <QPainter>
19+
#include <QSettings>
1820
#include <QStandardItemModel>
1921
#include <QSvgRenderer>
2022

@@ -618,8 +620,9 @@ QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2Widget::symbolLayer()
618620

619621
void QgsSvgMarkerSymbolLayerV2Widget::setName( const QModelIndex& idx )
620622
{
621-
mLayer->setPath( idx.data( Qt::UserRole ).toString() );
622-
623+
QString name = idx.data( Qt::UserRole ).toString();
624+
mLayer->setPath( name );
625+
mFileLineEdit->setText( name );
623626
emit changed();
624627
}
625628

@@ -641,6 +644,31 @@ void QgsSvgMarkerSymbolLayerV2Widget::setOffset()
641644
emit changed();
642645
}
643646

647+
void QgsSvgMarkerSymbolLayerV2Widget::on_mFileToolButton_clicked()
648+
{
649+
QSettings s;
650+
QString file = QFileDialog::getOpenFileName( 0, tr( "Select SVG file" ), s.value( "/UI/lastSVGMarkerDir" ).toString(), "SVG files (*.svg)" );
651+
QFileInfo fi( file );
652+
if ( file.isEmpty() || !fi.exists() )
653+
{
654+
return;
655+
}
656+
mFileLineEdit->setText( file );
657+
mLayer->setPath( file );
658+
s.setValue( "/UI/lastSVGMarkerDir", fi.absolutePath() );
659+
emit changed();
660+
}
661+
662+
void QgsSvgMarkerSymbolLayerV2Widget::on_mFileLineEdit_textEdited( const QString& text )
663+
{
664+
if ( !QFileInfo( text ).exists() )
665+
{
666+
return;
667+
}
668+
mLayer->setPath( text );
669+
emit changed();
670+
}
671+
644672
///////////////
645673

646674
QgsLineDecorationSymbolLayerV2Widget::QgsLineDecorationSymbolLayerV2Widget( QWidget* parent )

src/gui/symbology-ng/qgssymbollayerv2widget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ class GUI_EXPORT QgsSvgMarkerSymbolLayerV2Widget : public QgsSymbolLayerV2Widget
179179
void setSize();
180180
void setAngle();
181181
void setOffset();
182+
void on_mFileToolButton_clicked();
183+
void on_mFileLineEdit_textEdited( const QString& text );
182184

183185
protected:
184186

src/ui/symbollayer/widget_svgmarker.ui

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<property name="windowTitle">
1414
<string>Form</string>
1515
</property>
16-
<layout class="QVBoxLayout" name="verticalLayout">
17-
<item>
16+
<layout class="QGridLayout" name="gridLayout">
17+
<item row="0" column="0">
1818
<layout class="QGridLayout">
1919
<item row="0" column="0">
2020
<widget class="QLabel" name="label_2">
@@ -120,14 +120,14 @@
120120
</item>
121121
</layout>
122122
</item>
123-
<item>
123+
<item row="1" column="0">
124124
<widget class="QLabel" name="label">
125125
<property name="text">
126126
<string>SVG Image</string>
127127
</property>
128128
</widget>
129129
</item>
130-
<item>
130+
<item row="2" column="0">
131131
<widget class="QListView" name="viewImages">
132132
<property name="editTriggers">
133133
<set>QAbstractItemView::NoEditTriggers</set>
@@ -167,6 +167,20 @@
167167
</property>
168168
</widget>
169169
</item>
170+
<item row="3" column="0">
171+
<layout class="QHBoxLayout" name="horizontalLayout_2">
172+
<item>
173+
<widget class="QLineEdit" name="mFileLineEdit"/>
174+
</item>
175+
<item>
176+
<widget class="QToolButton" name="mFileToolButton">
177+
<property name="text">
178+
<string>...</string>
179+
</property>
180+
</widget>
181+
</item>
182+
</layout>
183+
</item>
170184
</layout>
171185
</widget>
172186
<tabstops>

0 commit comments

Comments
 (0)