From 7d4d3f6f373efae13a8b022dbc90a17f5b5ed01d Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sat, 13 Oct 2012 23:19:57 +0200 Subject: [PATCH 2/5] Replaced Uploaddialog with Up/Downloaddialog Since the (not yet used) Downloaddialog should behave like the Uploaddialog, they should share their code IMHO. --- qhimdtransfer/qhimdmainwindow.cpp | 10 +- qhimdtransfer/qhimdmainwindow.h | 2 +- qhimdtransfer/qhimdmainwindow.ui | 2 +- qhimdtransfer/qhimdtransfer.pro | 12 +- qhimdtransfer/qhimdupdownloaddialog.cpp | 161 +++++++++++++++++++++++ qhimdtransfer/qhimdupdownloaddialog.h | 57 ++++++++ qhimdtransfer/qhimdupdownloaddialog.ui | 223 ++++++++++++++++++++++++++++++++ qhimdtransfer/qhimduploaddialog.cpp | 137 -------------------- qhimdtransfer/qhimduploaddialog.ui | 204 ----------------------------- 9 files changed, 454 insertions(+), 354 deletions(-) create mode 100644 qhimdtransfer/qhimdupdownloaddialog.cpp create mode 100644 qhimdtransfer/qhimdupdownloaddialog.h create mode 100644 qhimdtransfer/qhimdupdownloaddialog.ui delete mode 100644 qhimdtransfer/qhimduploaddialog.cpp delete mode 100644 qhimdtransfer/qhimduploaddialog.ui diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index a34bd03..3708a52 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -1,7 +1,7 @@ #include "qhimdmainwindow.h" #include "ui_qhimdmainwindow.h" #include "qhimdaboutdialog.h" -#include "qhimduploaddialog.h" +#include "qhimdupdownloaddialog.h" #include #include @@ -35,7 +35,7 @@ QString QHiMDMainWindow::dumpmp3(const QHiMDTrack & trk, QString file) } uploadDialog->blockTransferred(); QApplication::processEvents(); - if(uploadDialog->upload_canceled()) + if(uploadDialog->updownload_canceled()) { errmsg = tr("upload aborted by the user"); goto clean; @@ -105,7 +105,7 @@ QString QHiMDMainWindow::dumpoma(const QHiMDTrack & track, QString file) } uploadDialog->blockTransferred(); QApplication::processEvents(); - if(uploadDialog->upload_canceled()) + if(uploadDialog->updownload_canceled()) { errmsg = QString("upload aborted by the user"); goto clean; @@ -173,7 +173,7 @@ QString QHiMDMainWindow::dumppcm(const QHiMDTrack & track, QString file) } uploadDialog->blockTransferred(); QApplication::processEvents(); - if(uploadDialog->upload_canceled()) + if(uploadDialog->updownload_canceled()) { errmsg = QString("upload aborted by the user"); goto clean; @@ -372,7 +372,7 @@ void QHiMDMainWindow::upload_to(const QString & UploadDirectory) uploadDialog->trackFailed(errmsg); QApplication::processEvents(); - if(uploadDialog->upload_canceled()) + if(uploadDialog->updownload_canceled()) break; } uploadDialog->finished(); diff --git a/qhimdtransfer/qhimdmainwindow.h b/qhimdtransfer/qhimdmainwindow.h index 2fc2135..5e24e95 100644 --- a/qhimdtransfer/qhimdmainwindow.h +++ b/qhimdtransfer/qhimdmainwindow.h @@ -7,7 +7,7 @@ #include #include "qhimdaboutdialog.h" #include "qhimdformatdialog.h" -#include "qhimduploaddialog.h" +#include "qhimdupdownloaddialog.h" #include "qhimddetection.h" #include "qhimdmodel.h" #include "../libhimd/himd.h" diff --git a/qhimdtransfer/qhimdmainwindow.ui b/qhimdtransfer/qhimdmainwindow.ui index b55845f..b4736e7 100644 --- a/qhimdtransfer/qhimdmainwindow.ui +++ b/qhimdtransfer/qhimdmainwindow.ui @@ -174,7 +174,7 @@ 0 0 784 - 18 + 23 diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index 4b41311..c7465b2 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -47,21 +47,21 @@ include(translate.pri) # Input HEADERS += qhimdaboutdialog.h \ qhimdformatdialog.h \ - qhimduploaddialog.h \ qhimdmainwindow.h \ qhimdmodel.h \ - qhimddetection.h + qhimddetection.h \ + qhimdupdownloaddialog.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ - qhimduploaddialog.ui \ - qhimdmainwindow.ui + qhimdmainwindow.ui \ + qhimdupdownloaddialog.ui SOURCES += main.cpp \ qhimdaboutdialog.cpp \ qhimdformatdialog.cpp \ - qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ qhimdmodel.cpp \ - qhimddetection.cpp + qhimddetection.cpp \ + qhimdupdownloaddialog.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc diff --git a/qhimdtransfer/qhimdupdownloaddialog.cpp b/qhimdtransfer/qhimdupdownloaddialog.cpp new file mode 100644 index 0000000..e12820a --- /dev/null +++ b/qhimdtransfer/qhimdupdownloaddialog.cpp @@ -0,0 +1,161 @@ +#include "qhimdupdownloaddialog.h" +#include "ui_qhimdupdownloaddialog.h" + +void QHiMDUpDownloadDialog::trackFailed(const QString & errmsg) +{ + allfinished -= thisfilefinished; + allfinished += thisfileblocks; + m_ui->AllPBar->setValue(allfinished); + + m_ui->failed_text->setText((is_upload_dialog ? tr("%1 track(s) could not be uploaded") + : tr("%1 track(s) could not be downloaded")).arg(++fcount)); + + QTreeWidgetItem * ErrorMsg; + ErrorMsg = new QTreeWidgetItem(0); + + ErrorMsg->setText(0, tr("Track %1").arg(tracknum)); + ErrorMsg->setText(1, errmsg); + m_ui->ErrorList->insertTopLevelItem(0, ErrorMsg); + m_ui->details_button->setEnabled(true); +} + +void QHiMDUpDownloadDialog::trackSucceeded() +{ + /* should do nothing, just to be sure */ + allfinished -= thisfilefinished; + allfinished += thisfileblocks; + m_ui->AllPBar->setValue(allfinished); + + m_ui->success_text->setText((is_upload_dialog ? tr("%1 track(s) successfully uploaded") + : tr("%1 track(s) successfully downloaded")).arg(++scount)); +} + +void QHiMDUpDownloadDialog::finished() +{ + m_ui->curtrack_label->setText(tr("download finished")); + /* Prevent shrinking of the box when hiding the indicators */ + m_ui->current->setMinimumSize(m_ui->current->size()); + m_ui->TrkPBar->hide(); + m_ui->curtrack_label->hide(); + + m_ui->cancel_button->hide(); + m_ui->close_button->show(); + + return; +} + +void QHiMDUpDownloadDialog::starttrack(const QHiMDTrack & trk, const QString & title) +{ + tracknum = trk.tracknum() + 1; + m_ui->curtrack_label->setText(tr("current track: %1 - %2").arg(tracknum).arg(title)); + thisfileblocks = trk.blockcount(); + thisfilefinished = 0; + m_ui->TrkPBar->setRange(0, thisfileblocks); + m_ui->TrkPBar->reset(); +} + +void QHiMDUpDownloadDialog::blockTransferred() +{ + m_ui->TrkPBar->setValue(++thisfilefinished); + m_ui->AllPBar->setValue(++allfinished); +} + +void QHiMDUpDownloadDialog::init(int trackcount, int totalblocks) +{ + allblocks = totalblocks; + allfinished = 0; + m_ui->AllPBar->setRange(0, allblocks); + m_ui->AllPBar->reset(); + + scount = fcount = 0; + m_ui->success_text->setText(""); + m_ui->failed_text->setText(""); + + if(!trackcount) + { + m_ui->alltrack_label->setText(tr("no tracks selected")); + finished(); + } + else + { + m_ui->alltrack_label->setText((is_upload_dialog ? tr("please wait while uploading %1 track(s)") + : tr("please wait while downloading %1 track(s)")).arg(trackcount)); + /* undo QHiMDUpDownloadDialog::finished */ + m_ui->TrkPBar->show(); + m_ui->curtrack_label->show(); + m_ui->current->setMinimumSize(0,0); + m_ui->close_button->hide(); + m_ui->cancel_button->show(); + } + + m_ui->ErrorList->setColumnWidth(0, 100); + m_ui->ErrorList->clear(); + m_ui->details_button->setChecked(false); + m_ui->details_button->setEnabled(false); + + show(); + resize(size().width(), sizeHint().height()); +} + +QHiMDUpDownloadDialog::QHiMDUpDownloadDialog(bool is_upload_dialog, QWidget *parent) : + QDialog(parent), + m_ui(new Ui::QHiMDUpDownloadDialog), + canceled(false) +{ + m_ui->setupUi(this); + this->is_upload_dialog = is_upload_dialog; + + this->setWindowTitle(is_upload_dialog ? tr("Track upload - QHiMDTransfer") + : tr("Track download - QHiMDTransfer")); + this->setWindowIcon(QIcon(is_upload_dialog ? ":/icons/upload_to_md.png" + : ":/icons/download_from_md.png")); + + /* Shitty hack ahead! Would have been better to just set the pixmap of the label, but that didn't work for me... */ + if(is_upload_dialog) + m_ui->icon_download->hide(); + else + m_ui->icon_upload->hide(); + + /* Content changed, so we should update size */ + QApplication::processEvents(); + resize(size().width(), sizeHint().height()); +} + +QHiMDUpDownloadDialog::~QHiMDUpDownloadDialog() +{ + delete m_ui; +} + +void QHiMDUpDownloadDialog::on_details_button_toggled(bool checked) +{ + if (checked) + { + m_ui->line->show(); + m_ui->ErrorList->show(); + } + else + { + m_ui->line->hide(); + m_ui->ErrorList->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 QHiMDUpDownloadDialog::on_close_button_clicked() +{ + close(); +} + +void QHiMDUpDownloadDialog::on_cancel_button_clicked() +{ + m_ui->alltrack_label->setText(is_upload_dialog ? tr("upload aborted by the user") + : tr("download aborted by the user")); + canceled = true; +} + + +QHiMDUploadDialog::QHiMDUploadDialog(QWidget* parent) : QHiMDUpDownloadDialog(true, parent) {} +QHiMDDownloadDialog::QHiMDDownloadDialog(QWidget* parent) : QHiMDUpDownloadDialog(false, parent) {} diff --git a/qhimdtransfer/qhimdupdownloaddialog.h b/qhimdtransfer/qhimdupdownloaddialog.h new file mode 100644 index 0000000..b8e3ad0 --- /dev/null +++ b/qhimdtransfer/qhimdupdownloaddialog.h @@ -0,0 +1,57 @@ +#ifndef QHIMDUPDOWNLOADDIALOG_H +#define QHIMDUPDOWNLOADDIALOG_H + +#include +#include "qhimdmodel.h" + +namespace Ui { + class QHiMDUpDownloadDialog; + class QHiMDUploadDialog2; + class QHiMDDownloadDialog; +} + +class QHiMDUpDownloadDialog : public QDialog { + Q_OBJECT + +public: + explicit QHiMDUpDownloadDialog(bool is_upload_dialog, QWidget *parent); + virtual ~QHiMDUpDownloadDialog(); + bool updownload_canceled() { return canceled; } + + void init(int trackcount, int totalblocks); + void starttrack(const QHiMDTrack & trk, const QString & title); + void blockTransferred(); + void trackFailed(const QString & errmsg); + void trackSucceeded(); + void finished(); + +private: + bool is_upload_dialog; + Ui::QHiMDUpDownloadDialog *m_ui; + int allblocks, allfinished; + int tracknum; + int thisfileblocks, thisfilefinished; + int scount, fcount; + bool canceled; + +private slots: + /* UI slots */ + void on_close_button_clicked(); + void on_cancel_button_clicked(); + void on_details_button_toggled(bool checked); +}; + +class QHiMDUploadDialog : public QHiMDUpDownloadDialog { + Q_OBJECT +public: + explicit QHiMDUploadDialog(QWidget* parent = 0); +}; + +class QHiMDDownloadDialog : public QHiMDUpDownloadDialog { + Q_OBJECT +public: + explicit QHiMDDownloadDialog(QWidget* parent = 0); +}; + + +#endif // QHIMDUPDOWNLOADDIALOG_H diff --git a/qhimdtransfer/qhimdupdownloaddialog.ui b/qhimdtransfer/qhimdupdownloaddialog.ui new file mode 100644 index 0000000..db9cd30 --- /dev/null +++ b/qhimdtransfer/qhimdupdownloaddialog.ui @@ -0,0 +1,223 @@ + + + QHiMDUpDownloadDialog + + + + 0 + 0 + 396 + 447 + + + + Track download - QHiMDTransfer + + + + :/icons/download_from_md.png + + + + true + + + + + + + + + 0 + 0 + + + + + + + :/icons/download_to_md.png + + + true + + + + + + + + 0 + 0 + + + + + + + :/icons/upload_from_md.png + + + true + + + + + + + + 75 + true + + + + please wait while downloading XX track(s) + + + Qt::AlignCenter + + + + + + + + + + + overall progress + + + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + current track: trknum - filename + + + + + + + + + + + + + + + xx track(s) successfully downloaded + + + + + + + xx track(s) could not be downloaded + + + + + + + + + 30 + + + + + Show Details + + + true + + + true + + + + + + + Cancel + + + + + + + Close + + + true + + + + + + + + + 3 + + + Qt::Horizontal + + + + + + + + + QFrame::Sunken + + + false + + + false + + + 80 + + + + Tracknr. + + + + + Error message + + + + + + + + + + + + + diff --git a/qhimdtransfer/qhimduploaddialog.cpp b/qhimdtransfer/qhimduploaddialog.cpp deleted file mode 100644 index 4df44ca..0000000 --- a/qhimdtransfer/qhimduploaddialog.cpp +++ /dev/null @@ -1,137 +0,0 @@ -#include "qhimduploaddialog.h" -#include "ui_qhimduploaddialog.h" - -void QHiMDUploadDialog::trackFailed(const QString & errmsg) -{ - allfinished -= thisfilefinished; - allfinished += thisfileblocks; - m_ui->AllPBar->setValue(allfinished); - - m_ui->failed_text->setText(tr("%1 track(s) could not be uploaded").arg(++fcount)); - - QTreeWidgetItem * ErrorMsg; - ErrorMsg = new QTreeWidgetItem(0); - - ErrorMsg->setText(0, tr("Track %1").arg(tracknum)); - ErrorMsg->setText(1, errmsg); - m_ui->ErrorList->insertTopLevelItem(0, ErrorMsg); - m_ui->details_button->setEnabled(true); -} - -void QHiMDUploadDialog::trackSucceeded() -{ - /* should do nothing, just to be sure */ - allfinished -= thisfilefinished; - allfinished += thisfileblocks; - m_ui->AllPBar->setValue(allfinished); - - m_ui->success_text->setText(tr("%1 track(s) successfully uploaded").arg(++scount)); -} - -void QHiMDUploadDialog::finished() -{ - m_ui->curtrack_label->setText(tr("upload finished")); - /* Prevent shrinking of the box when hiding the indicators */ - m_ui->current->setMinimumSize(m_ui->current->size()); - m_ui->TrkPBar->hide(); - m_ui->curtrack_label->hide(); - - m_ui->cancel_button->hide(); - m_ui->close_button->show(); - - return; -} - -void QHiMDUploadDialog::starttrack(const QHiMDTrack & trk, const QString & title) -{ - tracknum = trk.tracknum() + 1; - m_ui->curtrack_label->setText(tr("current track: %1 - %2").arg(tracknum).arg(title)); - thisfileblocks = trk.blockcount(); - thisfilefinished = 0; - m_ui->TrkPBar->setRange(0, thisfileblocks); - m_ui->TrkPBar->reset(); -} - -void QHiMDUploadDialog::blockTransferred() -{ - m_ui->TrkPBar->setValue(++thisfilefinished); - m_ui->AllPBar->setValue(++allfinished); -} - -void QHiMDUploadDialog::init(int trackcount, int totalblocks) -{ - allblocks = totalblocks; - allfinished = 0; - m_ui->AllPBar->setRange(0, allblocks); - m_ui->AllPBar->reset(); - - scount = fcount = 0; - m_ui->success_text->setText(""); - m_ui->failed_text->setText(""); - - if(!trackcount) - { - m_ui->alltrack_label->setText(tr("no tracks selected")); - finished(); - } - else - { - m_ui->alltrack_label->setText(tr("please wait while uploading %1 track(s)").arg(trackcount)); - /* undo QHiMDUploadDialog::finished */ - m_ui->TrkPBar->show(); - m_ui->curtrack_label->show(); - m_ui->current->setMinimumSize(0,0); - m_ui->close_button->hide(); - m_ui->cancel_button->show(); - } - - m_ui->ErrorList->setColumnWidth(0, 100); - m_ui->ErrorList->clear(); - m_ui->details_button->setChecked(false); - m_ui->details_button->setEnabled(false); - - show(); - resize(size().width(), sizeHint().height()); -} - -QHiMDUploadDialog::QHiMDUploadDialog(QWidget *parent) : - QDialog(parent), - m_ui(new Ui::QHiMDUploadDialog), - canceled(false) -{ - m_ui->setupUi(this); -} - -QHiMDUploadDialog::~QHiMDUploadDialog() -{ - delete m_ui; -} - -void QHiMDUploadDialog::on_details_button_toggled(bool checked) -{ - if (checked) - { - m_ui->line->show(); - m_ui->ErrorList->show(); - } - else - { - m_ui->line->hide(); - m_ui->ErrorList->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 QHiMDUploadDialog::on_close_button_clicked() -{ - close(); -} - -void QHiMDUploadDialog::on_cancel_button_clicked() -{ - m_ui->alltrack_label->setText(tr("upload aborted by the user")); - canceled = true; -} diff --git a/qhimdtransfer/qhimduploaddialog.ui b/qhimdtransfer/qhimduploaddialog.ui deleted file mode 100644 index af89841..0000000 --- a/qhimdtransfer/qhimduploaddialog.ui +++ /dev/null @@ -1,204 +0,0 @@ - - - QHiMDUploadDialog - - - - 0 - 0 - 357 - 447 - - - - Track upload - QHiMDTransfer - - - - :/icons/upload_from_md.png - - - - true - - - - - - - - - 0 - 0 - - - - - - - :/icons/upload_from_md.png - - - true - - - - - - - - 75 - true - - - - please wait while uploading XX track(s) - - - Qt::AlignCenter - - - - - - - - - - - overall progress - - - - - - - - - - - - - 0 - - - - - - 0 - 0 - - - - current track: trknum - filename - - - - - - - - - - - - - - - xx track(s) successfully uploaded - - - - - - - xx track(s) could not be uploaded - - - - - - - - - 30 - - - - - Show Details - - - true - - - true - - - - - - - Cancel - - - - - - - Close - - - true - - - - - - - - - 3 - - - Qt::Horizontal - - - - - - - - - QFrame::Sunken - - - false - - - false - - - 80 - - - - Tracknr. - - - - - Error message - - - - - - - - - - - - - -- 1.7.12.3