@@ -263,16 +263,29 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
263
263
menu->addAction ( actionClearIconColor );
264
264
}
265
265
266
- QAction *fastScanAction = new QAction ( tr ( " Fast Scan this Directory" ), menu );
266
+ QMenu *scanningMenu = new QMenu ( tr ( " Scanning" ), menu );
267
+
268
+ QAction *monitorAction = new QAction ( tr ( " Monitor for Changes" ), scanningMenu );
269
+ connect ( monitorAction, &QAction::triggered, this , [ = ]
270
+ {
271
+ toggleMonitor ( directoryItem );
272
+ } );
273
+ monitorAction->setCheckable ( true );
274
+ monitorAction->setChecked ( directoryItem->isMonitored () );
275
+ scanningMenu->addAction ( monitorAction );
276
+
277
+ QAction *fastScanAction = new QAction ( tr ( " Fast Scan this Directory" ), scanningMenu );
267
278
connect ( fastScanAction, &QAction::triggered, this , [ = ]
268
279
{
269
280
toggleFastScan ( directoryItem );
270
281
} );
271
- menu->addAction ( fastScanAction );
272
282
fastScanAction->setCheckable ( true );
273
283
fastScanAction->setChecked ( settings.value ( QStringLiteral ( " qgis/scanItemsFastScanUris" ),
274
284
QStringList () ).toStringList ().contains ( item->path () ) );
275
285
286
+ scanningMenu->addAction ( fastScanAction );
287
+ menu->addMenu ( scanningMenu );
288
+
276
289
menu->addSeparator ();
277
290
278
291
QAction *openFolder = new QAction ( QgsApplication::getThemeIcon ( QStringLiteral ( " mIconFolder.svg" ) ), tr ( " Open Directory…" ), menu );
@@ -382,6 +395,14 @@ void QgsAppDirectoryItemGuiProvider::toggleFastScan( QgsDirectoryItem *item )
382
395
settings.setValue ( QStringLiteral ( " qgis/scanItemsFastScanUris" ), fastScanDirs );
383
396
}
384
397
398
+ void QgsAppDirectoryItemGuiProvider::toggleMonitor ( QgsDirectoryItem *item )
399
+ {
400
+ if ( item->isMonitored () )
401
+ item->setMonitoring ( Qgis::BrowserDirectoryMonitoring::NeverMonitor );
402
+ else
403
+ item->setMonitoring ( Qgis::BrowserDirectoryMonitoring::AlwaysMonitor );
404
+ }
405
+
385
406
void QgsAppDirectoryItemGuiProvider::showProperties ( QgsDirectoryItem *item, QgsDataItemGuiContext context )
386
407
{
387
408
if ( ! item )
0 commit comments