diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 0462ba2214..654c6d791f 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -21,7 +21,7 @@ set(CUSTOM_INTERFACE_QRC_PATHS "") find_package( Qt5 COMPONENTS - Gui Widgets Multimedia Network Qml Quick Script Svg + Gui Widgets Multimedia Network Qml Quick Script Svg WebEngineCore WebEngineWidgets ${PLATFORM_QT_COMPONENTS} WebChannel WebSockets ) @@ -292,7 +292,7 @@ target_link_libraries( ${TARGET_NAME} Qt5::Gui Qt5::Network Qt5::Multimedia Qt5::Widgets Qt5::Qml Qt5::Quick Qt5::Script Qt5::Svg - Qt5::WebChannel + Qt5::WebChannel Qt5::WebEngineCore Qt5::WebEngineWidgets ${PLATFORM_QT_LIBRARIES} ) diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index ca555a372a..42f962cfcc 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -98,6 +98,47 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter } Item { height: 1; width: 15 } + Image { + sourceSize.width: 34 + sourceSize.height: 25 + source: "../../../images/about-qt.png" + MouseArea { + anchors.fill: parent + onClicked: { + About.openUrl("https://www.qt.io/"); + } + } + } + RalewayRegular { + color: "white" + text: "Qt WebEngine " + About.qtWebEngineVersion + size: 12 + anchors.verticalCenter: parent.verticalCenter + } + } + Row { + spacing: 5 + Image { + sourceSize.width: 25 + sourceSize.height: 25 + source: "../../../images/about-chromium.svg" + MouseArea { + anchors.fill: parent + onClicked: { + About.openUrl("https://www.chromium.org/"); + } + } + } + RalewayRegular { + color: "white" + text: "Chromium " + About.qtChromiumVersion + size: 12 + anchors.verticalCenter: parent.verticalCenter + } + } + Row { + spacing: 5 + Image { sourceSize.width: 70 sourceSize.height: 26 @@ -109,9 +150,7 @@ Rectangle { size: 12 anchors.verticalCenter: parent.verticalCenter } - } - Row { - spacing: 5 + Image { sourceSize.width: 34 sourceSize.height: 25 diff --git a/interface/src/AboutUtil.cpp b/interface/src/AboutUtil.cpp index d2a00854b5..577f1c47f7 100644 --- a/interface/src/AboutUtil.cpp +++ b/interface/src/AboutUtil.cpp @@ -16,6 +16,8 @@ #include #include +#include +#include #include "BuildInfo.h" #include "DependencyManager.h" @@ -49,6 +51,26 @@ QString AboutUtil::getQtVersion() const { return qVersion(); } +QString AboutUtil::getQtWebEngineVersion() const { + return QTWEBENGINECORE_VERSION_STR; +} + +QString AboutUtil::getQtChromiumVersion() const { + // Qt unfortunately doesn't provide a conventient way of getting the Chromium version, + // and it seems internally it gets it from a constant specified on the compiler's command-line. + // + // It does include this constant into the default user agent though, so we can extract it from there. + QString version; + QString user_agent = QWebEngineProfile::defaultProfile()->httpUserAgent(); + for(const QString & text : user_agent.split(" ")){ + if(text.startsWith(QStringLiteral("Chrome/"))){ + version = text.mid(QStringLiteral("Chrome/").length()); + } + } + + return version; +} + void AboutUtil::openUrl(const QString& url) const { auto abboutUtilInstance = AboutUtil::getInstance(); if (!abboutUtilInstance) { diff --git a/interface/src/AboutUtil.h b/interface/src/AboutUtil.h index 12a7c49abc..1c46b8549b 100644 --- a/interface/src/AboutUtil.h +++ b/interface/src/AboutUtil.h @@ -32,6 +32,9 @@ * @property {string} buildVersion - The build version of Interface that is currently running. Read-only. * @property {string} releaseName - The release codename of the version that Interface is currently running. Read-only. * @property {string} qtVersion - The Qt version used in Interface that is currently running. Read-only. + * @property {string} qtWebEngineVersion - The Qt WebEngine version used in Interface that is currently running. Read-only. + * @property {string} qtChromiumVersion - The Qt Chromium version used in Interface that is currently running. Read-only. + * * * @example Report information on the version of Interface currently running. * print("Interface platform: " + About.platform); @@ -70,6 +73,9 @@ class AboutUtil : public QObject { Q_PROPERTY(QString buildVersion READ getBuildVersion CONSTANT) Q_PROPERTY(QString releaseName READ getReleaseName CONSTANT) Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT) + Q_PROPERTY(QString qtWebEngineVersion READ getQtWebEngineVersion CONSTANT) + Q_PROPERTY(QString qtChromiumVersion READ getQtChromiumVersion CONSTANT) + public: static AboutUtil* getInstance(); ~AboutUtil() {} @@ -79,6 +85,8 @@ public: QString getBuildVersion() const; QString getReleaseName() const; QString getQtVersion() const; + QString getQtWebEngineVersion() const; + QString getQtChromiumVersion() const; public slots: