summaryrefslogtreecommitdiffstats
path: root/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp')
-rw-r--r--doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp b/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp
new file mode 100644
index 0000000..8aeafe8
--- /dev/null
+++ b/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp
@@ -0,0 +1,41 @@
+//! [0]
+Q3ProgressDialog progress("Copying files...", "Abort Copy", numFiles,
+ this, "progress", true);
+for (int i = 0; i < numFiles; i++) {
+ progress.setProgress(i);
+ qApp->processEvents();
+
+ if (progress.wasCanceled())
+ break;
+ //... copy one file
+}
+progress.setProgress(numFiles);
+//! [0]
+
+
+//! [1]
+Operation::Operation(QObject *parent = 0)
+ : QObject(parent), steps(0)
+{
+ pd = new Q3ProgressDialog("Operation in progress.", "Cancel", 100);
+ connect(pd, SIGNAL(canceled()), this, SLOT(cancel()));
+ t = new QTimer(this);
+ connect(t, SIGNAL(timeout()), this, SLOT(perform()));
+ t->start(0);
+}
+
+void Operation::perform()
+{
+ pd->setProgress(steps);
+ //... perform one percent of the operation
+ steps++;
+ if (steps > pd->totalSteps())
+ t->stop();
+}
+
+void Operation::cancel()
+{
+ t->stop();
+ //... cleanup
+}
+//! [1]