23 #include "updaterinfoparser.h" 27 #include "updater/autoupdater.h" 28 #include "updater/updatepackage.h" 30 DClass<UpdaterInfoParser>
33 QList<UpdatePackage> packages;
35 bool hasMainProgramName(
const QVariantMap &metaData)
const 47 UpdaterInfoParser::~UpdaterInfoParser()
51 const QList<UpdatePackage> &UpdaterInfoParser::packages()
const 62 QVariantMap metaData = var.toMap();
63 if (d->hasMainProgramName(metaData))
65 for (
const QString &package : metaData.keys())
67 int result = parsePackageNode(package, metaData[package].toMap());
68 if (result != AutoUpdater::EC_Ok)
83 return AutoUpdater::EC_Ok;
86 int UpdaterInfoParser::parsePackageNode(
const QString &packageName,
const QVariantMap &map)
89 package.
name = packageName;
91 if (map.contains(
"revision"))
93 package.
revision = map[
"revision"].toString();
97 gLog << tr(
"Missing update revision info for package %1.").arg(packageName);
101 if (map.contains(
"display-version"))
110 if (map.contains(
"display-name"))
112 package.
displayName = map[
"display-name"].toString();
119 if (map.contains(
"URL"))
121 QString strUrl = map[
"URL"].toString();
125 gLog << tr(
"Invalid update download URL for package %1: %2")
126 .arg(packageName, strUrl);
132 gLog << tr(
"Missing update download URL for package %1.").arg(packageName);
136 if (map.contains(
"URL-script"))
138 QString strUrl = map[
"URL-script"].toString();
142 gLog << tr(
"Invalid update script download URL for package %1, %2")
143 .arg(packageName, strUrl);
152 d->packages << package;
153 return AutoUpdater::EC_Ok;
QUrl downloadScriptUrl
Updater script download URL.
static QVariant parse(const QString &json)
One of packages has no revision info.
int parse(const QByteArray &json)
Parses updater info JSON and sets certain internal properties which can then be accessed through gett...
QUrl downloadUrl
Package download URL.
QUrl.isValid() for package download URL returned false or QUrl.isRelative() returned true...
QString displayName
Name displayed to the user.
One of packages has no download URL.
QString revision
Revision used for version comparison.
File was parseable but there was no main program information inside.
Updater info file can't be parsed.
QString displayVersion
Version displayed to the user.
static const QString MAIN_PROGRAM_PACKAGE_NAME
Package name for the main program.
QString name
Name of the package (program name or plugin name).