A Progress Dialog. More...
#include <klfguiutil.h>
Public Slots | |
| virtual void | setDescriptiveText (const QString &labelText) |
| virtual void | startReportingProgress (KLFProgressReporter *progressReporter, const QString &descriptiveText) |
| virtual void | startReportingProgress (KLFProgressReporter *progressReporter) |
| virtual void | setValue (int value) |
Public Member Functions | |
| KLFProgressDialog (QString labelText=QString(), QWidget *parent=NULL) | |
| KLFProgressDialog (bool canCancel, QString labelText, QWidget *parent) | |
| virtual | ~KLFProgressDialog () |
Protected Member Functions | |
| void | paintEvent (QPaintEvent *event) |
A Progress Dialog.
This class is a QProgressDialog derivative that is optimized to work for klatexformula's needs, especially making it easy to use with KLFProgressReporter.
Among others, this dialog provides a straightforward option to disable the Cancel button.
Basically this is just a wrapper around QProgressDialog's functions. Typical use is:
MyWidget::someLengthyOperation()
{
int number_of_steps = ...;
KLFProgressDialog pdlg(false, this); // disable cancel
KLFProgressReporter progressReporter(0, number_of_steps);
pdlg.startReportingProgress(&progressReporter, "Please wait until some long operation completes...");
...
int step = 0;
for (step = 0; step < number_of_steps; ++step) {
// an iteration step
...
progressReporter.doReportProgress(step)
}
}
The previous example is somewhat trivial and does not exhibit the advantages of the features of this class and of KLFProgressReporter over QProgressDialog; the example of KLFLibResourceEngine is more relevant:
// klflib.h : the library resource engine system (no GUI) class KLFLibResourceEngine { .... signals: void operationStartReportingProgress(KLFProgressReporter *progressReporter, const QString& label); ... }; // klflibbrowser.cpp : the library browser (GUI) ... bool KLFLibBrowser::openResource(...) { ... connect(resource, SIGNAL(operationStartReportingProgress(KLFProgressReporter *, const QString&)), this, SLOT(slotStartProgress(KLFProgressReporter *, const QString&))); ... } void KLFLibBrowser::slotStartProgress(KLFProgressReporter *progressReporter, const QString& label) { KLFProgressDialog *pdialog = new KLFProgressDialog(false, QString(), this); pdialog->startReportingProgress(progressReporter, label); ... }
which opens a progress dialog whenever the resource emits an operationStartReportingProgress() signal. Note that in this example, we have not provided the means to delete the progress dialog once it has completed; for details have a look at the source code of klflibbrowser.cpp.
For yet another example of inline (on-the-stack) usage of KLFProgressDialog, check out KLFLibBrowser::slotExport() in klflibbrowser.cpp.
Definition at line 172 of file klfguiutil.h.
| KLFProgressDialog::KLFProgressDialog | ( | QString | labelText = QString(), |
| QWidget * | parent = NULL |
||
| ) |
Build a progress dialog with the given labelText and parent
Definition at line 74 of file klfguiutil.cpp.
| KLFProgressDialog::KLFProgressDialog | ( | bool | canCancel, |
| QString | labelText, | ||
| QWidget * | parent | ||
| ) |
Build a progress dialog with a cancel button that is enabled or disabled (following the value of canCancel), with label labelText, and parent parent.
Definition at line 80 of file klfguiutil.cpp.
| KLFProgressDialog::~KLFProgressDialog | ( | ) | [virtual] |
Definition at line 86 of file klfguiutil.cpp.
| void KLFProgressDialog::paintEvent | ( | QPaintEvent * | event | ) | [protected] |
Definition at line 147 of file klfguiutil.cpp.
References KLF_DEBUG_BLOCK, and KLF_FUNC_NAME.
| void KLFProgressDialog::setDescriptiveText | ( | const QString & | labelText | ) | [virtual, slot] |
same as QProgressDialog::setLabelText() but resizes the dialog a bit larger so that its looks nicer.
Definition at line 108 of file klfguiutil.cpp.
Referenced by startReportingProgress().
| void KLFProgressDialog::setValue | ( | int | value | ) | [virtual, slot] |
Calls directly QProgressDialog::setValue()
Definition at line 140 of file klfguiutil.cpp.
References klfDbg.
Referenced by startReportingProgress().
| void KLFProgressDialog::startReportingProgress | ( | KLFProgressReporter * | progressReporter, |
| const QString & | descriptiveText | ||
| ) | [virtual, slot] |
start reporting progress from progressReporter and set label text to descriptiveText.
setValue() Definition at line 113 of file klfguiutil.cpp.
References KLFProgressReporter::max(), KLFProgressReporter::min(), setDescriptiveText(), and setValue().
| void KLFProgressDialog::startReportingProgress | ( | KLFProgressReporter * | progressReporter | ) | [virtual, slot] |
start reporting progress from progressReporter, without changing label text.
setValue() Definition at line 128 of file klfguiutil.cpp.
References KLFProgressReporter::max(), KLFProgressReporter::min(), and setValue().