summaryrefslogtreecommitdiffstats
path: root/src/timeoutdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/timeoutdialog.cpp')
-rw-r--r--src/timeoutdialog.cpp40
1 files changed, 40 insertions, 0 deletions
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 <iostream>
+#include <QProgressBar>
+
+
+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();
+}