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/images/about-chromium.svg b/interface/resources/images/about-chromium.svg
new file mode 100644
index 0000000000..5eb9f6ad4b
--- /dev/null
+++ b/interface/resources/images/about-chromium.svg
@@ -0,0 +1,120 @@
+
+
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: