QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCFileWatcher Class Reference

#include <QGCFileWatcher.h>

+ Inheritance diagram for QGCFileWatcher:
+ Collaboration diagram for QGCFileWatcher:

Public Types

using ChangeCallback = std::function< void(const QString &path)>
 

Signals

void fileChanged (const QString &path)
 
void directoryChanged (const QString &path)
 

Public Member Functions

 QGCFileWatcher (QObject *parent=nullptr)
 
 ~QGCFileWatcher () override
 
void setDebounceDelay (int milliseconds)
 
int debounceDelay () const
 
bool watchFile (const QString &filePath, ChangeCallback callback)
 
bool unwatchFile (const QString &filePath)
 
bool isWatchingFile (const QString &filePath) const
 
QStringList watchedFiles () const
 
bool watchDirectory (const QString &directoryPath, ChangeCallback callback)
 
bool unwatchDirectory (const QString &directoryPath)
 
bool isWatchingDirectory (const QString &directoryPath) const
 
QStringList watchedDirectories () const
 
int watchFiles (const QStringList &filePaths, ChangeCallback callback)
 
int watchDirectories (const QStringList &directoryPaths, ChangeCallback callback)
 
void clear ()
 Stop watching all files and directories.
 
bool watchFilePersistent (const QString &filePath, ChangeCallback callback)
 

Detailed Description

Callback-based file/directory watcher with debouncing support Provides a simpler API than QFileSystemWatcher for common use cases

Example usage:

watcher.watchFile("/path/to/config.json", [](const QString &path) {
qDebug() << "Config changed:" << path;
});
bool watchFile(const QString &filePath, ChangeCallback callback)

Definition at line 24 of file QGCFileWatcher.h.

Member Typedef Documentation

◆ ChangeCallback

using QGCFileWatcher::ChangeCallback = std::function<void(const QString &path)>

Callback for file/directory changes

Parameters
pathPath to the changed file or directory

Definition at line 31 of file QGCFileWatcher.h.

Constructor & Destructor Documentation

◆ QGCFileWatcher()

QGCFileWatcher::QGCFileWatcher ( QObject *  parent = nullptr)
explicit

Construct a file watcher

Parameters
parentQObject parent

Definition at line 13 of file QGCFileWatcher.cc.

◆ ~QGCFileWatcher()

QGCFileWatcher::~QGCFileWatcher ( )
override

Definition at line 28 of file QGCFileWatcher.cc.

References clear().

Member Function Documentation

◆ clear()

void QGCFileWatcher::clear ( )

Stop watching all files and directories.

Definition at line 197 of file QGCFileWatcher.cc.

Referenced by ~QGCFileWatcher().

◆ debounceDelay()

int QGCFileWatcher::debounceDelay ( ) const
inline

Get current debounce delay

Returns
Debounce delay in milliseconds

Definition at line 46 of file QGCFileWatcher.h.

◆ directoryChanged

void QGCFileWatcher::directoryChanged ( const QString &  path)
signal

Emitted when a watched directory changes

Parameters
pathPath to the changed directory

◆ fileChanged

void QGCFileWatcher::fileChanged ( const QString &  path)
signal

Emitted when a watched file changes

Parameters
pathPath to the changed file

◆ isWatchingDirectory()

bool QGCFileWatcher::isWatchingDirectory ( const QString &  directoryPath) const

Check if a directory is being watched

Parameters
directoryPathPath to check
Returns
true if directory is being watched

Definition at line 160 of file QGCFileWatcher.cc.

◆ isWatchingFile()

bool QGCFileWatcher::isWatchingFile ( const QString &  filePath) const

Check if a file is being watched

Parameters
filePathPath to check
Returns
true if file is being watched

Definition at line 96 of file QGCFileWatcher.cc.

◆ setDebounceDelay()

void QGCFileWatcher::setDebounceDelay ( int  milliseconds)

Set debounce delay for change notifications Multiple rapid changes are coalesced into a single callback

Parameters
millisecondsDebounce delay (default 100ms, 0 = no debounce)

Definition at line 37 of file QGCFileWatcher.cc.

◆ unwatchDirectory()

bool QGCFileWatcher::unwatchDirectory ( const QString &  directoryPath)

Stop watching a specific directory

Parameters
directoryPathPath to directory to stop watching
Returns
true if directory was being watched

Definition at line 145 of file QGCFileWatcher.cc.

◆ unwatchFile()

bool QGCFileWatcher::unwatchFile ( const QString &  filePath)

Stop watching a specific file

Parameters
filePathPath to file to stop watching
Returns
true if file was being watched

Definition at line 80 of file QGCFileWatcher.cc.

◆ watchDirectories()

int QGCFileWatcher::watchDirectories ( const QStringList &  directoryPaths,
ChangeCallback  callback 
)

Watch multiple directories

Parameters
directoryPathsList of directory paths to watch
callbackFunction to call when any directory changes
Returns
Number of directories successfully added

Definition at line 186 of file QGCFileWatcher.cc.

References watchDirectory().

◆ watchDirectory()

bool QGCFileWatcher::watchDirectory ( const QString &  directoryPath,
ChangeCallback  callback 
)

Watch a directory for changes

Parameters
directoryPathPath to directory to watch
callbackFunction to call when directory changes
Returns
true if directory was added to watch list

Definition at line 111 of file QGCFileWatcher.cc.

Referenced by watchDirectories().

◆ watchedDirectories()

QStringList QGCFileWatcher::watchedDirectories ( ) const

Get list of watched directories

Returns
List of directory paths being watched

Definition at line 166 of file QGCFileWatcher.cc.

◆ watchedFiles()

QStringList QGCFileWatcher::watchedFiles ( ) const

Get list of watched files

Returns
List of file paths being watched

Definition at line 102 of file QGCFileWatcher.cc.

◆ watchFile()

bool QGCFileWatcher::watchFile ( const QString &  filePath,
ChangeCallback  callback 
)

Watch a file for changes

Parameters
filePathPath to file to watch
callbackFunction to call when file changes
Returns
true if file was added to watch list

Definition at line 46 of file QGCFileWatcher.cc.

Referenced by watchFilePersistent(), and watchFiles().

◆ watchFilePersistent()

bool QGCFileWatcher::watchFilePersistent ( const QString &  filePath,
ChangeCallback  callback 
)

Watch a file and automatically re-watch if it's recreated Useful for config files that may be replaced atomically

Parameters
filePathPath to file to watch
callbackFunction to call when file changes
Returns
true if file was added to watch list

Definition at line 223 of file QGCFileWatcher.cc.

References watchFile().

◆ watchFiles()

int QGCFileWatcher::watchFiles ( const QStringList &  filePaths,
ChangeCallback  callback 
)

Watch multiple files

Parameters
filePathsList of file paths to watch
callbackFunction to call when any file changes
Returns
Number of files successfully added

Definition at line 175 of file QGCFileWatcher.cc.

References watchFile().


The documentation for this class was generated from the following files: