From 70f3d788a43072ee4f10c3a67cc92fbb2bff5eee Mon Sep 17 00:00:00 2001 From: Manuel Schneider Date: Mon, 2 Dec 2013 12:24:53 +0100 Subject: [Experimental] Timeout + revert functionality --- src/timeoutdialog.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/timeoutdialog.cpp (limited to 'src/timeoutdialog.cpp') diff --git a/src/timeoutdialog.cpp b/src/timeoutdialog.cpp new file mode 100644 index 0000000..5a76504 --- /dev/null +++ b/src/timeoutdialog.cpp @@ -0,0 +1,40 @@ +#include "timeoutdialog.h" +#include +#include + + +TimeOutDialog::TimeOutDialog(int time, QWidget *parent) + : QProgressDialog(parent), _time(time) +{ + QObject::connect(&_timer, SIGNAL(timeout()), this, SLOT(update())); + QObject::connect(this, SIGNAL(canceled()), this, SLOT(cancel())); + + + // QProgressDialog takes ownership of QProgressBar + QProgressBar *qbar = new QProgressBar(this); + qbar->setFormat("%v seconds"); + qbar->setMaximum(_time); + qbar->setMinimum(0); + qbar->setValue(_time); + qbar->setLayoutDirection(Qt::RightToLeft); + setBar(qbar); + _timer.start(1000); +} + +//___________________________________________________________________________ +void TimeOutDialog::update() +{ + if (_time == 0) { + _timer.stop(); + accept(); + } + else + setValue(_time); + --_time; +} + +//___________________________________________________________________________ +void TimeOutDialog::cancel() +{ + _timer.stop(); +} -- cgit v1.2.3-55-g7522