DlgUpdate::DlgUpdate(QWidget *parent) : QDialog(parent) { //Handle layout statusLabel = new QLabel(this); statusLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); statusLabel->setWordWrap(true); descriptionLabel = new QLabel(tr("Current release channel") + QString(": %1").arg(tr(settingsCache->getUpdateReleaseChannel()->getName().toUtf8())), this); progress = new QProgressBar(this); buttonBox = new QDialogButtonBox(this); buttonBox->setFixedWidth(350); ok = new QPushButton("Close", this); manualDownload = new QPushButton(tr("Reinstall"), this); stopDownload = new QPushButton(tr("Cancel Download"), this); gotoDownload = new QPushButton(tr("Open Download Page"), this); addStopDownloadAndRemoveOthers(false); // Add all buttons to box enableUpdateButton(false); //Unless we know there's an update available, you can't install buttonBox->addButton(ok, QDialogButtonBox::AcceptRole); connect(gotoDownload, SIGNAL(clicked()), this, SLOT(gotoDownloadPage())); connect(manualDownload, SIGNAL(clicked()), this, SLOT(downloadUpdate())); connect(stopDownload, SIGNAL(clicked()), this, SLOT(cancelDownload())); connect(ok, SIGNAL(clicked()), this, SLOT(closeDialog())); QVBoxLayout *parentLayout = new QVBoxLayout(this); parentLayout->addWidget(descriptionLabel); parentLayout->addWidget(statusLabel); parentLayout->addWidget(progress); parentLayout->addWidget(buttonBox); setLayout(parentLayout); //Check for SSL (this probably isn't necessary) if (!QSslSocket::supportsSsl()) { enableUpdateButton(false); QMessageBox::critical(this, tr("Error"), tr("Cockatrice was not built with SSL support, therefore you cannot download updates automatically! \nPlease visit the download page to update manually.")); } //Initialize the checker and downloader class uDownloader = new UpdateDownloader(this); connect(uDownloader, SIGNAL(downloadSuccessful(QUrl)), this, SLOT(downloadSuccessful(QUrl))); connect(uDownloader, SIGNAL(progressMade(qint64, qint64)), this, SLOT(downloadProgressMade(qint64, qint64))); connect(uDownloader, SIGNAL(error(QString)), this, SLOT(downloadError(QString))); ReleaseChannel * channel = settingsCache->getUpdateReleaseChannel(); connect(channel, SIGNAL(finishedCheck(bool, bool, Release *)), this, SLOT(finishedUpdateCheck(bool, bool, Release *))); connect(channel, SIGNAL(error(QString)), this, SLOT(updateCheckError(QString))); //Check for updates beginUpdateCheck(); }
DlgUpdate::DlgUpdate(QWidget *parent) : QDialog(parent) { //Handle layout statusLabel = new QLabel(this); descriptionLabel = new QLabel(tr("Current release channel:") + " " + tr(settingsCache->getUpdateReleaseChannel()->getName().toUtf8()), this); progress = new QProgressBar(this); QDialogButtonBox *buttonBox = new QDialogButtonBox(this); ok = new QPushButton("Ok", this); manualDownload = new QPushButton(tr("Update Anyway"), this); enableUpdateButton(false); //Unless we know there's an update available, you can't install gotoDownload = new QPushButton(tr("Open Download Page"), this); buttonBox->addButton(manualDownload, QDialogButtonBox::ActionRole); buttonBox->addButton(gotoDownload, QDialogButtonBox::ActionRole); buttonBox->addButton(ok, QDialogButtonBox::AcceptRole); connect(gotoDownload, SIGNAL(clicked()), this, SLOT(gotoDownloadPage())); connect(manualDownload, SIGNAL(clicked()), this, SLOT(downloadUpdate())); connect(ok, SIGNAL(clicked()), this, SLOT(closeDialog())); QVBoxLayout *parentLayout = new QVBoxLayout(this); parentLayout->addWidget(descriptionLabel); parentLayout->addWidget(statusLabel); parentLayout->addWidget(progress); parentLayout->addWidget(buttonBox); setLayout(parentLayout); //Check for SSL (this probably isn't necessary) if (!QSslSocket::supportsSsl()) { enableUpdateButton(false); QMessageBox::critical(this, tr("Error"), tr("Cockatrice was not built with SSL support, so you cannot download updates automatically! " "Please visit the download page to update manually.")); } //Initialize the checker and downloader class uDownloader = new UpdateDownloader(this); connect(uDownloader, SIGNAL(downloadSuccessful(QUrl)), this, SLOT(downloadSuccessful(QUrl))); connect(uDownloader, SIGNAL(progressMade(qint64, qint64)), this, SLOT(downloadProgressMade(qint64, qint64))); connect(uDownloader, SIGNAL(error(QString)), this, SLOT(downloadError(QString))); ReleaseChannel * channel = settingsCache->getUpdateReleaseChannel(); connect(channel, SIGNAL(finishedCheck(bool, bool, Release * )), this, SLOT(finishedUpdateCheck(bool, bool, Release * ))); connect(channel, SIGNAL(error(QString)), this, SLOT(updateCheckError(QString))); //Check for updates beginUpdateCheck(); }
void DlgUpdate::cancelDownload() { emit uDownloader->stopDownload(); setLabel("Download canceled"); addStopDownloadAndRemoveOthers(false); downloadProgressMade(0, 1); }