diff options
-rw-r--r-- | Changelog | 3 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 33 | ||||
-rw-r--r-- | src/libs/installer/performinstallationform.cpp | 16 |
3 files changed, 35 insertions, 17 deletions
@@ -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; |