timer.setSingleShot(true);
connect(&timer, SIGNAL(timeout()), ..., SLOT(processQueue()));
QList<Task> tasks;
tasks.insert(...);
QDateTime expected
= tasks.
top().
dateTime();
// i.e. 09-08-31 10:00 uint secs = expected.toTime_t() - now.toTime_t();
timer.stop();
timer.start(secs*1000);
//...
void ...::processQueue(){
Task t = queue.first();
queue.removeFirst();
t.perform();
if(queue.isEmpty()) return;
uint secs = expected.toTime_t() - now.toTime_t();
timer.stop();
timer.start(secs*1000);
}
QTimer timer;
timer.setSingleShot(true);
connect(&timer, SIGNAL(timeout()), ..., SLOT(processQueue()));
QList<Task> tasks;
tasks.insert(...);
QDateTime now = QDateTime::currentDateTime();
QDateTime expected = tasks.top().dateTime(); // i.e. 09-08-31 10:00
uint secs = expected.toTime_t() - now.toTime_t();
timer.stop();
timer.start(secs*1000);
//...
void ...::processQueue(){
Task t = queue.first();
queue.removeFirst();
t.perform();
if(queue.isEmpty()) return;
QDateTime now = QDateTime::currentDateTime();
QDateTime expected = tasks.top().dateTime();
uint secs = expected.toTime_t() - now.toTime_t();
timer.stop();
timer.start(secs*1000);
}
To copy to clipboard, switch view to plain text mode
Bookmarks