diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-09-17 09:53:22 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-09-17 09:57:50 +0300 |
commit | b3d140a2c899219a02c1b31efa4e36723eb71c07 (patch) | |
tree | 2a151541a6114d1587e03574fbef2f2fbabd7cfb /src/libs/installer | |
parent | 4d00ecb9778d05525416ed0ea0a5be9a8944ae88 (diff) | |
parent | 6049f98b3d22781800220daca7ae82eff775e9cc (diff) |
Merge remote-tracking branch 'origin/3.0' into master
Change-Id: I77d539e079f3c7d61c4a965b222f4e02c35b1108
Diffstat (limited to 'src/libs/installer')
-rw-r--r-- | src/libs/installer/metadatajob.cpp | 6 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 3 | ||||
-rw-r--r-- | src/libs/installer/registerfiletypeoperation.cpp | 2 | ||||
-rw-r--r-- | src/libs/installer/scriptengine.cpp | 11 |
4 files changed, 17 insertions, 5 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index bbcf9ed5e..ae29a2dcb 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -330,7 +330,9 @@ void MetadataJob::xmlTaskFinished() return; if (status == XmlDownloadSuccess) { - fetchMetaDataPackages(); + if (!fetchMetaDataPackages()) { + emitFinished(); + } } else if (status == XmlDownloadRetry) { QMetaObject::invokeMethod(this, "doStart", Qt::QueuedConnection); } else { @@ -460,6 +462,8 @@ void MetadataJob::reset() m_metadataTask.cancel(); } catch (...) {} m_tempDirDeleter.releaseAndDeleteAll(); + m_metadataResult.clear(); + m_taskNumber = 0; } void MetadataJob::resetCompressedFetch() diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index e42b6e6b4..747960cee 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -844,6 +844,7 @@ PackageManagerCore::PackageManagerCore(qint64 magicmaker, const QList<OperationB qRegisterMetaType<QInstaller::PackageManagerCore::Status>("QInstaller::PackageManagerCore::Status"); qRegisterMetaType<QInstaller::PackageManagerCore::WizardPage>("QInstaller::PackageManagerCore::WizardPage"); + d->initialize(QHash<QString, QString>()); // Creates and initializes a remote client, makes us get admin rights for QFile, QSettings // and QProcess operations. Init needs to called to set the server side authorization key. if (!d->isUpdater()) { @@ -851,8 +852,6 @@ PackageManagerCore::PackageManagerCore(qint64 magicmaker, const QList<OperationB RemoteClient::instance().setAuthorizationFallbackDisabled(settings().disableAuthorizationFallback()); } - d->initialize(QHash<QString, QString>()); - // // Sanity check to detect a broken installations with missing operations. // Every installed package should have at least one MinimalProgress operation. diff --git a/src/libs/installer/registerfiletypeoperation.cpp b/src/libs/installer/registerfiletypeoperation.cpp index 2cfd8f9c4..bcae422d7 100644 --- a/src/libs/installer/registerfiletypeoperation.cpp +++ b/src/libs/installer/registerfiletypeoperation.cpp @@ -89,7 +89,7 @@ bool RegisterFileTypeOperation::performOperation() { #ifdef Q_OS_WIN ensureOptionalArgumentsRead(); - if (!checkArgumentCount(2, 5, tr("<extension> <command> [description [contentType [icon]]]"))) + if (!checkArgumentCount(2, 5, QString::fromLatin1("<extension> <command> [description [contentType [icon]]]"))) return false; QStringList args = arguments(); diff --git a/src/libs/installer/scriptengine.cpp b/src/libs/installer/scriptengine.cpp index 4a3c163d2..bea1e8e75 100644 --- a/src/libs/installer/scriptengine.cpp +++ b/src/libs/installer/scriptengine.cpp @@ -418,7 +418,16 @@ QJSValue ScriptEngine::loadInContext(const QString &context, const QString &file " else" " throw \"Missing Component constructor. Please check your script.\";" "})();").arg(context); - QJSValue scriptContext = evaluate(scriptContent, fileName); + QString copiedFileName = fileName; +#ifdef Q_OS_WIN + // Workaround bug reported in QTBUG-70425 by appending "file://" when passing a filename to + // QJSEngine::evaluate() to ensure it sees it as a valid URL when qsTr() is used. + if (!copiedFileName.startsWith(QLatin1String("qrc:/")) && + !copiedFileName.startsWith(QLatin1String(":/"))) { + copiedFileName = QLatin1String("file://") + fileName; + } +#endif + QJSValue scriptContext = evaluate(scriptContent, copiedFileName); scriptContext.setProperty(QLatin1String("Uuid"), QUuid::createUuid().toString()); if (scriptContext.isError()) { throw Error(tr("Exception while loading the component script \"%1\": %2").arg( |