void NSISUpdater::versionInfoArrived(const UpdateInfo &info) { ConfigFile cfg; QSettings settings(cfg.configFile(), QSettings::IniFormat); qint64 infoVersion = Helper::stringVersionToInt(info.version()); qint64 seenVersion = Helper::stringVersionToInt(settings.value(seenVersionC).toString()); qint64 currVersion = Helper::currentVersionToInt(); if (info.version().isEmpty() || infoVersion <= currVersion || infoVersion <= seenVersion) { qCInfo(lcUpdater) << "Client is on latest version!"; setDownloadState(UpToDate); } else { QString url = info.downloadUrl(); qint64 autoUpdateFailedVersion = Helper::stringVersionToInt(settings.value(autoUpdateFailedVersionC).toString()); if (url.isEmpty() || _showFallbackMessage || infoVersion == autoUpdateFailedVersion) { showDialog(info); } if (!url.isEmpty()) { _targetFile = cfg.configPath() + url.mid(url.lastIndexOf('/')); if (QFile(_targetFile).exists()) { setDownloadState(DownloadComplete); } else { QNetworkReply *reply = qnam()->get(QNetworkRequest(QUrl(url))); connect(reply, &QIODevice::readyRead, this, &NSISUpdater::slotWriteFile); connect(reply, &QNetworkReply::finished, this, &NSISUpdater::slotDownloadFinished); setDownloadState(Downloading); _file.reset(new QTemporaryFile); _file->setAutoRemove(true); _file->open(); } } } }
void PassiveUpdateNotifier::versionInfoArrived(const UpdateInfo &info) { if( info.version().isEmpty() || Helper::stringVersionToInt(info.version()) >= Helper::currentVersionToInt() ) { qDebug() << "Client is on latest version!"; setDownloadState(UpToDate); } else { setDownloadState(UpdateOnlyAvailableThroughSystem); } }
void PassiveUpdateNotifier::versionInfoArrived(const UpdateInfo &info) { qint64 currentVer = Helper::currentVersionToInt(); qint64 remoteVer = Helper::stringVersionToInt(info.version()); if (info.version().isEmpty() || currentVer >= remoteVer) { qCInfo(lcUpdater) << "Client is on latest version!"; setDownloadState(UpToDate); } else { setDownloadState(UpdateOnlyAvailableThroughSystem); } }
/** \todo document this function */ QDomElement GCF::UpdateInfo::toDomElement(QDomDocument doc, bool forThisSystem) const { QDomElement updateE = doc.createElement("Update"); QDomElement nameE = doc.createElement("Name"); nameE.appendChild( doc.createTextNode(d->name) ); updateE.appendChild(nameE); QDomElement titleE = doc.createElement("Title"); titleE.appendChild( doc.createTextNode(d->title) ); updateE.appendChild(titleE); QDomElement sourceE = doc.createElement("Source"); sourceE.appendChild( doc.createTextNode(d->source) ); updateE.appendChild(sourceE); QDomElement iconE = doc.createElement("Icon"); iconE.appendChild( doc.createTextNode(d->iconUrl.toString()) ); updateE.appendChild(iconE); QDomElement typeE = doc.createElement("Type"); typeE.appendChild( doc.createTextNode(d->type) ); updateE.appendChild(typeE); QDomElement forceInstallE = doc.createElement("ForceInstall"); forceInstallE.appendChild( doc.createTextNode( QVariant(d->forceInstall).toString() ) ); updateE.appendChild(forceInstallE); QDomElement descE = doc.createElement("Description"); descE.appendChild( doc.createCDATASection(d->description) ); updateE.appendChild(descE); QDomElement releaseE = doc.createElement("Release"); releaseE.appendChild( doc.createTextNode(d->release.toString()) ); updateE.appendChild(releaseE); QDomElement versionE = doc.createElement("Version"); versionE.appendChild( doc.createTextNode(d->version) ); updateE.appendChild(versionE); QList<UpdateFileInfo> ufiList; if( forThisSystem ) { UpdateFileInfo fileInfo = updateFileForThisSystem(); ufiList.append(fileInfo); } else ufiList = d->updateFiles; for(int j=0; j<ufiList.count(); j++) { UpdateFileInfo ufi = ufiList[j]; QDomElement updateFileE = doc.createElement("UpdateFile"); updateE.appendChild(updateFileE); updateFileE.setAttribute("OS", ufi.OS); updateFileE.setAttribute("Arch", ufi.Arch); updateFileE.appendChild( doc.createTextNode(ufi.UpdateFileURL.toString()) ); } const QList<UpdateInfo>& deps = d->dependencies; for(int j=0; j<deps.count(); j++) { UpdateInfo dep = deps[j]; QString depStr = QString("%1 [%2]").arg( dep.name() ).arg( dep.version() ); QDomElement dependsOnE = doc.createElement("DependsOn"); dependsOnE.appendChild( doc.createTextNode(depStr) ); updateE.appendChild(dependsOnE); } return updateE; }