diff options
Diffstat (limited to 'doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp')
-rw-r--r-- | doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp | 41 |
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] |