diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp index ed2a1669e49e132d8ae6686ff46012f84548deab..26b27def1c608ac0f504151da504294a9185672d 100644 --- a/src/plugins/qt4projectmanager/qtoptionspage.cpp +++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp @@ -188,7 +188,7 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<QtVersion *> ver item->setText(1, QDir::toNativeSeparators(version->qmakeCommand())); item->setData(0, Qt::UserRole, version->uniqueId()); - if (version->isValid()) + if (version->isValid() && version->supportsBinaryDebuggingHelper()) item->setData(2, Qt::DecorationRole, version->hasDebuggingHelper() ? m_debuggingHelperOkIcon : m_debuggingHelperErrorIcon); else item->setData(2, Qt::DecorationRole, QIcon()); @@ -447,6 +447,14 @@ void QtOptionsPageWidget::makeS60Visible(bool visible) m_ui->gccePath->setVisible(visible); } +void QtOptionsPageWidget::makeDebuggingHelperVisible(bool visible) +{ + m_ui->debuggingHelperLabel->setVisible(visible); + m_ui->debuggingHelperStateLabel->setVisible(visible); + m_ui->showLogButton->setVisible(visible); + m_ui->rebuildButton->setVisible(visible); +} + void QtOptionsPageWidget::showEnvironmentPage(QTreeWidgetItem *item) { if (item) { @@ -456,11 +464,13 @@ void QtOptionsPageWidget::showEnvironmentPage(QTreeWidgetItem *item) makeMSVCVisible(false); makeMingwVisible(false); makeS60Visible(false); + makeDebuggingHelperVisible(false); return; } const QSharedPointerQtVersion qtVersion = m_versions.at(index); QList<ProjectExplorer::ToolChain::ToolChainType> types = qtVersion->possibleToolChainTypes(); QSet<QString> targets = qtVersion->supportedTargetIds(); + makeDebuggingHelperVisible(qtVersion->supportsBinaryDebuggingHelper()); if (types.isEmpty()) { makeMSVCVisible(false); makeMingwVisible(false); @@ -528,6 +538,7 @@ void QtOptionsPageWidget::showEnvironmentPage(QTreeWidgetItem *item) makeMSVCVisible(false); makeMingwVisible(false); makeS60Visible(false); + makeDebuggingHelperVisible(false); } } @@ -668,7 +679,7 @@ void QtOptionsPageWidget::updateCurrentQMakeLocation() currentItem->setText(1, QDir::toNativeSeparators(version->qmakeCommand())); showEnvironmentPage(currentItem); - if (version->isValid()) { + if (version->isValid() && version->supportsBinaryDebuggingHelper()) { const bool hasLog = !currentItem->data(2, Qt::UserRole).toString().isEmpty(); currentItem->setData(2, Qt::DecorationRole, version->hasDebuggingHelper() ? m_debuggingHelperOkIcon : m_debuggingHelperErrorIcon); m_ui->showLogButton->setEnabled(hasLog); diff --git a/src/plugins/qt4projectmanager/qtoptionspage.h b/src/plugins/qt4projectmanager/qtoptionspage.h index 517d0a28524476cdc07bcde903a08613a104f2f4..5f066880c0b2bb439abcaf3ec05ae387b29f40ac 100644 --- a/src/plugins/qt4projectmanager/qtoptionspage.h +++ b/src/plugins/qt4projectmanager/qtoptionspage.h @@ -112,6 +112,7 @@ private slots: void makeMingwVisible(bool visible); void makeMSVCVisible(bool visible); void makeS60Visible(bool visible); + void makeDebuggingHelperVisible(bool visible); void onQtBrowsed(); void onMingwBrowsed(); void updateCurrentQtName(); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 7eef15ae73eef16b81076c3b71795ae0ea6e50ac..89db84c148a7a661ea92ab70f2606d06bb87963d 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -1550,6 +1550,20 @@ QStringList QtVersion::debuggingHelperLibraryLocations() const return DebuggingHelperLibrary::debuggingHelperLibraryLocationsByInstallData(qtInstallData); } +bool QtVersion::supportsBinaryDebuggingHelper() const +{ + QList<ProjectExplorer::ToolChain::ToolChainType> types = possibleToolChainTypes(); + if (types.contains(ProjectExplorer::ToolChain::GCC) + || types.contains(ProjectExplorer::ToolChain::LINUX_ICC) + || types.contains(ProjectExplorer::ToolChain::MSVC) + || types.contains(ProjectExplorer::ToolChain::WINCE) + || types.contains(ProjectExplorer::ToolChain::GCC_MAEMO) + || types.contains(ProjectExplorer::ToolChain::OTHER) + || types.contains(ProjectExplorer::ToolChain::UNKNOWN)) + return true; + return false; +} + bool QtVersion::hasDocumentation() const { updateVersionInfo(); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 6f5e613bc8ae282bdbce6c1d9d7e3bb92c69a46c..68e155348f955bfe901d75b2ed092d89bfeb9e2f 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -108,6 +108,7 @@ public: bool hasDebuggingHelper() const; QString debuggingHelperLibrary() const; QStringList debuggingHelperLibraryLocations() const; + bool supportsBinaryDebuggingHelper() const; // Builds a debugging library // returns the output of the commands