summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-12-05 10:25:00 +0200
committerKatja Marttila <katja.marttila@qt.io>2018-12-05 09:35:18 +0000
commit19b0bb9c9ecaf5ba17fd08a6aad2e143a7965c3f (patch)
tree0a19914adbe0da67ffbe87553deab24570d2d34f /src/libs/installer/packagemanagercore_p.cpp
parent6fa963006558d0481a0dc4bf4194aa46675fd23e (diff)
Fix 'Bad allocation' error in Windows3.0.63.0
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 <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp9
1 files changed, 7 insertions, 2 deletions
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