Downloader::Downloader (QWidget* parent) : QWidget (parent) { m_ui = new Ui::Downloader; m_ui->setupUi (this); /* Initialize private members */ m_manager = new QNetworkAccessManager(); /* Initialize internal values */ m_filePath = ""; m_startTime = 0; m_useCustomProcedures = false; /* Make the window look like a modal dialog */ setWindowIcon (QIcon ()); setWindowFlags (Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint); /* Configure the appearance and behavior of the buttons */ m_ui->openButton->setEnabled (false); m_ui->openButton->setVisible (false); connect (m_ui->stopButton, SIGNAL (clicked()), this, SLOT (cancelDownload())); connect (m_ui->openButton, SIGNAL (clicked()), this, SLOT (installUpdate())); /* Resize to fit */ setFixedSize (minimumSizeHint()); }
void Downloader::finished() { /* Rename file */ QFile::rename (m_downloadDir.filePath (m_fileName + PARTIAL_DOWN), m_downloadDir.filePath (m_fileName)); /* Notify application */ emit downloadFinished (m_url, m_downloadDir.filePath (m_fileName)); /* Install the update */ m_reply->close(); installUpdate(); setVisible (false); }
UpdaterDialog::UpdaterDialog(QWidget *parent, const SysinfoModel *sysinfo, const char *const updateUrl) : QDialog(parent), ui(new Ui::UpdaterDialog()), m_sysinfo(sysinfo), m_updateUrl(updateUrl), m_status(MUtils::UpdateChecker::UpdateStatus_NotStartedYet), m_thread(NULL), m_updaterProcess(NULL), m_success(false), m_firstShow(true) { //Init the dialog, from the .ui file ui->setupUi(this); setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint)); //Fix size setFixedSize(size()); //Enable buttons connect(ui->buttonCancel, SIGNAL(clicked()), this, SLOT(close())); connect(ui->buttonDownload, SIGNAL(clicked()), this, SLOT(installUpdate())); connect(ui->buttonRetry, SIGNAL(clicked()), this, SLOT(checkForUpdates())); //Enable info label connect(ui->labelUrl, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString))); //Init animation m_animator.reset(new QMovie(":/images/loading.gif")); ui->labelLoadingCenter->setMovie(m_animator.data()); //Init buttons ui->buttonCancel->setEnabled(false); ui->buttonRetry->hide(); ui->buttonDownload->hide(); //Start animation SHOW_ANIMATION(true); }
void Downloader::onDownloadFinished() { m_ui->stopButton->setText (tr ("Close")); m_ui->downloadLabel->setText (tr ("Download complete!")); m_ui->timeLabel->setText (tr ("The installer will open separately") + "..."); QByteArray data = m_reply->readAll(); if (!data.isEmpty()) { QStringList list = m_reply->url().toString().split ("/"); QFile file (QDir::tempPath() + "/" + list.at (list.count() - 1)); if (file.open (QIODevice::WriteOnly)) { file.write (data); file.close(); m_filePath = file.fileName(); emit downloadFinished (m_reply->url().toString(), m_filePath); } installUpdate(); } }