3131QgsDecorationGridDialog::QgsDecorationGridDialog ( QgsDecorationGrid &deco, QWidget *parent )
3232 : QDialog( parent )
3333 , mDeco( deco )
34- , mLineSymbol( nullptr )
35- , mMarkerSymbol( nullptr )
3634{
3735 setupUi ( this );
3836
@@ -65,6 +63,8 @@ QgsDecorationGridDialog::QgsDecorationGridDialog( QgsDecorationGrid &deco, QWidg
6563
6664 connect ( buttonBox->button ( QDialogButtonBox::Apply ), &QAbstractButton::clicked, this , &QgsDecorationGridDialog::apply );
6765 connect ( mAnnotationFontButton , &QgsFontButton::changed, this , &QgsDecorationGridDialog::annotationFontChanged );
66+
67+ mMarkerSymbolButton ->setMapCanvas ( QgisApp::instance ()->mapCanvas () );
6868}
6969
7070void QgsDecorationGridDialog::updateGuiElements ()
@@ -88,22 +88,8 @@ void QgsDecorationGridDialog::updateGuiElements()
8888 // mLineWidthSpinBox->setValue( gridPen.widthF() );
8989 // mLineColorButton->setColor( gridPen.color() );
9090
91- if ( mLineSymbol )
92- delete mLineSymbol ;
93- if ( mDeco .lineSymbol () )
94- {
95- mLineSymbol = static_cast <QgsLineSymbol *>( mDeco .lineSymbol ()->clone () );
96- QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon ( mLineSymbol , mLineSymbolButton ->iconSize () );
97- mLineSymbolButton ->setIcon ( icon );
98- }
99- if ( mMarkerSymbol )
100- delete mMarkerSymbol ;
101- if ( mDeco .markerSymbol () )
102- {
103- mMarkerSymbol = static_cast <QgsMarkerSymbol *>( mDeco .markerSymbol ()->clone () );
104- QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon ( mMarkerSymbol , mMarkerSymbolButton ->iconSize () );
105- mMarkerSymbolButton ->setIcon ( icon );
106- }
91+ mLineSymbolButton ->setSymbol ( mDeco .lineSymbol ()->clone () );
92+ mMarkerSymbolButton ->setSymbol ( mDeco .markerSymbol ()->clone () );
10793
10894 whileBlocking ( mAnnotationFontButton )->setCurrentFont ( mDeco .gridAnnotationFont () );
10995
@@ -157,26 +143,14 @@ void QgsDecorationGridDialog::updateDecoFromGui()
157143 mDeco .setGridAnnotationDirection ( QgsDecorationGrid::BoundaryDirection );
158144 }
159145 mDeco .setGridAnnotationPrecision ( mCoordinatePrecisionSpinBox ->value () );
160- if ( mLineSymbol )
161- {
162- mDeco .setLineSymbol ( mLineSymbol );
163- mLineSymbol = mDeco .lineSymbol ()->clone ();
164- }
165- if ( mMarkerSymbol )
166- {
167- mDeco .setMarkerSymbol ( mMarkerSymbol );
168- mMarkerSymbol = mDeco .markerSymbol ()->clone ();
169- }
146+ mDeco .setLineSymbol ( mLineSymbolButton ->clonedSymbol < QgsLineSymbol >() );
147+ mDeco .setMarkerSymbol ( mMarkerSymbolButton ->clonedSymbol < QgsMarkerSymbol >() );
170148}
171149
172150QgsDecorationGridDialog::~QgsDecorationGridDialog ()
173151{
174152 QgsSettings settings;
175153 settings.setValue ( QStringLiteral ( " /Windows/DecorationGrid/geometry" ), saveGeometry () );
176- if ( mLineSymbol )
177- delete mLineSymbol ;
178- if ( mMarkerSymbol )
179- delete mMarkerSymbol ;
180154}
181155
182156void QgsDecorationGridDialog::on_buttonBox_helpRequested ()
@@ -210,53 +184,6 @@ void QgsDecorationGridDialog::on_mGridTypeComboBox_currentIndexChanged( int inde
210184 mMarkerSymbolButton ->setEnabled ( index == QgsDecorationGrid::Marker );
211185}
212186
213-
214- void QgsDecorationGridDialog::on_mLineSymbolButton_clicked ()
215- {
216- if ( ! mLineSymbol )
217- return ;
218-
219- QgsLineSymbol *lineSymbol = mLineSymbol ->clone ();
220- QgsSymbolSelectorDialog dlg ( lineSymbol, QgsStyle::defaultStyle (), nullptr , this );
221- if ( dlg.exec () == QDialog::Rejected )
222- {
223- delete lineSymbol;
224- }
225- else
226- {
227- delete mLineSymbol ;
228- mLineSymbol = lineSymbol;
229- if ( mLineSymbol )
230- {
231- QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon ( mLineSymbol , mLineSymbolButton ->iconSize () );
232- mLineSymbolButton ->setIcon ( icon );
233- }
234- }
235- }
236-
237- void QgsDecorationGridDialog::on_mMarkerSymbolButton_clicked ()
238- {
239- if ( ! mMarkerSymbol )
240- return ;
241-
242- QgsMarkerSymbol *markerSymbol = mMarkerSymbol ->clone ();
243- QgsSymbolSelectorDialog dlg ( markerSymbol, QgsStyle::defaultStyle (), nullptr , this );
244- if ( dlg.exec () == QDialog::Rejected )
245- {
246- delete markerSymbol;
247- }
248- else
249- {
250- delete mMarkerSymbol ;
251- mMarkerSymbol = markerSymbol;
252- if ( mMarkerSymbol )
253- {
254- QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon ( mMarkerSymbol , mMarkerSymbolButton ->iconSize () );
255- mMarkerSymbolButton ->setIcon ( icon );
256- }
257- }
258- }
259-
260187void QgsDecorationGridDialog::on_mPbtnUpdateFromExtents_clicked ()
261188{
262189 updateInterval ( true );
0 commit comments