55 changes: 48 additions & 7 deletions src/gui/symbology-ng/qgssymbollayerv2widget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -683,12 +683,16 @@ void QgsSvgMarkerSymbolLayerV2Widget::setGuiForSvg( const QgsSvgMarkerSymbolLaye
mBorderWidthSpinBox->blockSignals( true );
mBorderWidthSpinBox->setValue( layer->outlineWidth() );
mBorderWidthSpinBox->blockSignals( false );

}


void QgsSvgMarkerSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer )
{
if ( !layer )
{
return;
}

if ( layer->layerType() != "SvgMarker" )
return;

Expand All @@ -711,8 +715,6 @@ void QgsSvgMarkerSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer )
}
}



spinSize->setValue( mLayer->size() );
spinAngle->setValue( mLayer->angle() );

Expand All @@ -725,7 +727,6 @@ void QgsSvgMarkerSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer )
spinOffsetY->blockSignals( false );

setGuiForSvg( mLayer );

}

QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2Widget::symbolLayer()
Expand Down Expand Up @@ -790,6 +791,21 @@ void QgsSvgMarkerSymbolLayerV2Widget::on_mFileLineEdit_textEdited( const QString
emit changed();
}

void QgsSvgMarkerSymbolLayerV2Widget::on_mFileLineEdit_editingFinished()
{
if ( !QFileInfo( mFileLineEdit->text() ).exists() )
{
QUrl url( mFileLineEdit->text() );
if ( !url.isValid() )
{
return;
}
}
mLayer->setPath( mFileLineEdit->text() );
setGuiForSvg( mLayer );
emit changed();
}

void QgsSvgMarkerSymbolLayerV2Widget::on_mChangeColorButton_clicked()
{
if ( !mLayer )
Expand Down Expand Up @@ -945,7 +961,7 @@ void QgsSVGFillSymbolLayerWidget::on_mTextureWidthSpinBox_valueChanged( double d
}
}

void QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_textChanged( const QString & text )
void QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_textEdited( const QString & text )
{
if ( !mLayer )
{
Expand All @@ -958,14 +974,39 @@ void QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_textChanged( const QString & t
return;
}
mLayer->setSvgFilePath( text );
updateParamGui();
emit changed();
}

void QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_editingFinished()
{
if ( !mLayer )
{
return;
}

QFileInfo fi( mSVGLineEdit->text() );
if ( !fi.exists() )
{
QUrl url( mSVGLineEdit->text() );
if ( !url.isValid() )
{
return;
}
}
mLayer->setSvgFilePath( mSVGLineEdit->text() );
updateParamGui();
emit changed();
}

void QgsSVGFillSymbolLayerWidget::setFile( const QModelIndex& item )
{
mSVGLineEdit->setText( item.data( Qt::UserRole ).toString() );
QString file = item.data( Qt::UserRole ).toString();
mLayer->setSvgFilePath( file );
mSVGLineEdit->setText( file );

updateParamGui();
emit changed();
}

void QgsSVGFillSymbolLayerWidget::insertIcons()
Expand Down Expand Up @@ -1000,8 +1041,8 @@ void QgsSVGFillSymbolLayerWidget::on_mRotationSpinBox_valueChanged( double d )
if ( mLayer )
{
mLayer->setAngle( d );
emit changed();
}
emit changed();
}

void QgsSVGFillSymbolLayerWidget::updateParamGui()
Expand Down
4 changes: 3 additions & 1 deletion src/gui/symbology-ng/qgssymbollayerv2widget.h
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ class GUI_EXPORT QgsSvgMarkerSymbolLayerV2Widget : public QgsSymbolLayerV2Widget
void setOffset();
void on_mFileToolButton_clicked();
void on_mFileLineEdit_textEdited( const QString& text );
void on_mFileLineEdit_editingFinished();
void on_mChangeColorButton_clicked();
void on_mChangeBorderColorButton_clicked();
void on_mBorderWidthSpinBox_valueChanged( double d );
Expand Down Expand Up @@ -266,7 +267,8 @@ class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerV2Widget, pr
private slots:
void on_mBrowseToolButton_clicked();
void on_mTextureWidthSpinBox_valueChanged( double d );
void on_mSVGLineEdit_textChanged( const QString & text );
void on_mSVGLineEdit_textEdited( const QString & text );
void on_mSVGLineEdit_editingFinished();
void setFile( const QModelIndex& item );
void populateIcons( const QModelIndex& item );
void on_mRotationSpinBox_valueChanged( double d );
Expand Down