summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-09-17 09:53:22 +0300
committerKatja Marttila <katja.marttila@qt.io>2018-09-17 09:57:50 +0300
commitb3d140a2c899219a02c1b31efa4e36723eb71c07 (patch)
tree2a151541a6114d1587e03574fbef2f2fbabd7cfb /src/libs/installer
parent4d00ecb9778d05525416ed0ea0a5be9a8944ae88 (diff)
parent6049f98b3d22781800220daca7ae82eff775e9cc (diff)
Merge remote-tracking branch 'origin/3.0' into master
Diffstat (limited to 'src/libs/installer')
-rw-r--r--src/libs/installer/metadatajob.cpp6
-rw-r--r--src/libs/installer/packagemanagercore.cpp3
-rw-r--r--src/libs/installer/registerfiletypeoperation.cpp2
-rw-r--r--src/libs/installer/scriptengine.cpp11
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(