@@ -62,6 +62,11 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
62
62
}
63
63
64
64
// Advanced config layer tree view
65
+ mAdvancedConfigWidget = new QWidget ( this );
66
+ QVBoxLayout *advancedLayout = new QVBoxLayout ();
67
+ if ( mDisplayMode == Widget )
68
+ advancedLayout->setContentsMargins ( 0 , 0 , 0 , 0 );
69
+ // tree view
65
70
mLayerTreeView = new QTreeView ();
66
71
QgsSnappingLayerTreeModel *model = new QgsSnappingLayerTreeModel ( mProject , this );
67
72
model->setLayerTreeModel ( new QgsLayerTreeModel ( mProject ->layerTreeRoot (), model ) );
@@ -82,6 +87,19 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
82
87
mLayerTreeView ->setSizePolicy ( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding );
83
88
mLayerTreeView ->setMinimumWidth ( 500 );
84
89
mLayerTreeView ->resizeColumnToContents ( 0 );
90
+ // filter line edit
91
+ QHBoxLayout *filterLayout = new QHBoxLayout ();
92
+ filterLayout->setContentsMargins ( 0 , 0 , 0 , 0 );
93
+ filterLayout->addStretch ();
94
+ QgsFilterLineEdit *filterLineEdit = new QgsFilterLineEdit ();
95
+ filterLineEdit->setShowClearButton ( true );
96
+ filterLineEdit->setShowSearchIcon ( true );
97
+ connect ( filterLineEdit, &QgsFilterLineEdit::textChanged, model, &QgsSnappingLayerTreeModel::setFilterText );
98
+ filterLayout->addStretch ();
99
+ filterLayout->addWidget ( filterLineEdit );
100
+ advancedLayout->addLayout ( filterLayout );
101
+ advancedLayout->addWidget ( mLayerTreeView );
102
+ mAdvancedConfigWidget ->setLayout ( advancedLayout );
85
103
86
104
// enable button
87
105
mEnabledAction = new QAction ( tr ( " Toggle Snapping" ), this );
@@ -206,7 +224,7 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
206
224
advConfigButton->setPopupMode ( QToolButton::InstantPopup );
207
225
QMenu *advConfigMenu = new QMenu ( this );
208
226
QWidgetAction *advConfigWidgetAction = new QWidgetAction ( advConfigMenu );
209
- advConfigWidgetAction->setDefaultWidget ( mLayerTreeView );
227
+ advConfigWidgetAction->setDefaultWidget ( mAdvancedConfigWidget );
210
228
advConfigMenu->addAction ( advConfigWidgetAction );
211
229
advConfigButton->setIcon ( QIcon ( QgsApplication::getThemeIcon ( " /mActionShowAllLayers.svg" ) ) );
212
230
advConfigButton->setToolTip ( tr ( " Edit advanced configuration" ) );
@@ -255,7 +273,7 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
255
273
256
274
QGridLayout *topLayout = new QGridLayout ();
257
275
topLayout->addLayout ( layout, 0 , 0 , Qt::AlignLeft | Qt::AlignTop );
258
- topLayout->addWidget ( mLayerTreeView , 1 , 0 );
276
+ topLayout->addWidget ( mAdvancedConfigWidget , 1 , 0 );
259
277
setLayout ( topLayout );
260
278
}
261
279
@@ -333,7 +351,7 @@ void QgsSnappingWidget::projectSnapSettingsChanged()
333
351
mToleranceSpinBox ->setValue ( config.tolerance () );
334
352
}
335
353
336
- if ( ( QgsTolerance::UnitType ) mUnitsComboBox ->currentData ().toInt () != config.units () )
354
+ if ( static_cast < QgsTolerance::UnitType>( mUnitsComboBox ->currentData ().toInt () ) != config.units () )
337
355
{
338
356
mUnitsComboBox ->setCurrentIndex ( mUnitsComboBox ->findData ( config.units () ) );
339
357
}
@@ -367,9 +385,9 @@ void QgsSnappingWidget::toggleSnappingWidgets( bool enabled )
367
385
mTypeButton ->setEnabled ( enabled );
368
386
mToleranceSpinBox ->setEnabled ( enabled );
369
387
mUnitsComboBox ->setEnabled ( enabled );
370
- if ( mLayerTreeView )
388
+ if ( mAdvancedConfigWidget )
371
389
{
372
- mLayerTreeView ->setEnabled ( enabled );
390
+ mAdvancedConfigWidget ->setEnabled ( enabled );
373
391
}
374
392
mIntersectionSnappingAction ->setEnabled ( enabled );
375
393
mEnableTracingAction ->setEnabled ( enabled );
@@ -383,7 +401,7 @@ void QgsSnappingWidget::changeTolerance( double tolerance )
383
401
384
402
void QgsSnappingWidget::changeUnit ( int idx )
385
403
{
386
- QgsTolerance::UnitType unit = ( QgsTolerance::UnitType ) mUnitsComboBox ->itemData ( idx ).toInt ();
404
+ QgsTolerance::UnitType unit = static_cast < QgsTolerance::UnitType>( mUnitsComboBox ->itemData ( idx ).toInt () );
387
405
mConfig .setUnits ( unit );
388
406
mProject ->setSnappingConfig ( mConfig );
389
407
@@ -495,9 +513,9 @@ void QgsSnappingWidget::modeChanged()
495
513
mTypeButton ->setVisible ( !advanced );
496
514
mToleranceSpinBox ->setVisible ( !advanced );
497
515
mUnitsComboBox ->setVisible ( !advanced );
498
- if ( mDisplayMode == Widget && mLayerTreeView )
516
+ if ( mDisplayMode == Widget && mAdvancedConfigWidget )
499
517
{
500
- mLayerTreeView ->setVisible ( advanced );
518
+ mAdvancedConfigWidget ->setVisible ( advanced );
501
519
}
502
520
}
503
521
}
0 commit comments