@@ -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,20 @@ 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
+ filterLineEdit->setPlaceholderText ( tr ( " Filter layers…" ) );
98
+ connect ( filterLineEdit, &QgsFilterLineEdit::textChanged, model, &QgsSnappingLayerTreeModel::setFilterText );
99
+ filterLayout->addStretch ();
100
+ filterLayout->addWidget ( filterLineEdit );
101
+ advancedLayout->addWidget ( mLayerTreeView );
102
+ advancedLayout->addLayout ( filterLayout );
103
+ mAdvancedConfigWidget ->setLayout ( advancedLayout );
85
104
86
105
// enable button
87
106
mEnabledAction = new QAction ( tr ( " Toggle Snapping" ), this );
@@ -206,7 +225,7 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
206
225
advConfigButton->setPopupMode ( QToolButton::InstantPopup );
207
226
QMenu *advConfigMenu = new QMenu ( this );
208
227
QWidgetAction *advConfigWidgetAction = new QWidgetAction ( advConfigMenu );
209
- advConfigWidgetAction->setDefaultWidget ( mLayerTreeView );
228
+ advConfigWidgetAction->setDefaultWidget ( mAdvancedConfigWidget );
210
229
advConfigMenu->addAction ( advConfigWidgetAction );
211
230
advConfigButton->setIcon ( QIcon ( QgsApplication::getThemeIcon ( " /mActionShowAllLayers.svg" ) ) );
212
231
advConfigButton->setToolTip ( tr ( " Edit advanced configuration" ) );
@@ -255,7 +274,7 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas,
255
274
256
275
QGridLayout *topLayout = new QGridLayout ();
257
276
topLayout->addLayout ( layout, 0 , 0 , Qt::AlignLeft | Qt::AlignTop );
258
- topLayout->addWidget ( mLayerTreeView , 1 , 0 );
277
+ topLayout->addWidget ( mAdvancedConfigWidget , 1 , 0 );
259
278
setLayout ( topLayout );
260
279
}
261
280
@@ -333,7 +352,7 @@ void QgsSnappingWidget::projectSnapSettingsChanged()
333
352
mToleranceSpinBox ->setValue ( config.tolerance () );
334
353
}
335
354
336
- if ( ( QgsTolerance::UnitType ) mUnitsComboBox ->currentData ().toInt () != config.units () )
355
+ if ( static_cast < QgsTolerance::UnitType>( mUnitsComboBox ->currentData ().toInt () ) != config.units () )
337
356
{
338
357
mUnitsComboBox ->setCurrentIndex ( mUnitsComboBox ->findData ( config.units () ) );
339
358
}
@@ -367,9 +386,9 @@ void QgsSnappingWidget::toggleSnappingWidgets( bool enabled )
367
386
mTypeButton ->setEnabled ( enabled );
368
387
mToleranceSpinBox ->setEnabled ( enabled );
369
388
mUnitsComboBox ->setEnabled ( enabled );
370
- if ( mLayerTreeView )
389
+ if ( mAdvancedConfigWidget )
371
390
{
372
- mLayerTreeView ->setEnabled ( enabled );
391
+ mAdvancedConfigWidget ->setEnabled ( enabled );
373
392
}
374
393
mIntersectionSnappingAction ->setEnabled ( enabled );
375
394
mEnableTracingAction ->setEnabled ( enabled );
@@ -383,7 +402,7 @@ void QgsSnappingWidget::changeTolerance( double tolerance )
383
402
384
403
void QgsSnappingWidget::changeUnit ( int idx )
385
404
{
386
- QgsTolerance::UnitType unit = ( QgsTolerance::UnitType ) mUnitsComboBox ->itemData ( idx ).toInt ();
405
+ QgsTolerance::UnitType unit = static_cast < QgsTolerance::UnitType>( mUnitsComboBox ->itemData ( idx ).toInt () );
387
406
mConfig .setUnits ( unit );
388
407
mProject ->setSnappingConfig ( mConfig );
389
408
@@ -495,9 +514,9 @@ void QgsSnappingWidget::modeChanged()
495
514
mTypeButton ->setVisible ( !advanced );
496
515
mToleranceSpinBox ->setVisible ( !advanced );
497
516
mUnitsComboBox ->setVisible ( !advanced );
498
- if ( mDisplayMode == Widget && mLayerTreeView )
517
+ if ( mDisplayMode == Widget && mAdvancedConfigWidget )
499
518
{
500
- mLayerTreeView ->setVisible ( advanced );
519
+ mAdvancedConfigWidget ->setVisible ( advanced );
501
520
}
502
521
}
503
522
}
0 commit comments