summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Changelog3
-rw-r--r--src/libs/installer/packagemanagergui.cpp33
-rw-r--r--src/libs/installer/performinstallationform.cpp16
3 files changed, 35 insertions, 17 deletions
diff --git a/Changelog b/Changelog
index 8459518b9..f970841bc 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,6 @@
+2.0.1
+- Fix crash on exit for Windows XP, Vista (QTIFW-652)
+
2.0.0
- Require Qt 5.4 as a minimal version, Qt 4 code removed.
- Only support Qt 5 on documentation side as well.
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index 8e1712617..bf78ae572 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -1251,8 +1251,12 @@ IntroductionPage::IntroductionPage(PackageManagerCore *core)
m_updateComponents->setEnabled(ProductKeyCheck::instance()->hasValidKey());
#ifdef Q_OS_WIN
- m_taskButton = new QWinTaskbarButton(this);
- connect(core, SIGNAL(metaJobProgress(int)), m_taskButton->progress(), SLOT(setValue(int)));
+ if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
+ m_taskButton = new QWinTaskbarButton(this);
+ connect(core, SIGNAL(metaJobProgress(int)), m_taskButton->progress(), SLOT(setValue(int)));
+ } else {
+ m_taskButton = 0;
+ }
#endif
}
@@ -1299,14 +1303,16 @@ bool IntroductionPage::validatePage()
}
#ifdef Q_OS_WIN
- if (!m_taskButton->window()) {
- if (QWidget *widget = QApplication::activeWindow())
- m_taskButton->setWindow(widget->windowHandle());
- }
+ if (m_taskButton) {
+ if (!m_taskButton->window()) {
+ if (QWidget *widget = QApplication::activeWindow())
+ m_taskButton->setWindow(widget->windowHandle());
+ }
- m_taskButton->progress()->reset();
- m_taskButton->progress()->resume();
- m_taskButton->progress()->setVisible(true);
+ m_taskButton->progress()->reset();
+ m_taskButton->progress()->resume();
+ m_taskButton->progress()->setVisible(true);
+ }
#endif
// fetch updater packages
@@ -1359,7 +1365,8 @@ bool IntroductionPage::validatePage()
gui()->setSettingsButtonEnabled(true);
#ifdef Q_OS_WIN
- m_taskButton->progress()->setVisible(!isComplete());
+ if (m_taskButton)
+ m_taskButton->progress()->setVisible(!isComplete());
#endif
return isComplete();
}
@@ -1447,8 +1454,10 @@ void IntroductionPage::setErrorMessage(const QString &error)
m_errorLabel->setPalette(palette);
#ifdef Q_OS_WIN
- m_taskButton->progress()->stop();
- m_taskButton->progress()->setValue(100);
+ if (m_taskButton) {
+ m_taskButton->progress()->stop();
+ m_taskButton->progress()->setValue(100);
+ }
#endif
}
diff --git a/src/libs/installer/performinstallationform.cpp b/src/libs/installer/performinstallationform.cpp
index 24d06d59f..459e94591 100644
--- a/src/libs/installer/performinstallationform.cpp
+++ b/src/libs/installer/performinstallationform.cpp
@@ -89,8 +89,12 @@ PerformInstallationForm::PerformInstallationForm(QObject *parent)
, m_updateTimer(0)
{
#ifdef Q_OS_WIN
- m_taskButton = new QWinTaskbarButton(this);
- m_taskButton->progress()->setVisible(true);
+ if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
+ m_taskButton = new QWinTaskbarButton(this);
+ m_taskButton->progress()->setVisible(true);
+ } else {
+ m_taskButton = 0;
+ }
#endif
}
@@ -177,9 +181,11 @@ void PerformInstallationForm::updateProgress()
m_progressBar->setValue(progressPercentage);
#ifdef Q_OS_WIN
- if (!m_taskButton->window())
- m_taskButton->setWindow(QApplication::activeWindow()->windowHandle());
- m_taskButton->progress()->setValue(progressPercentage);
+ if (m_taskButton) {
+ if (!m_taskButton->window())
+ m_taskButton->setWindow(QApplication::activeWindow()->windowHandle());
+ m_taskButton->progress()->setValue(progressPercentage);
+ }
#endif
static QString lastLabelText;