From 948f6c18df1f4f3e9d36376510492d20a65bde1b Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sun, 28 Oct 2012 22:26:12 +0100 Subject: [PATCH 13/16] Reverted that updownloaddialog thing It was a mistake to just recycle the uploaddialog for the downloaddialog, since it's progress bar is based on counting uploaded blocks. But we do not know the number of blocks that will be downloaded (AFAIK), so this would not work. Shouldn't have started to mess around with the GUI code before moving the download code to libhimd. Sorry for the mess :-( --- qhimdtransfer/qhimdmainwindow.cpp | 10 +- qhimdtransfer/qhimdmainwindow.h | 3 +- qhimdtransfer/qhimdtransfer.pro | 12 +- qhimdtransfer/qhimdupdownloaddialog.cpp | 161 ----------------------- qhimdtransfer/qhimdupdownloaddialog.h | 57 -------- qhimdtransfer/qhimdupdownloaddialog.ui | 223 -------------------------------- qhimdtransfer/qhimduploaddialog.cpp | 137 ++++++++++++++++++++ qhimdtransfer/qhimduploaddialog.ui | 204 +++++++++++++++++++++++++++++ 8 files changed, 354 insertions(+), 453 deletions(-) delete mode 100644 qhimdtransfer/qhimdupdownloaddialog.cpp delete mode 100644 qhimdtransfer/qhimdupdownloaddialog.h delete mode 100644 qhimdtransfer/qhimdupdownloaddialog.ui create mode 100644 qhimdtransfer/qhimduploaddialog.cpp create mode 100644 qhimdtransfer/qhimduploaddialog.ui diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index 5ff5171..4e02338 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -1,7 +1,7 @@ #include "qhimdmainwindow.h" #include "ui_qhimdmainwindow.h" #include "qhimdaboutdialog.h" -#include "qhimdupdownloaddialog.h" +#include "qhimduploaddialog.h" #include #include @@ -35,7 +35,7 @@ QString QHiMDMainWindow::dumpmp3(const QHiMDTrack & trk, QString file) } uploadDialog->blockTransferred(); QApplication::processEvents(); - if(uploadDialog->updownload_canceled()) + if(uploadDialog->upload_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->updownload_canceled()) + if(uploadDialog->upload_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->updownload_canceled()) + if(uploadDialog->upload_canceled()) { errmsg = QString("upload aborted by the user"); goto clean; @@ -373,7 +373,7 @@ void QHiMDMainWindow::upload_to(const QString & UploadDirectory) uploadDialog->trackFailed(errmsg); QApplication::processEvents(); - if(uploadDialog->updownload_canceled()) + if(uploadDialog->upload_canceled()) break; } uploadDialog->finished(); diff --git a/qhimdtransfer/qhimdmainwindow.h b/qhimdtransfer/qhimdmainwindow.h index d804d64..a7a0e5e 100644 --- a/qhimdtransfer/qhimdmainwindow.h +++ b/qhimdtransfer/qhimdmainwindow.h @@ -6,7 +6,7 @@ #include #include "qhimdaboutdialog.h" #include "qhimdformatdialog.h" -#include "qhimdupdownloaddialog.h" +#include "qhimduploaddialog.h" #include "qhimddetection.h" #include "qhimdmodel.h" #include "../libhimd/himd.h" @@ -53,6 +53,7 @@ private: bool autodetect_init(); void open_himd_at(const QString & path); void upload_to(const QString & path); + void download_of(const QString & path); private slots: void on_action_Connect_triggered(); diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index bb3037a..b1ca313 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -48,21 +48,21 @@ include(translate.pri) # Input HEADERS += qhimdaboutdialog.h \ qhimdformatdialog.h \ + qhimduploaddialog.h \ qhimdmainwindow.h \ qhimdmodel.h \ - qhimddetection.h \ - qhimdupdownloaddialog.h + qhimddetection.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ - qhimdmainwindow.ui \ - qhimdupdownloaddialog.ui + qhimduploaddialog.ui \ + qhimdmainwindow.ui SOURCES += main.cpp \ qhimdaboutdialog.cpp \ qhimdformatdialog.cpp \ + qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ qhimdmodel.cpp \ - qhimddetection.cpp \ - qhimdupdownloaddialog.cpp + qhimddetection.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc diff --git a/qhimdtransfer/qhimdupdownloaddialog.cpp b/qhimdtransfer/qhimdupdownloaddialog.cpp deleted file mode 100644 index e12820a..0000000 --- a/qhimdtransfer/qhimdupdownloaddialog.cpp +++ /dev/null @@ -1,161 +0,0 @@ -#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 deleted file mode 100644 index b8e3ad0..0000000 --- a/qhimdtransfer/qhimdupdownloaddialog.h +++ /dev/null @@ -1,57 +0,0 @@ -#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 deleted file mode 100644 index db9cd30..0000000 --- a/qhimdtransfer/qhimdupdownloaddialog.ui +++ /dev/null @@ -1,223 +0,0 @@ - - - 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 new file mode 100644 index 0000000..4df44ca --- /dev/null +++ b/qhimdtransfer/qhimduploaddialog.cpp @@ -0,0 +1,137 @@ +#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 new file mode 100644 index 0000000..af89841 --- /dev/null +++ b/qhimdtransfer/qhimduploaddialog.ui @@ -0,0 +1,204 @@ + + + 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.8.0