From 4dd31391a23ea68597861ce63005a1ce24a08e8e Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Tue, 21 Aug 2012 16:26:23 +0200 Subject: [PATCH] Qt Versions: Differentiate between qmlscene and qmlviewer Qt5 features both qmlviewer (QtQuick1) and qmlscene. We can't just assume that everybody wants to use qmlscene. Change-Id: I6668b7776869826575ce035f1e9ace47908013ff Reviewed-by: Daniel Teske <daniel.teske@nokia.com> --- .../qt-desktop/desktopqtversion.cpp | 2 ++ .../qt-desktop/simulatorqtversion.cpp | 2 ++ src/plugins/qtsupport/baseqtversion.cpp | 30 ++++++++++++------- src/plugins/qtsupport/baseqtversion.h | 4 ++- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp index 9f3b9a1cf45..64b15785404 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp @@ -71,6 +71,8 @@ QString DesktopQtVersion::type() const QStringList DesktopQtVersion::warningReason() const { QStringList ret = BaseQtVersion::warningReason(); + if (qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0) && qmlsceneCommand().isEmpty()) + ret << QCoreApplication::translate("Qt Version", "No qmlscene installed."); if (qtVersion() >= QtSupport::QtVersionNumber(4, 7, 0) && qmlviewerCommand().isEmpty()) ret << QCoreApplication::translate("QtVersion", "No qmlviewer installed."); return ret; diff --git a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp index fd114e78566..7619a25b15c 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp @@ -71,6 +71,8 @@ QString SimulatorQtVersion::type() const QStringList SimulatorQtVersion::warningReason() const { QStringList ret = BaseQtVersion::warningReason(); + if (qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0) && qmlsceneCommand().isEmpty()) + ret << QCoreApplication::translate("QtVersion", "No qmlscene installed."); if (qtVersion() >= QtSupport::QtVersionNumber(4, 7, 0) && qmlviewerCommand().isEmpty()) ret << QCoreApplication::translate("QtVersion", "No qmlviewer installed."); return ret; diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 82b1b585f94..76539bef173 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -601,6 +601,16 @@ QString BaseQtVersion::linguistCommand() const return m_linguistCommand; } +QString BaseQtVersion::qmlsceneCommand() const +{ + if (!isValid()) + return QString(); + + if (m_qmlsceneCommand.isNull()) + m_qmlsceneCommand = findQtBinary(QmlScene); + return m_qmlsceneCommand; +} + QString BaseQtVersion::qmlviewerCommand() const { if (!isValid()) @@ -619,6 +629,7 @@ QString BaseQtVersion::findQtBinary(Binaries binary) const } else { ensureMkSpecParsed(); switch (binary) { + case QmlScene: case QmlViewer: baseDir = m_mkspecValues.value(QLatin1String("QT.qml.bins")); break; @@ -642,22 +653,21 @@ QString BaseQtVersion::findQtBinary(Binaries binary) const QStringList possibleCommands; switch (binary) { - case QmlViewer: { - if (qtVersion() < QtVersionNumber(5, 0, 0)) { + case QmlScene: { #if defined(Q_OS_WIN) - possibleCommands << QLatin1String("qmlviewer.exe"); -#elif defined(Q_OS_MAC) - possibleCommands << QLatin1String("QMLViewer.app/Contents/MacOS/QMLViewer"); + possibleCommands << QLatin1String("qmlscene.exe"); #else - possibleCommands << QLatin1String("qmlviewer"); + possibleCommands << QLatin1String("qmlscene"); #endif - } else { + } + case QmlViewer: { #if defined(Q_OS_WIN) - possibleCommands << QLatin1String("qmlscene.exe"); + possibleCommands << QLatin1String("qmlviewer.exe"); +#elif defined(Q_OS_MAC) + possibleCommands << QLatin1String("QMLViewer.app/Contents/MacOS/QMLViewer"); #else - possibleCommands << QLatin1String("qmlscene"); + possibleCommands << QLatin1String("qmlviewer"); #endif - } } break; case Designer: diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index 36c833f76c0..674340c7a1b 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -138,6 +138,7 @@ public: virtual QString uicCommand() const; virtual QString designerCommand() const; virtual QString linguistCommand() const; + QString qmlsceneCommand() const; QString qmlviewerCommand() const; virtual QString qtVersionString() const; @@ -239,7 +240,7 @@ private: void ctor(const Utils::FileName &qmakePath); void updateSourcePath() const; void updateVersionInfo() const; - enum Binaries { QmlViewer, Designer, Linguist, Uic }; + enum Binaries { QmlViewer, QmlScene, Designer, Linguist, Uic }; QString findQtBinary(Binaries binary) const; void updateMkspec() const; void setId(int id); // used by the qtversionmanager for legacy restore @@ -276,6 +277,7 @@ private: mutable QString m_uicCommand; mutable QString m_designerCommand; mutable QString m_linguistCommand; + mutable QString m_qmlsceneCommand; mutable QString m_qmlviewerCommand; mutable bool m_qmakeIsExecutable; -- GitLab