BridgeDownloaderProgressDialog.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "BridgeDownloaderProgressDialog.h"
00018
00019 #include <QTimer>
00020
00021
00022 BridgeDownloaderProgressDialog::BridgeDownloaderProgressDialog(QWidget *parent)
00023 : QDialog(parent)
00024 {
00025 ui.setupUi(this);
00026
00027 connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)),
00028 this, SLOT(buttonClicked(QAbstractButton *)));
00029
00030 setModal(true);
00031 }
00032
00033 void
00034 BridgeDownloaderProgressDialog::setVisible(bool visible)
00035 {
00036 if (visible) {
00037 ui.progressBar->setRange(0, 0);
00038 ui.buttonBox->setStandardButtons(QDialogButtonBox::Cancel);
00039 }
00040 QDialog::setVisible(visible);
00041 }
00042
00043 void
00044 BridgeDownloaderProgressDialog::setStatus(const QString &status)
00045 {
00046 ui.lblStatus->setText(status);
00047 }
00048
00049 void
00050 BridgeDownloaderProgressDialog::setDownloadProgress(int done, int total)
00051 {
00052 ui.progressBar->setRange(0, total);
00053 ui.progressBar->setValue(done);
00054 }
00055
00056 void
00057 BridgeDownloaderProgressDialog::bridgeRequestFinished(const QStringList &bridges)
00058 {
00059 Q_UNUSED(bridges);
00060
00061 accept();
00062 }
00063
00064 void
00065 BridgeDownloaderProgressDialog::bridgeRequestFailed(const QString &error)
00066 {
00067 ui.lblStatus->setText(tr("Unable to download bridges: %1").arg(error));
00068
00069 ui.progressBar->setRange(0, 1);
00070 ui.progressBar->setValue(1);
00071
00072 ui.buttonBox->setStandardButtons(QDialogButtonBox::Cancel
00073 | QDialogButtonBox::Retry
00074 | QDialogButtonBox::Help);
00075 }
00076
00077 void
00078 BridgeDownloaderProgressDialog::buttonClicked(QAbstractButton *button)
00079 {
00080 int standardButton = ui.buttonBox->standardButton(button);
00081 if (standardButton == QDialogButtonBox::Retry) {
00082 setStatus(tr("Retrying bridge request..."));
00083 setDownloadProgress(0, 0);
00084 ui.buttonBox->setStandardButtons(QDialogButtonBox::Cancel);
00085
00086 QTimer::singleShot(1000, this, SIGNAL(retry()));
00087 } else {
00088 done(standardButton);
00089 }
00090 }
00091