Qt 4.8
Signals | Public Functions | List of all members
QFileSystemWatcher Class Reference

The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications. More...

#include <qfilesystemwatcher.h>

Inheritance diagram for QFileSystemWatcher:
QObject

Signals

void directoryChanged (const QString &path)
 This signal is emitted when the directory at a specified path, is modified (e. More...
 
void fileChanged (const QString &path)
 This signal is emitted when the file at the specified path is modified, renamed or removed from disk. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

void addPath (const QString &file)
 Adds path to the file system watcher if path exists. More...
 
void addPaths (const QStringList &files)
 Adds each path in paths to the file system watcher. More...
 
QStringList directories () const
 Returns a list of paths to directories that are being watched. More...
 
QStringList files () const
 Returns a list of paths to files that are being watched. More...
 
 QFileSystemWatcher (QObject *parent=0)
 Constructs a new file system watcher object with the given parent. More...
 
 QFileSystemWatcher (const QStringList &paths, QObject *parent=0)
 Constructs a new file system watcher object with the given parent which monitors the specified paths list. More...
 
void removePath (const QString &file)
 Removes the specified path from the file system watcher. More...
 
void removePaths (const QStringList &files)
 Removes the specified paths from the file system watcher. More...
 
 ~QFileSystemWatcher ()
 Destroys the file system watcher. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications.

Since
4.2
Note
This class or function is reentrant.

QFileSystemWatcher monitors the file system for changes to files and directories by watching a list of specified paths.

Call addPath() to watch a particular file or directory. Multiple paths can be added using the addPaths() function. Existing paths can be removed by using the removePath() and removePaths() functions.

QFileSystemWatcher examines each path added to it. Files that have been added to the QFileSystemWatcher can be accessed using the files() function, and directories using the directories() function.

The fileChanged() signal is emitted when a file has been modified, renamed or removed from disk. Similarly, the directoryChanged() signal is emitted when a directory or its contents is modified or removed. Note that QFileSystemWatcher stops monitoring files once they have been renamed or removed from disk, and directories once they have been removed from disk.

Note
On systems running a Linux kernel without inotify support, file systems that contain watched paths cannot be unmounted.
Windows CE does not support directory monitoring by default as this depends on the file system driver installed.
The act of monitoring files and directories for modifications consumes system resources. This implies there is a limit to the number of files and directories your process can monitor simultaneously. On Mac OS X 10.4 and all BSD variants, for example, an open file descriptor is required for each monitored file. Some system limits the number of open file descriptors to 256 by default. This means that addPath() and addPaths() will fail if your process tries to add more than 256 files or directories to the file system monitor. Also note that your process may have other file descriptors open in addition to the ones for files being monitored, and these other open descriptors also count in the total. Mac OS X 10.5 and up use a different backend and do not suffer from this issue.
See also
QFile, QDir

Definition at line 57 of file qfilesystemwatcher.h.

Constructors and Destructors

◆ QFileSystemWatcher() [1/2]

QFileSystemWatcher::QFileSystemWatcher ( QObject parent = 0)

Constructs a new file system watcher object with the given parent.

Definition at line 423 of file qfilesystemwatcher.cpp.

424  : QObject(*new QFileSystemWatcherPrivate, parent)
425 {
426  d_func()->init();
427 }
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753

◆ QFileSystemWatcher() [2/2]

QFileSystemWatcher::QFileSystemWatcher ( const QStringList paths,
QObject parent = 0 
)

Constructs a new file system watcher object with the given parent which monitors the specified paths list.

Definition at line 433 of file qfilesystemwatcher.cpp.

434  : QObject(*new QFileSystemWatcherPrivate, parent)
435 {
436  d_func()->init();
437  addPaths(paths);
438 }
void addPaths(const QStringList &files)
Adds each path in paths to the file system watcher.
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753

◆ ~QFileSystemWatcher()

QFileSystemWatcher::~QFileSystemWatcher ( )

Destroys the file system watcher.

Definition at line 443 of file qfilesystemwatcher.cpp.

444 {
446  if (d->native) {
447  d->native->stop();
448  d->native->wait();
449  delete d->native;
450  d->native = 0;
451  }
452  if (d->poller) {
453  d->poller->stop();
454  d->poller->wait();
455  delete d->poller;
456  d->poller = 0;
457  }
458  if (d->forced) {
459  d->forced->stop();
460  d->forced->wait();
461  delete d->forced;
462  d->forced = 0;
463  }
464 }
double d
Definition: qnumeric_p.h:62
The QFileSystemWatcher class provides an interface for monitoring files and directories for modificat...
#define Q_D(Class)
Definition: qglobal.h:2482

Functions

◆ addPath()

void QFileSystemWatcher::addPath ( const QString path)

Adds path to the file system watcher if path exists.

The path is not added if it does not exist, or if it is already being monitored by the file system watcher.

If path specifies a directory, the directoryChanged() signal will be emitted when path is modified or removed from disk; otherwise the fileChanged() signal is emitted when path is modified, renamed or removed.

Note
There is a system dependent limit to the number of files and directories that can be monitored simultaneously. If this limit has been reached, path will not be added to the file system watcher, and a warning message will be printed to stderr.
See also
addPaths(), removePath()

Definition at line 483 of file qfilesystemwatcher.cpp.

Referenced by QFileInfoGatherer::getFileInfos().

484 {
485  if (path.isEmpty()) {
486  qWarning("QFileSystemWatcher::addPath: path is empty");
487  return;
488  }
489  addPaths(QStringList(path));
490 }
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
Q_CORE_EXPORT void qWarning(const char *,...)
void addPaths(const QStringList &files)
Adds each path in paths to the file system watcher.

◆ addPaths()

void QFileSystemWatcher::addPaths ( const QStringList paths)

Adds each path in paths to the file system watcher.

Paths are not added if they not exist, or if they are already being monitored by the file system watcher.

If a path specifies a directory, the directoryChanged() signal will be emitted when the path is modified or removed from disk; otherwise the fileChanged() signal is emitted when the path is modified, renamed, or removed.

Note
There is a system dependent limit to the number of files and directories that can be monitored simultaneously. If this limit has been reached, the excess paths will not be added to the file system watcher, and a warning message will be printed to stderr for each path that could not be added.
See also
addPath(), removePaths()

Definition at line 510 of file qfilesystemwatcher.cpp.

Referenced by addPath(), and QFileSystemWatcher().

511 {
513  if (paths.isEmpty()) {
514  qWarning("QFileSystemWatcher::addPaths: list is empty");
515  return;
516  }
517 
518  QStringList p = paths;
519  QFileSystemWatcherEngine *engine = 0;
520 
521  if(!objectName().startsWith(QLatin1String("_qt_autotest_force_engine_"))) {
522  // Normal runtime case - search intelligently for best engine
523  if(d->native) {
524  engine = d->native;
525  } else {
526  d_func()->initPollerEngine();
527  engine = d->poller;
528  }
529 
530  } else {
531  // Autotest override case - use the explicitly selected engine only
532  QString forceName = objectName().mid(26);
533  if(forceName == QLatin1String("poller")) {
534  qDebug() << "QFileSystemWatcher: skipping native engine, using only polling engine";
535  d_func()->initPollerEngine();
536  engine = d->poller;
537  } else if(forceName == QLatin1String("native")) {
538  qDebug() << "QFileSystemWatcher: skipping polling engine, using only native engine";
539  engine = d->native;
540  } else {
541  qDebug() << "QFileSystemWatcher: skipping polling and native engine, using only explicit" << forceName << "engine";
542  d_func()->initForcedEngine(forceName);
543  engine = d->forced;
544  }
545  }
546 
547  if(engine)
548  p = engine->addPaths(p, &d->files, &d->directories);
549 
550  if (!p.isEmpty())
551  qWarning("QFileSystemWatcher: failed to add paths: %s",
552  qPrintable(p.join(QLatin1String(", "))));
553 }
double d
Definition: qnumeric_p.h:62
The QFileSystemWatcher class provides an interface for monitoring files and directories for modificat...
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_D(Class)
Definition: qglobal.h:2482
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
Q_CORE_EXPORT void qDebug(const char *,...)
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
Q_CORE_EXPORT void qWarning(const char *,...)
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal...
Definition: qstring.h:654
QString join(const QString &sep) const
Joins all the string list&#39;s strings into a single string with each element separated by the given sep...
Definition: qstringlist.h:162
QString mid(int position, int n=-1) const Q_REQUIRED_RESULT
Returns a string that contains n characters of this string, starting at the specified position index...
Definition: qstring.cpp:3706
QString objectName() const
virtual QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories)=0
#define qPrintable(string)
Definition: qglobal.h:1750

◆ directories()

QStringList QFileSystemWatcher::directories ( ) const

Returns a list of paths to directories that are being watched.

See also
files()

Definition at line 640 of file qfilesystemwatcher.cpp.

Referenced by QFileInfoGatherer::clear(), and QFileInfoGatherer::getFileInfos().

641 {
642  Q_D(const QFileSystemWatcher);
643  return d->directories;
644 }
double d
Definition: qnumeric_p.h:62
The QFileSystemWatcher class provides an interface for monitoring files and directories for modificat...
#define Q_D(Class)
Definition: qglobal.h:2482

◆ directoryChanged

void QFileSystemWatcher::directoryChanged ( const QString path)
signal

This signal is emitted when the directory at a specified path, is modified (e.

g., when a file is added, modified or deleted) or removed from disk. Note that if there are several changes during a short period of time, some of the changes might not emit this signal. However, the last change in the sequence of changes will always generate this signal.

See also
fileChanged()

◆ fileChanged

void QFileSystemWatcher::fileChanged ( const QString path)
signal

This signal is emitted when the file at the specified path is modified, renamed or removed from disk.

See also
directoryChanged()

◆ files()

QStringList QFileSystemWatcher::files ( ) const

Returns a list of paths to files that are being watched.

See also
directories()

Definition at line 646 of file qfilesystemwatcher.cpp.

Referenced by QFileInfoGatherer::clear(), and QFileInfoGatherer::getInfo().

647 {
648  Q_D(const QFileSystemWatcher);
649  return d->files;
650 }
double d
Definition: qnumeric_p.h:62
The QFileSystemWatcher class provides an interface for monitoring files and directories for modificat...
#define Q_D(Class)
Definition: qglobal.h:2482

◆ removePath()

void QFileSystemWatcher::removePath ( const QString path)

Removes the specified path from the file system watcher.

See also
removePaths(), addPath()

Definition at line 560 of file qfilesystemwatcher.cpp.

Referenced by QFileInfoGatherer::removePath().

561 {
562  if (path.isEmpty()) {
563  qWarning("QFileSystemWatcher::removePath: path is empty");
564  return;
565  }
566  removePaths(QStringList(path));
567 }
void removePaths(const QStringList &files)
Removes the specified paths from the file system watcher.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
Q_CORE_EXPORT void qWarning(const char *,...)

◆ removePaths()

void QFileSystemWatcher::removePaths ( const QStringList paths)

Removes the specified paths from the file system watcher.

See also
removePath(), addPaths()

Definition at line 574 of file qfilesystemwatcher.cpp.

Referenced by QFileInfoGatherer::clear(), and removePath().

575 {
576  if (paths.isEmpty()) {
577  qWarning("QFileSystemWatcher::removePaths: list is empty");
578  return;
579  }
581  QStringList p = paths;
582  if (d->native)
583  p = d->native->removePaths(p, &d->files, &d->directories);
584  if (d->poller)
585  p = d->poller->removePaths(p, &d->files, &d->directories);
586  if (d->forced)
587  p = d->forced->removePaths(p, &d->files, &d->directories);
588 }
double d
Definition: qnumeric_p.h:62
The QFileSystemWatcher class provides an interface for monitoring files and directories for modificat...
#define Q_D(Class)
Definition: qglobal.h:2482
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
Q_CORE_EXPORT void qWarning(const char *,...)

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