From 47ae652577a1013736a04e3c9a105b9094fe1ed6 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Thu, 11 Oct 2018 12:31:17 +0300 Subject: Do not reset core data values in restart Do not reset core data values as that removes all data set using setValue() which are needed. Restart is called when pressing 'Restart' after maintenancetool finish page or when changing settings from Settings Dialog. Task-number QTIFW-504 Change-Id: I0713b0371811957b93623433d26f0b10e4c8fb12 Reviewed-by: Janne Anttila Reviewed-by: Jani Heikkinen --- src/libs/installer/packagemanagercore.cpp | 9 ++++----- src/libs/installer/packagemanagercore.h | 2 +- src/sdk/installerbase.cpp | 12 ++---------- src/sdk/tabcontroller.cpp | 12 +----------- src/sdk/tabcontroller.h | 2 -- 5 files changed, 8 insertions(+), 29 deletions(-) diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index bf78f99ff..0541cbeaa 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -449,17 +449,16 @@ void PackageManagerCore::writeMaintenanceConfigFiles() } /*! - Resets the class to its initial state and applies the values of the - parameters specified by \a params. + Resets the class to its initial state. */ -void PackageManagerCore::reset(const QHash ¶ms) +void PackageManagerCore::reset() { d->m_completeUninstall = false; d->m_needsHardRestart = false; d->m_status = PackageManagerCore::Unfinished; d->m_installerBaseBinaryUnreplaced.clear(); - - d->initialize(params); + d->m_coreCheckedHash.clear(); + d->m_componentsToInstallCalculated = false; } /*! diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 2a235bd44..629b36766 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -125,7 +125,7 @@ public: bool fetchCompressedPackagesTree(); bool run(); - void reset(const QHash ¶ms); + void reset(); void setGuiObject(QObject *gui); QObject *guiObject() const; diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index 5d5028be1..872600f19 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -243,13 +243,11 @@ int InstallerBase::run() .isSet(QLatin1String(CommandLineOptions::CreateLocalRepository)) || m_core->settings().createLocalRepository()); - QHash params; const QStringList positionalArguments = parser.positionalArguments(); foreach (const QString &argument, positionalArguments) { if (argument.contains(QLatin1Char('='))) { const QString name = argument.section(QLatin1Char('='), 0, 0); const QString value = argument.section(QLatin1Char('='), 1, 1); - params.insert(name, value); m_core->setValue(name, value); } } @@ -308,17 +306,11 @@ int InstallerBase::run() //create the wizard GUI TabController controller(0); controller.setManager(m_core); - controller.setManagerParams(params); controller.setControlScript(controlScript); - if (m_core->isInstaller()) { + if (m_core->isInstaller()) controller.setGui(new InstallerGui(m_core)); - } - else { + else controller.setGui(new MaintenanceGui(m_core)); - //Start listening to setValue changes that newly installed components might have - connect(m_core, &QInstaller::PackageManagerCore::valueChanged, &controller, - &TabController::updateManagerParams); - } QInstaller::PackageManagerCore::Status status = QInstaller::PackageManagerCore::Status(controller.init()); diff --git a/src/sdk/tabcontroller.cpp b/src/sdk/tabcontroller.cpp index 760e7dc38..dc4549d50 100644 --- a/src/sdk/tabcontroller.cpp +++ b/src/sdk/tabcontroller.cpp @@ -102,11 +102,6 @@ void TabController::setManager(QInstaller::PackageManagerCore *core) d->m_core = core; } -void TabController::setManagerParams(const QHash ¶ms) -{ - d->m_params = params; -} - // -- public slots int TabController::init() @@ -143,8 +138,8 @@ int TabController::init() void TabController::restartWizard() { + d->m_core->reset(); if (d->m_networkSettingsChanged) { - d->m_core->reset(d->m_params); d->m_networkSettingsChanged = false; d->m_core->settings().setFtpProxy(d->m_settings.ftpProxy()); @@ -199,8 +194,3 @@ void TabController::onNetworkSettingsChanged(const QInstaller::Settings &setting d->m_settings = settings; d->m_networkSettingsChanged = true; } - -void TabController::updateManagerParams(const QString &key, const QString &value) -{ - d->m_params.insert(key, value); -} diff --git a/src/sdk/tabcontroller.h b/src/sdk/tabcontroller.h index a314cb15b..5fc63aff3 100644 --- a/src/sdk/tabcontroller.h +++ b/src/sdk/tabcontroller.h @@ -51,13 +51,11 @@ public: void setGui(QInstaller::PackageManagerGui *gui); void setManager(QInstaller::PackageManagerCore *core); - void setManagerParams(const QHash ¶ms); void setControlScript(const QString &script); public Q_SLOTS: int init(); - void updateManagerParams(const QString &key, const QString &value); private Q_SLOTS: void restartWizard(); -- cgit v1.2.3 From a2b41038222b43dd593e57a586a9113395fca678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 26 Oct 2018 11:41:01 +0200 Subject: Optimize ExctractArchiveOperation::fileFinished() This code was spending a lot of time detaching and copying the file list, due to exporting it via the setValue() call on each file finished iteration. This was causing the install process to slow down, and also made the UI freeze, giving the impression that the install process had stopped. Add the file paths to a local list instead, and then call setValue when file extraction is complete. Profiling shows that the installer now spends 95% of its time extracting files on the ExctractArchiveOperation, thread and 5% on the main thread. Fixes: QTBUG-51337 Change-Id: Ieb4c44c03cb28eb46928730ca023f7419d72e45b Reviewed-by: Katja Marttila Reviewed-by: David Faure --- src/libs/installer/extractarchiveoperation.cpp | 8 +++++--- src/libs/installer/extractarchiveoperation.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp index c41f029e3..128327855 100644 --- a/src/libs/installer/extractarchiveoperation.cpp +++ b/src/libs/installer/extractarchiveoperation.cpp @@ -67,6 +67,8 @@ bool ExtractArchiveOperation::performOperation() connect(runnable, &Runnable::finished, &receiver, &Receiver::runnableFinished, Qt::QueuedConnection); + m_files.clear(); + QEventLoop loop; connect(&receiver, &Receiver::finished, &loop, &QEventLoop::quit); if (QThreadPool::globalInstance()->tryStart(runnable)) { @@ -77,6 +79,8 @@ bool ExtractArchiveOperation::performOperation() receiver.runnableFinished(true, QString()); } + setValue(QLatin1String("files"), m_files); + // TODO: Use backups for rollback, too? Doesn't work for uninstallation though. // delete all backups we can delete right now, remember the rest @@ -121,9 +125,7 @@ bool ExtractArchiveOperation::testOperation() */ void ExtractArchiveOperation::fileFinished(const QString &filename) { - QStringList files = value(QLatin1String("files")).toStringList(); - files.prepend(filename); - setValue(QLatin1String("files"), files); + m_files.prepend(filename); emit outputTextChanged(QDir::toNativeSeparators(filename)); } diff --git a/src/libs/installer/extractarchiveoperation.h b/src/libs/installer/extractarchiveoperation.h index 45c67a9cb..3e75a9bb9 100644 --- a/src/libs/installer/extractarchiveoperation.h +++ b/src/libs/installer/extractarchiveoperation.h @@ -56,6 +56,7 @@ private Q_SLOTS: void fileFinished(const QString &progress); private: + QStringList m_files; class Callback; class Runnable; class Receiver; -- cgit v1.2.3 From bc545c65836cf81533c54438f0113ff2a76bfd52 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Mon, 26 Feb 2018 12:36:04 +0200 Subject: Register virtual component for uninstall Task-number: QTIFW-1102 Change-Id: I5033f095eece1f1e588c00f518cf7d9d046c2003 Reviewed-by: Iikka Eklund --- examples/registervirtualcomponentforuninstall/README | 6 ++++++ .../config/config.xml | 10 ++++++++++ .../config/controller.qs | 9 +++++++++ .../packages/component/data/selectedcomponent | 0 .../packages/component/meta/package.xml | 8 ++++++++ .../data/registercomponent | 0 .../meta/package.xml | 9 +++++++++ .../registercomponentforinstall.pro | 13 +++++++++++++ src/libs/installer/packagemanagergui.cpp | 15 +++++++++++++++ src/libs/installer/packagemanagergui.h | 1 + 10 files changed, 71 insertions(+) create mode 100644 examples/registervirtualcomponentforuninstall/README create mode 100644 examples/registervirtualcomponentforuninstall/config/config.xml create mode 100644 examples/registervirtualcomponentforuninstall/config/controller.qs create mode 100644 examples/registervirtualcomponentforuninstall/packages/component/data/selectedcomponent create mode 100644 examples/registervirtualcomponentforuninstall/packages/component/meta/package.xml create mode 100644 examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/data/registercomponent create mode 100644 examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/meta/package.xml create mode 100644 examples/registervirtualcomponentforuninstall/registercomponentforinstall.pro diff --git a/examples/registervirtualcomponentforuninstall/README b/examples/registervirtualcomponentforuninstall/README new file mode 100644 index 000000000..930efa5ed --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/README @@ -0,0 +1,6 @@ +Shows how to register virtual component to uninstall in component script. + +Generate installer with + +binarycreator --offline-only -c config/config.xml -p packages installer + diff --git a/examples/registervirtualcomponentforuninstall/config/config.xml b/examples/registervirtualcomponentforuninstall/config/config.xml new file mode 100644 index 000000000..48b5c7438 --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/config/config.xml @@ -0,0 +1,10 @@ + + + Register Component to Uninstall Example + 1.0.0 + Register Component to Uninstall Example + Qt-Project + Qt IFW Examples + @HomeDir@/IfwExamples/registercomponenttouninstall + controller.qs + diff --git a/examples/registervirtualcomponentforuninstall/config/controller.qs b/examples/registervirtualcomponentforuninstall/config/controller.qs new file mode 100644 index 000000000..ba1e74651 --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/config/controller.qs @@ -0,0 +1,9 @@ +function Controller() { + +} + +Controller.prototype.ComponentSelectionPageCallback = function() { + + var page = gui.pageWidgetByObjectName("ComponentSelectionPage"); + page.addVirtualComponentToUninstall("component") +} diff --git a/examples/registervirtualcomponentforuninstall/packages/component/data/selectedcomponent b/examples/registervirtualcomponentforuninstall/packages/component/data/selectedcomponent new file mode 100644 index 000000000..e69de29bb diff --git a/examples/registervirtualcomponentforuninstall/packages/component/meta/package.xml b/examples/registervirtualcomponentforuninstall/packages/component/meta/package.xml new file mode 100644 index 000000000..9e02c2885 --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/packages/component/meta/package.xml @@ -0,0 +1,8 @@ + + + Component selected from script + This component is selected to uninstall in script + 1.0.0-1 + 2018-02-02 + true + diff --git a/examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/data/registercomponent b/examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/data/registercomponent new file mode 100644 index 000000000..e69de29bb diff --git a/examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/meta/package.xml b/examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/meta/package.xml new file mode 100644 index 000000000..431ff2441 --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/packages/org.qtproject.ifw.example.registercomponent/meta/package.xml @@ -0,0 +1,9 @@ + + + Registers component for install + Register a component for installation + 1.0.0-1 + 2013-01-01 + true + component + diff --git a/examples/registervirtualcomponentforuninstall/registercomponentforinstall.pro b/examples/registervirtualcomponentforuninstall/registercomponentforinstall.pro new file mode 100644 index 000000000..415df49d5 --- /dev/null +++ b/examples/registervirtualcomponentforuninstall/registercomponentforinstall.pro @@ -0,0 +1,13 @@ +TEMPLATE = aux + +INSTALLER = installer + +INPUT = $$PWD/config/config.xml $$PWD/packages +example.input = INPUT +example.output = $$INSTALLER +example.commands = ../../bin/binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT} +example.CONFIG += target_predeps no_link combine + +QMAKE_EXTRA_COMPILERS += example + +OTHER_FILES = README diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 5ee3d14fc..9ed02249f 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -2273,6 +2273,21 @@ void ComponentSelectionPage::allowCompressedRepositoryInstall() d->allowCompressedRepositoryInstall(); } +bool ComponentSelectionPage::addVirtualComponentToUninstall(const QString &name) +{ + PackageManagerCore *core = packageManagerCore(); + const QList allComponents = core->components(PackageManagerCore::ComponentType::All); + Component *component = PackageManagerCore::componentByName( + name, allComponents); + if (component && component->isInstalled() && component->isVirtual()) { + component->setCheckState(Qt::Unchecked); + core->componentsToInstallNeedsRecalculation(); + qDebug() << "Virtual component " << name << " was selected for uninstall by script."; + return true; + } + return false; +} + void ComponentSelectionPage::setModified(bool modified) { setComplete(modified); diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index 238e22a62..4694e723b 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -311,6 +311,7 @@ public: Q_INVOKABLE void selectComponent(const QString &id); Q_INVOKABLE void deselectComponent(const QString &id); Q_INVOKABLE void allowCompressedRepositoryInstall(); + Q_INVOKABLE bool addVirtualComponentToUninstall(const QString &name); protected: void entering(); -- cgit v1.2.3 From e56af0080f95d40fc8635d37d9ebd12fbefdb092 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Mon, 5 Nov 2018 12:32:24 +0200 Subject: Remove 'Your install seems to be corrupted' messagebox Messagebox is replaced with log. The critical messagebox is a bit harsh as you can continue using the installer despite of the 'corrupted install' message. 'Your install seems to be corrupted' can happen for number of reasons: the installer for some reason was not able to write the needed information to components.xml or maintenancetool.dat. Reason could be that the installer was forcely interrupted or crashed during write, or the files cannot be opened for write. 'Your install seems to be corrupted' occurs if components.xml contains an element which has no operations in maintenancetool.dat or vice versa. If you get an error "Critical: Operations missing from installed packages ("missing.package.name"), remove the package from components.xml to get rid of the log. Error: "Critical: Orphaned operations("package.name")" you can ignore Or you can install the package again if it is still found from repositories. Task-number: QTIFW-1003 Change-Id: I02c0a945ca3ce30ef4b0a80190d91638ab54c6bf Reviewed-by: Iikka Eklund --- src/libs/installer/packagemanagercore.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 0541cbeaa..b3c061bf7 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -433,6 +433,7 @@ void PackageManagerCore::writeMaintenanceTool() dropAdminRights(); d->m_needToWriteMaintenanceTool = false; } catch (const Error &error) { + qCritical() << "Error writing Maintenance Tool: " << error.message(); MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), QLatin1String("WriteError"), tr("Error writing Maintenance Tool"), error.message(), QMessageBox::Ok, QMessageBox::Ok); @@ -867,14 +868,9 @@ PackageManagerCore::PackageManagerCore(qint64 magicmaker, const QList Date: Tue, 6 Nov 2018 09:42:36 +0200 Subject: Prepare 3.0.6 release Change-Id: Ic85f7342a3a9963e03f6c7fc3efeabb9e49b6962 Reviewed-by: Antti Kokko --- Changelog | 12 ++++++++++++ dist/config/config.xml | 6 +++--- dist/packages/org.qtproject.ifw.binaries/meta/package.xml | 4 ++-- dist/packages/org.qtproject.ifw/meta/package.xml | 4 ++-- installerfw.pri | 4 ++-- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Changelog b/Changelog index e533861e3..1f3600c11 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,15 @@ +3.0.6 +- Remove 'Your install seems to be corrupted' messagebox (QTIFW-1003) +- Register virtual component for uninstall (QTIFW-1102) +- Optimize ExctractArchiveOperation::fileFinished() (QTBUG-51337) +- Do not reset core data values in restart (QTIFW-504) +- Fix maintenancetool writing in Windows (QTIFW-1096) +- Fix environment variables for XDG paths not being recognized (QTIFW-1043) +- Update german translation file (QTIFW-1084) +- Fix admin query retry (QTIFW-988, QTIFW-1173) +- Fix install fail if there is no metadata (QTIFW-1150) +- Reset meta information download result (QTIFW-1137) + 3.0.5 - Decrease metadata dowload amount (QTIFW-975) - Print component warnings only in verbose mode (QTIFW-975) diff --git a/dist/config/config.xml b/dist/config/config.xml index ca10c8ad2..ce452764f 100644 --- a/dist/config/config.xml +++ b/dist/config/config.xml @@ -1,13 +1,13 @@ Qt Installer Framework - Qt Installer Framework 3.0.5 - 3.0.5 + Qt Installer Framework 3.0.6 + 3.0.6 Qt Project http://qt-project.org watermark.png Uninstaller - @HomeDir@/Qt/QtIFW-3.0.5 + @HomeDir@/Qt/QtIFW-3.0.6 diff --git a/dist/packages/org.qtproject.ifw.binaries/meta/package.xml b/dist/packages/org.qtproject.ifw.binaries/meta/package.xml index 2529ba2f0..b6bec2fe9 100644 --- a/dist/packages/org.qtproject.ifw.binaries/meta/package.xml +++ b/dist/packages/org.qtproject.ifw.binaries/meta/package.xml @@ -2,7 +2,7 @@ Qt Installer Framework Binaries Installs the binaries, examples and help files. - 3.0.5 - 2018-06-01 + 3.0.6 + 2018-11-07 True diff --git a/dist/packages/org.qtproject.ifw/meta/package.xml b/dist/packages/org.qtproject.ifw/meta/package.xml index 371b0c973..8d66afbbe 100644 --- a/dist/packages/org.qtproject.ifw/meta/package.xml +++ b/dist/packages/org.qtproject.ifw/meta/package.xml @@ -2,8 +2,8 @@ Qt Installer Framework Installs the Qt Installer Framework. - 3.0.2 - 2017-11-21 + 3.0.6 + 2018-11-07 diff --git a/installerfw.pri b/installerfw.pri index 900ea211f..566d046f6 100644 --- a/installerfw.pri +++ b/installerfw.pri @@ -3,8 +3,8 @@ } IFW_PRI_INCLUDED = 1 -IFW_VERSION_STR = 3.0.5 -IFW_VERSION = 0x030005 +IFW_VERSION_STR = 3.0.6 +IFW_VERSION = 0x030006 IFW_REPOSITORY_FORMAT_VERSION = 1.0.0 IFW_NEWLINE = $$escape_expand(\\n\\t) -- cgit v1.2.3 From a5e471e55c82f23151f7751666cad7788300fa6d Mon Sep 17 00:00:00 2001 From: Brett Stottlemyer Date: Mon, 5 Nov 2018 05:41:48 -0500 Subject: Increase number of files allowed for macOS This addressed the following error: [29065] Critical: Error occurred while assembling the installer: Cannot open resource : Too many open files libc++abi.dylib: terminating with uncaught exception of type QInstaller::Error: std::exception Abort trap: 6 Kai from TQtC suggested the fix used in commit: 8f8800de7ab89e6cbc7b5eb08f2b3f16407e6cdf Applying it to binarycreator fixed the issue. Change-Id: I8e616ded94310d33824242ab52e1101b7f2ddafd Reviewed-by: Katja Marttila --- tools/binarycreator/binarycreator.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/binarycreator/binarycreator.cpp b/tools/binarycreator/binarycreator.cpp index 1d2faeace..e5f00761c 100644 --- a/tools/binarycreator/binarycreator.cpp +++ b/tools/binarycreator/binarycreator.cpp @@ -754,6 +754,13 @@ static int printErrorAndUsageAndExit(const QString &err) int main(int argc, char **argv) { +// increase maximum numbers of file descriptors +#if defined (Q_OS_MACOS) + struct rlimit rl; + getrlimit(RLIMIT_NOFILE, &rl); + rl.rlim_cur = qMin(static_cast(OPEN_MAX), rl.rlim_max); + setrlimit(RLIMIT_NOFILE, &rl); +#endif QCoreApplication app(argc, argv); QInstaller::init(); -- cgit v1.2.3 From 6fa963006558d0481a0dc4bf4194aa46675fd23e Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 21 Nov 2018 10:51:03 +0100 Subject: Doc: Fix copyright year in the online template Change-Id: I90677a09b14fdecd1871fced45e348f16d1b655c Reviewed-by: Katja Marttila --- doc/installerfw-online.qdocconf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/installerfw-online.qdocconf b/doc/installerfw-online.qdocconf index a13ad9df2..b93b52ef2 100644 --- a/doc/installerfw-online.qdocconf +++ b/doc/installerfw-online.qdocconf @@ -4,7 +4,7 @@ include(config/ifw.qdocconf) HTML.footer = \ " \n" \ "

\n" \ - " © 2017 The Qt Company Ltd.\n" \ + " © 2018 The Qt Company Ltd.\n" \ " Documentation contributions included herein are the copyrights of\n" \ " their respective owners. " \ " The documentation provided herein is licensed under the terms of the" \ -- cgit v1.2.3 From 19b0bb9c9ecaf5ba17fd08a6aad2e143a7965c3f Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Wed, 5 Dec 2018 10:25:00 +0200 Subject: Fix 'Bad allocation' error in Windows Due to bug in QTextDocument (QTBUG-65865), installer will crash if it will write a lot of logs to 'Details View' in 'PerformInstallationPage'. Fixed so that instead of writing all extracted filenames to log, write only the name of package which is extracted. This will reduce the huge amount of log written and thus prevents the 'Bad allocation' crash. Task-number: QTIFW-1242 Change-Id: I98ff0df25bcc10d0f7bb79d6c4010665b5e2ac51 Reviewed-by: Iikka Eklund --- src/libs/installer/extractarchiveoperation.cpp | 5 ++++- src/libs/installer/packagemanagercore_p.cpp | 9 +++++++-- src/sdk/translations/ifw_da.ts | 4 ++-- src/sdk/translations/ifw_de.ts | 4 ++-- src/sdk/translations/ifw_es.ts | 4 ++-- src/sdk/translations/ifw_fr.ts | 4 ++-- src/sdk/translations/ifw_it.ts | 4 ++-- src/sdk/translations/ifw_ja.ts | 4 ++-- src/sdk/translations/ifw_pl.ts | 4 ++-- src/sdk/translations/ifw_ru.ts | 4 ++-- src/sdk/translations/ifw_zh_CN.ts | 4 ++-- 11 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp index 128327855..12608a0d1 100644 --- a/src/libs/installer/extractarchiveoperation.cpp +++ b/src/libs/installer/extractarchiveoperation.cpp @@ -30,6 +30,7 @@ #include #include +#include namespace QInstaller { @@ -69,6 +70,9 @@ bool ExtractArchiveOperation::performOperation() m_files.clear(); + QFileInfo fileInfo(archivePath); + emit outputTextChanged(tr("Extracting \"%1\"").arg(fileInfo.fileName())); + QEventLoop loop; connect(&receiver, &Receiver::finished, &loop, &QEventLoop::quit); if (QThreadPool::globalInstance()->tryStart(runnable)) { @@ -126,7 +130,6 @@ bool ExtractArchiveOperation::testOperation() void ExtractArchiveOperation::fileFinished(const QString &filename) { m_files.prepend(filename); - emit outputTextChanged(QDir::toNativeSeparators(filename)); } } // namespace QInstaller diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index c20be0b78..167e806f8 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -1867,9 +1867,11 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr const int opCount = operations.count(); // show only components which do something, MinimumProgress is only for progress calculation safeness + bool showDetailsLog = false; if (opCount > 1 || (opCount == 1 && operations.at(0)->name() != QLatin1String("MinimumProgress"))) { - ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(tr("\nInstalling component %1") - .arg(component->displayName())); + ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(tr("\nInstalling component %1...") + .arg(component->displayName())); + showDetailsLog = true; } foreach (Operation *operation, operations) { @@ -1953,6 +1955,9 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr component->setInstalled(); component->markAsPerformedInstallation(); + + if (showDetailsLog) + ProgressCoordinator::instance()->emitDetailTextChanged(tr("Done")); } // -- private diff --git a/src/sdk/translations/ifw_da.ts b/src/sdk/translations/ifw_da.ts index 42a742217..dbe7fd826 100644 --- a/src/sdk/translations/ifw_da.ts +++ b/src/sdk/translations/ifw_da.ts @@ -1703,9 +1703,9 @@ Opdatering afbrudt! -Installing component %1 +Installing component %1... -Installerer komponenten %1 +Installerer komponenten %1... Installer Error diff --git a/src/sdk/translations/ifw_de.ts b/src/sdk/translations/ifw_de.ts index 1b0fdf8d5..347b17cec 100644 --- a/src/sdk/translations/ifw_de.ts +++ b/src/sdk/translations/ifw_de.ts @@ -1739,9 +1739,9 @@ Aktualisierung abgebrochen! -Installing component %1 +Installing component %1... -Komponente %1 wird installiert +Komponente %1 wird installiert... Installer Error diff --git a/src/sdk/translations/ifw_es.ts b/src/sdk/translations/ifw_es.ts index 1ce64b86e..5ad785ade 100644 --- a/src/sdk/translations/ifw_es.ts +++ b/src/sdk/translations/ifw_es.ts @@ -1422,9 +1422,9 @@ Uninstallation aborted! -Installing component %1 +Installing component %1... -Instalando componente %1 +Instalando componente %1... Installer Error diff --git a/src/sdk/translations/ifw_fr.ts b/src/sdk/translations/ifw_fr.ts index 905f090cf..c79aa1308 100644 --- a/src/sdk/translations/ifw_fr.ts +++ b/src/sdk/translations/ifw_fr.ts @@ -1892,9 +1892,9 @@ Mise à jour annulée ! -Installing component %1 +Installing component %1... -Installation du composant %1 +Installation du composant %1... Installer Error diff --git a/src/sdk/translations/ifw_it.ts b/src/sdk/translations/ifw_it.ts index 514013f57..7deb5f548 100644 --- a/src/sdk/translations/ifw_it.ts +++ b/src/sdk/translations/ifw_it.ts @@ -1885,9 +1885,9 @@ Update aborted! -Installing component %1 +Installing component %1... -Installazione componenti %1 +Installazione componenti %1... Installer Error diff --git a/src/sdk/translations/ifw_ja.ts b/src/sdk/translations/ifw_ja.ts index 321e445c2..f8c04e97e 100644 --- a/src/sdk/translations/ifw_ja.ts +++ b/src/sdk/translations/ifw_ja.ts @@ -1902,9 +1902,9 @@ Update aborted! -Installing component %1 +Installing component %1... -コンポーネントのインストール中: %1 +コンポーネントのインストール中: %1... Installer Error diff --git a/src/sdk/translations/ifw_pl.ts b/src/sdk/translations/ifw_pl.ts index 98af6f62d..64cd6ac7f 100644 --- a/src/sdk/translations/ifw_pl.ts +++ b/src/sdk/translations/ifw_pl.ts @@ -1895,9 +1895,9 @@ Przerwano uaktualnianie. -Installing component %1 +Installing component %1... -Instalacja komponentu %1 +Instalacja komponentu %1... Installer Error diff --git a/src/sdk/translations/ifw_ru.ts b/src/sdk/translations/ifw_ru.ts index 2783f3eef..f22b82dca 100644 --- a/src/sdk/translations/ifw_ru.ts +++ b/src/sdk/translations/ifw_ru.ts @@ -1708,9 +1708,9 @@ Update aborted! -Installing component %1 +Installing component %1... -Установка компонента %1 +Установка компонента %1... Installer Error diff --git a/src/sdk/translations/ifw_zh_CN.ts b/src/sdk/translations/ifw_zh_CN.ts index a826448d9..c2b55f9ec 100644 --- a/src/sdk/translations/ifw_zh_CN.ts +++ b/src/sdk/translations/ifw_zh_CN.ts @@ -1834,9 +1834,9 @@ Update aborted! -Installing component %1 +Installing component %1... -正在安装组件 %1 +正在安装组件 %1... Installer Error -- cgit v1.2.3