34
34
#include " qgsapplication.h"
35
35
36
36
#include " qgslogger.h"
37
+ #include " qgssizescalewidget.h"
37
38
38
39
#include < QAbstractButton>
39
40
#include < QColorDialog>
@@ -334,6 +335,11 @@ QgsSimpleMarkerSymbolLayerV2Widget::QgsSimpleMarkerSymbolLayerV2Widget( const Qg
334
335
spinOffsetX->setClearValue ( 0.0 );
335
336
spinOffsetY->setClearValue ( 0.0 );
336
337
338
+ // make a temporary symbol for the size assistant preview
339
+ mAssistantPreviewSymbol = new QgsMarkerSymbolV2 ();
340
+
341
+ mSizeDDBtn ->setAssistant ( new QgsSizeScaleWidget ( mVectorLayer , mAssistantPreviewSymbol ) );
342
+
337
343
QSize size = lstNames->iconSize ();
338
344
QStringList names;
339
345
names << " circle" << " rectangle" << " diamond" << " pentagon" << " cross" << " cross2" << " triangle"
@@ -355,6 +361,12 @@ QgsSimpleMarkerSymbolLayerV2Widget::QgsSimpleMarkerSymbolLayerV2Widget( const Qg
355
361
connect ( spinAngle, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setAngle () ) );
356
362
connect ( spinOffsetX, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setOffset () ) );
357
363
connect ( spinOffsetY, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setOffset () ) );
364
+ connect ( this , SIGNAL ( changed () ), this , SLOT ( updateAssistantSymbol () ) );
365
+ }
366
+
367
+ QgsSimpleMarkerSymbolLayerV2Widget::~QgsSimpleMarkerSymbolLayerV2Widget ()
368
+ {
369
+ delete mAssistantPreviewSymbol ;
358
370
}
359
371
360
372
void QgsSimpleMarkerSymbolLayerV2Widget::setSymbolLayer ( QgsSymbolLayerV2* layer )
@@ -437,6 +449,8 @@ void QgsSimpleMarkerSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer
437
449
registerDataDefinedButton ( mOffsetDDBtn , " offset" , QgsDataDefinedButton::String, QgsDataDefinedButton::doubleXYDesc () );
438
450
registerDataDefinedButton ( mHorizontalAnchorDDBtn , " horizontal_anchor_point" , QgsDataDefinedButton::String, QgsDataDefinedButton::horizontalAnchorDesc () );
439
451
registerDataDefinedButton ( mVerticalAnchorDDBtn , " vertical_anchor_point" , QgsDataDefinedButton::String, QgsDataDefinedButton::verticalAnchorDesc () );
452
+
453
+ updateAssistantSymbol ();
440
454
}
441
455
442
456
QgsSymbolLayerV2* QgsSimpleMarkerSymbolLayerV2Widget::symbolLayer ()
@@ -548,6 +562,18 @@ void QgsSimpleMarkerSymbolLayerV2Widget::on_mVerticalAnchorComboBox_currentIndex
548
562
}
549
563
}
550
564
565
+ void QgsSimpleMarkerSymbolLayerV2Widget::updateAssistantSymbol ()
566
+ {
567
+ for ( int i = mAssistantPreviewSymbol ->symbolLayerCount () - 1 ; i >= 0 ; --i )
568
+ {
569
+ mAssistantPreviewSymbol ->deleteSymbolLayer ( i );
570
+ }
571
+ mAssistantPreviewSymbol ->appendSymbolLayer ( mLayer ->clone () );
572
+ QgsDataDefined* ddSize = mLayer ->getDataDefinedProperty ( " size" );
573
+ if ( ddSize )
574
+ mAssistantPreviewSymbol ->setDataDefinedSize ( *ddSize );
575
+ }
576
+
551
577
552
578
// /////////
553
579
@@ -1508,6 +1534,16 @@ QgsSvgMarkerSymbolLayerV2Widget::QgsSvgMarkerSymbolLayerV2Widget( const QgsVecto
1508
1534
connect ( spinAngle, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setAngle () ) );
1509
1535
connect ( spinOffsetX, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setOffset () ) );
1510
1536
connect ( spinOffsetY, SIGNAL ( valueChanged ( double ) ), this , SLOT ( setOffset () ) );
1537
+ connect ( this , SIGNAL ( changed () ), this , SLOT ( updateAssistantSymbol () ) );
1538
+
1539
+ // make a temporary symbol for the size assistant preview
1540
+ mAssistantPreviewSymbol = new QgsMarkerSymbolV2 ();
1541
+ mSizeDDBtn ->setAssistant ( new QgsSizeScaleWidget ( mVectorLayer , mAssistantPreviewSymbol ) );
1542
+ }
1543
+
1544
+ QgsSvgMarkerSymbolLayerV2Widget::~QgsSvgMarkerSymbolLayerV2Widget ()
1545
+ {
1546
+ delete mAssistantPreviewSymbol ;
1511
1547
}
1512
1548
1513
1549
#include < QTime>
@@ -1698,6 +1734,18 @@ void QgsSvgMarkerSymbolLayerV2Widget::setGuiForSvg( const QgsSvgMarkerSymbolLaye
1698
1734
mBorderWidthSpinBox ->blockSignals ( false );
1699
1735
}
1700
1736
1737
+ void QgsSvgMarkerSymbolLayerV2Widget::updateAssistantSymbol ()
1738
+ {
1739
+ for ( int i = mAssistantPreviewSymbol ->symbolLayerCount () - 1 ; i >= 0 ; --i )
1740
+ {
1741
+ mAssistantPreviewSymbol ->deleteSymbolLayer ( i );
1742
+ }
1743
+ mAssistantPreviewSymbol ->appendSymbolLayer ( mLayer ->clone () );
1744
+ QgsDataDefined* ddSize = mLayer ->getDataDefinedProperty ( " size" );
1745
+ if ( ddSize )
1746
+ mAssistantPreviewSymbol ->setDataDefinedSize ( *ddSize );
1747
+ }
1748
+
1701
1749
1702
1750
void QgsSvgMarkerSymbolLayerV2Widget::setSymbolLayer ( QgsSymbolLayerV2* layer )
1703
1751
{
@@ -1775,6 +1823,8 @@ void QgsSvgMarkerSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer )
1775
1823
registerDataDefinedButton ( mBorderColorDDBtn , " outline" , QgsDataDefinedButton::String, QgsDataDefinedButton::colorNoAlphaDesc () );
1776
1824
registerDataDefinedButton ( mHorizontalAnchorDDBtn , " horizontal_anchor_point" , QgsDataDefinedButton::String, QgsDataDefinedButton::horizontalAnchorDesc () );
1777
1825
registerDataDefinedButton ( mVerticalAnchorDDBtn , " vertical_anchor_point" , QgsDataDefinedButton::String, QgsDataDefinedButton::verticalAnchorDesc () );
1826
+
1827
+ updateAssistantSymbol ();
1778
1828
}
1779
1829
1780
1830
QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2Widget::symbolLayer ()
@@ -2460,7 +2510,6 @@ QgsFontMarkerSymbolLayerV2Widget::QgsFontMarkerSymbolLayerV2Widget( const QgsVec
2460
2510
connect ( widgetChar, SIGNAL ( characterSelected ( const QChar & ) ), this , SLOT ( setCharacter ( const QChar & ) ) );
2461
2511
}
2462
2512
2463
-
2464
2513
void QgsFontMarkerSymbolLayerV2Widget::setSymbolLayer ( QgsSymbolLayerV2* layer )
2465
2514
{
2466
2515
if ( layer->layerType () != " FontMarker" )
@@ -2591,7 +2640,6 @@ void QgsFontMarkerSymbolLayerV2Widget::on_mVerticalAnchorComboBox_currentIndexCh
2591
2640
}
2592
2641
}
2593
2642
2594
-
2595
2643
// /////////////
2596
2644
2597
2645
0 commit comments