void FileMonitor::connectToFileMonitorGuard()
{
+ // Connections need to be asynchronous because the receiver can own this
+ // object and therefore is allowed to delete it.
+ // Qt signal:
QObject::connect(monitor_.get(), SIGNAL(fileChanged(bool)),
+ this, SIGNAL(fileChanged(bool)),
+ Qt::QueuedConnection);
+ // Boost signal:
+ QObject::connect(this, SIGNAL(fileChanged(bool)),
this, SLOT(changed(bool)));
}
}
-void FileMonitor::disconnect()
-{
- fileChanged_.disconnect_all_slots();
- QObject::disconnect(this, SIGNAL(fileChanged(bool)));
-}
-
-
void FileMonitor::changed(bool const exists)
{
// emit boost signal
fileChanged_(exists);
- Q_EMIT fileChanged(exists);
}
}
}
if (changed)
- FileMonitor::changed(exists);
+ Q_EMIT FileMonitor::fileChanged(exists);
QTimer::singleShot(interval_, this, SLOT(clearCooldown()));
}