diff --git a/src/plugins/qt4projectmanager/qmldumptool.cpp b/src/plugins/qt4projectmanager/qmldumptool.cpp index 0fc5411414f..e39956b8a14 100644 --- a/src/plugins/qt4projectmanager/qmldumptool.cpp +++ b/src/plugins/qt4projectmanager/qmldumptool.cpp @@ -126,7 +126,7 @@ static inline QStringList validBinaryFilenames() << QLatin1String("qmldump.app/Contents/MacOS/qmldump"); } -bool QmlDumpTool::canBuild(QtVersion *qtVersion) +bool QmlDumpTool::canBuild(const QtVersion *qtVersion) { const QString installHeaders = qtVersion->versionInfo().value("QT_INSTALL_HEADERS"); const QString header = installHeaders + QLatin1String("/QtDeclarative/private/qdeclarativemetatype_p.h"); diff --git a/src/plugins/qt4projectmanager/qmldumptool.h b/src/plugins/qt4projectmanager/qmldumptool.h index 3201f7ba3e6..6924690865b 100644 --- a/src/plugins/qt4projectmanager/qmldumptool.h +++ b/src/plugins/qt4projectmanager/qmldumptool.h @@ -47,7 +47,7 @@ class QtVersion; class QT4PROJECTMANAGER_EXPORT QmlDumpTool : public Utils::BuildableHelperLibrary { public: - static bool canBuild(QtVersion *qtVersion); + static bool canBuild(const QtVersion *qtVersion); static QString toolForProject(ProjectExplorer::Project *project); static QString toolByInstallData(const QString &qtInstallData); static QStringList locationsByInstallData(const QString &qtInstallData); diff --git a/src/plugins/qt4projectmanager/qmlobservertool.cpp b/src/plugins/qt4projectmanager/qmlobservertool.cpp index 1a456062af0..e444d89bbb6 100644 --- a/src/plugins/qt4projectmanager/qmlobservertool.cpp +++ b/src/plugins/qt4projectmanager/qmlobservertool.cpp @@ -51,7 +51,7 @@ static inline QStringList validBinaryFilenames() << QLatin1String("QMLObserver.app/Contents/MacOS/QMLObserver"); } -bool QmlObserverTool::canBuild(QtVersion *qtVersion) +bool QmlObserverTool::canBuild(const QtVersion *qtVersion) { return checkMinimumQtVersion(qtVersion->qtVersionString(), 4, 7, 1); } diff --git a/src/plugins/qt4projectmanager/qmlobservertool.h b/src/plugins/qt4projectmanager/qmlobservertool.h index 89cbca67460..78c8ffc5ae9 100644 --- a/src/plugins/qt4projectmanager/qmlobservertool.h +++ b/src/plugins/qt4projectmanager/qmlobservertool.h @@ -48,7 +48,7 @@ class QtVersion; class QT4PROJECTMANAGER_EXPORT QmlObserverTool : public Utils::BuildableHelperLibrary { public: - static bool canBuild(QtVersion *qtVersion); + static bool canBuild(const QtVersion *qtVersion); static QString toolForProject(ProjectExplorer::Project *project); static QString toolByInstallData(const QString &qtInstallData); static QStringList locationsByInstallData(const QString &qtInstallData); diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp index 01798677512..9c3d23dcd77 100644 --- a/src/plugins/qt4projectmanager/qtoptionspage.cpp +++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp @@ -33,6 +33,8 @@ #include "qt4projectmanagerconstants.h" #include "qt4target.h" #include "qtversionmanager.h" +#include "qmldumptool.h" +#include "qmlobservertool.h" #include #include @@ -238,7 +240,9 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList ver QIcon QtOptionsPageWidget::debuggerHelperIconForQtVersion(const QtVersion *version) { - if (version->hasDebuggingHelper() && version->hasQmlDump() && version->hasQmlObserver()) { + if (version->hasDebuggingHelper() + && (!QmlDumpTool::canBuild(version) || version->hasQmlDump()) + && (!QmlObserverTool::canBuild(version) || version->hasQmlObserver())) { return m_debuggingHelperOkIcon; } else if (!version->hasDebuggingHelper() && !version->hasQmlDump() && !version->hasQmlObserver()) { return m_debuggingHelperErrorIcon; @@ -248,7 +252,9 @@ QIcon QtOptionsPageWidget::debuggerHelperIconForQtVersion(const QtVersion *versi QPixmap QtOptionsPageWidget::debuggerHelperPixmapForQtVersion(const QtVersion *version) { - if (version->hasDebuggingHelper() && version->hasQmlDump() && version->hasQmlObserver()) { + if (version->hasDebuggingHelper() + && (!QmlDumpTool::canBuild(version) || version->hasQmlDump()) + && (!QmlObserverTool::canBuild(version) || version->hasQmlObserver())) { return m_debuggingHelperOkPixmap; } else if (!version->hasDebuggingHelper() && !version->hasQmlDump() && !version->hasQmlObserver()) { return m_debuggingHelperErrorPixmap; @@ -311,7 +317,9 @@ void QtOptionsPageWidget::debuggingHelperBuildFinished(const QString &name, cons QTC_ASSERT(item, return) item->setData(2, Qt::UserRole, output); QSharedPointerQtVersion qtVersion = m_versions.at(index); - const bool success = qtVersion->hasDebuggingHelper() && qtVersion->hasQmlDump() && qtVersion->hasQmlObserver(); + const bool success = qtVersion->hasDebuggingHelper() + && (!QmlDumpTool::canBuild(qtVersion.data()) || qtVersion->hasQmlDump()) + && (!QmlObserverTool::canBuild(qtVersion.data()) || qtVersion->hasQmlObserver()); item->setData(2, Qt::DecorationRole, debuggerHelperIconForQtVersion(qtVersion.data())); // Update bottom control if the selection is still the same @@ -404,12 +412,16 @@ static inline QString msgHtmlHelperToolTip(const QString &gdbHelperPath, const Q QString notFound = QtOptionsPageWidget::tr("Binary not found"); //: Tooltip showing the debugging helper library file. - return QtOptionsPageWidget::tr("" + return QtOptionsPageWidget::tr("
File:
%1
" + "" + "" "" "" + "" "" "" "" + "" "" "" "" @@ -432,12 +444,10 @@ void QtOptionsPageWidget::updateDebuggingHelperStateLabel(const QtVersion *versi { QString tooltip; if (version && version->isValid()) { - const bool hasHelpers = version->hasDebuggingHelper() && version->hasQmlDump() && version->hasQmlObserver(); m_ui->debuggingHelperStateLabel->setPixmap(debuggerHelperPixmapForQtVersion(version)); - if (hasHelpers) - tooltip = msgHtmlHelperToolTip(version->debuggingHelperLibrary(), - version->qmlDumpTool(), - version->qmlObserverTool()); + tooltip = msgHtmlHelperToolTip(version->debuggingHelperLibrary(), + version->qmlDumpTool(), + version->qmlObserverTool()); } else { m_ui->debuggingHelperStateLabel->setPixmap(QPixmap()); }
GDB debugging helpers
File:
%1
Last modified:%2
Size:%3 Bytes
QML type dumper
File:
%4
Last modified:%5
Size:%6 Bytes
QML observer
File:
%7
Last modified:%8
Size:%9 Bytes