From 63d77d25cb347d89ad6aa95cc8d9a7e88b427a44 Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sun, 4 Nov 2012 12:52:28 +0100 Subject: [PATCH 14/16] New QHiMDDownloaddialog --- qhimdtransfer/qhimddownloaddialog.cpp | 85 +++++++++++++++++++++ qhimdtransfer/qhimddownloaddialog.h | 35 +++++++++ qhimdtransfer/qhimddownloaddialog.ui | 140 ++++++++++++++++++++++++++++++++++ qhimdtransfer/qhimdtransfer.pro | 9 ++- 4 files changed, 266 insertions(+), 3 deletions(-) create mode 100644 qhimdtransfer/qhimddownloaddialog.cpp create mode 100644 qhimdtransfer/qhimddownloaddialog.h create mode 100644 qhimdtransfer/qhimddownloaddialog.ui diff --git a/qhimdtransfer/qhimddownloaddialog.cpp b/qhimdtransfer/qhimddownloaddialog.cpp new file mode 100644 index 0000000..ad0cde2 --- /dev/null +++ b/qhimdtransfer/qhimddownloaddialog.cpp @@ -0,0 +1,85 @@ +#include "qhimddownloaddialog.h" +#include "ui_qhimddownloaddialog.h" + +QHiMDDownloadDialog::QHiMDDownloadDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::QHiMDDownloadDialog) +{ + ui->setupUi(this); + reset(); +} + +QHiMDDownloadDialog::~QHiMDDownloadDialog() +{ + delete ui; +} + +void QHiMDDownloadDialog::reset() +{ + tracks_total = 0; + tracks_failed = 0; + tracks_success = 0; + + update_status(); +} + +void QHiMDDownloadDialog::update_status() +{ + ui->success_text->setText(tr("%1 track(s) sucessfully downloaded").arg(tracks_success)); + ui->failed_text->setText(tr("%1 track(s) could not be downloaded").arg(tracks_failed)); + ui->header_text->setText(tr("please wait while downloading %1 track(s)").arg(tracks_total - (tracks_failed + tracks_success))); + ui->progress_text->setText(tr("Downloading track %1 / %2").arg(tracks_success + tracks_failed + 1, tracks_total)); + ui->progressBar->setMinimum(0); + ui->progressBar->setMaximum(tracks_total); + ui->progressBar->setValue(tracks_failed + tracks_success); +} + +void QHiMDDownloadDialog::on_show_details_toggled(bool checked) +{ + if(checked) + { + ui->line->show(); + ui->details->show(); + } + else + { + ui->line->hide(); + ui->details->hide(); + } + + /* Need to process events to make the show or hide calls take effect + before calling sizeHint() */ + QApplication::processEvents(); + resize(size().width(), sizeHint().height()); +} + +void QHiMDDownloadDialog::startTrack() +{ + tracks_total++; + update_status(); +} + +void QHiMDDownloadDialog::trackSucceeded() +{ + tracks_success++; + update_status(); +} + +void QHiMDDownloadDialog::trackFailed(const QString &errmsg) +{ + tracks_failed++; + + QTreeWidgetItem * ErrorMsg; + ErrorMsg = new QTreeWidgetItem(0); + + ErrorMsg->setText(0, tr("Track %1").arg(tracks_failed + tracks_success)); + ErrorMsg->setText(1, errmsg); + ui->details->insertTopLevelItem(0, ErrorMsg); + + update_status(); +} + +void QHiMDDownloadDialog::on_close_clicked() +{ + close(); +} diff --git a/qhimdtransfer/qhimddownloaddialog.h b/qhimdtransfer/qhimddownloaddialog.h new file mode 100644 index 0000000..e0fb5fa --- /dev/null +++ b/qhimdtransfer/qhimddownloaddialog.h @@ -0,0 +1,35 @@ +#ifndef QHIMDDOWNLOADDIALOG_H +#define QHIMDDOWNLOADDIALOG_H + +#include + +namespace Ui { +class QHiMDDownloadDialog; +} + +class QHiMDDownloadDialog : public QDialog +{ + Q_OBJECT + +public: + explicit QHiMDDownloadDialog(QWidget *parent = 0); + ~QHiMDDownloadDialog(); + void reset(); + + void startTrack(); + void trackFailed(const QString & errmsg); + void trackSucceeded(); + +private slots: + void on_show_details_toggled(bool checked); + + void on_close_clicked(); + +private: + Ui::QHiMDDownloadDialog *ui; + int tracks_total, tracks_failed, tracks_success; + + void update_status(); +}; + +#endif // QHIMDDOWNLOADDIALOG_H diff --git a/qhimdtransfer/qhimddownloaddialog.ui b/qhimdtransfer/qhimddownloaddialog.ui new file mode 100644 index 0000000..5f8dcc2 --- /dev/null +++ b/qhimdtransfer/qhimddownloaddialog.ui @@ -0,0 +1,140 @@ + + + QHiMDDownloadDialog + + + + 0 + 0 + 383 + 486 + + + + Dialog + + + true + + + + + + + + + + + :/icons/download_to_md.png + + + + + + + <html><head/><body><p><span style=" font-weight:600;">please wait while downloading XX track(s)</span></p></body></html> + + + + + + + + + + + Downloading track X / Y + + + + + + + 24 + + + + + + + + + + + xx track(s) successfully downloaded + + + + + + + xx track(s) could not be downloaded + + + + + + + + + + + Show Details + + + true + + + true + + + + + + + Close + + + + + + + + + Qt::Horizontal + + + + + + + true + + + 2 + + + false + + + 80 + + + + 1 + + + + + 2 + + + + + + + + + + + diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index b1ca313..4345a81 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -51,18 +51,21 @@ HEADERS += qhimdaboutdialog.h \ qhimduploaddialog.h \ qhimdmainwindow.h \ qhimdmodel.h \ - qhimddetection.h + qhimddetection.h \ + qhimddownloaddialog.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ qhimduploaddialog.ui \ - qhimdmainwindow.ui + qhimdmainwindow.ui \ + qhimddownloaddialog.ui SOURCES += main.cpp \ qhimdaboutdialog.cpp \ qhimdformatdialog.cpp \ qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ qhimdmodel.cpp \ - qhimddetection.cpp + qhimddetection.cpp \ + qhimddownloaddialog.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc -- 1.8.0