diff --git a/src/res/img/main_menu_icons/audio_tab_icon.svg b/src/res/img/main_menu_icons/audio_tab_icon.svg
new file mode 100644
index 0000000..110df6f
--- /dev/null
+++ b/src/res/img/main_menu_icons/audio_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/bindings_tab_icon.svg b/src/res/img/main_menu_icons/bindings_tab_icon.svg
new file mode 100644
index 0000000..4526825
--- /dev/null
+++ b/src/res/img/main_menu_icons/bindings_tab_icon.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/chaperone_tab_icon.svg b/src/res/img/main_menu_icons/chaperone_tab_icon.svg
new file mode 100644
index 0000000..54c94c7
--- /dev/null
+++ b/src/res/img/main_menu_icons/chaperone_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/motion_tab_icon.svg b/src/res/img/main_menu_icons/motion_tab_icon.svg
new file mode 100644
index 0000000..a5b2ca8
--- /dev/null
+++ b/src/res/img/main_menu_icons/motion_tab_icon.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/offsets_tab_icon.svg b/src/res/img/main_menu_icons/offsets_tab_icon.svg
new file mode 100644
index 0000000..5c7d0d9
--- /dev/null
+++ b/src/res/img/main_menu_icons/offsets_tab_icon.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/settings_tab_icon.svg b/src/res/img/main_menu_icons/settings_tab_icon.svg
new file mode 100644
index 0000000..7079354
--- /dev/null
+++ b/src/res/img/main_menu_icons/settings_tab_icon.svg
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/space_fix_tab_icon.svg b/src/res/img/main_menu_icons/space_fix_tab_icon.svg
new file mode 100644
index 0000000..f9d375e
--- /dev/null
+++ b/src/res/img/main_menu_icons/space_fix_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/statistics_tab_icon.svg b/src/res/img/main_menu_icons/statistics_tab_icon.svg
new file mode 100644
index 0000000..d92e219
--- /dev/null
+++ b/src/res/img/main_menu_icons/statistics_tab_icon.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/steamvr_tab_icon.svg b/src/res/img/main_menu_icons/steamvr_tab_icon.svg
new file mode 100644
index 0000000..11f8ead
--- /dev/null
+++ b/src/res/img/main_menu_icons/steamvr_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/utilities_tab_icon.svg b/src/res/img/main_menu_icons/utilities_tab_icon.svg
new file mode 100644
index 0000000..59e5480
--- /dev/null
+++ b/src/res/img/main_menu_icons/utilities_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/img/main_menu_icons/video_tab_icon.svg b/src/res/img/main_menu_icons/video_tab_icon.svg
new file mode 100644
index 0000000..fcdccb5
--- /dev/null
+++ b/src/res/img/main_menu_icons/video_tab_icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/res/qml/RootPage.qml b/src/res/qml/RootPage.qml
index 9b1f6e8..798db2e 100644
--- a/src/res/qml/RootPage.qml
+++ b/src/res/qml/RootPage.qml
@@ -28,8 +28,9 @@ MyStackViewPage {
spacing: 10
MyPushButton {
id: steamVRButton
+ iconPath: "qrc:/main_menu_icons/steamvr_tab_icon"
activationSoundEnabled: false
- text: "SteamVR"
+ text: " SteamVR"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -39,8 +40,9 @@ MyStackViewPage {
MyPushButton {
id: chaperoneButton
+ iconPath: "qrc:/main_menu_icons/chaperone_tab_icon"
activationSoundEnabled: false
- text: "Chaperone"
+ text: " Chaperone"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -50,8 +52,9 @@ MyStackViewPage {
MyPushButton {
id: playSpaceButton
+ iconPath: "qrc:/main_menu_icons/offsets_tab_icon"
activationSoundEnabled: false
- text: "Offsets"
+ text: " Offsets"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -61,8 +64,9 @@ MyStackViewPage {
MyPushButton {
id: motionButton
+ iconPath: "qrc:/main_menu_icons/motion_tab_icon"
activationSoundEnabled: false
- text: "Motion"
+ text: " Motion"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -72,8 +76,9 @@ MyStackViewPage {
MyPushButton {
id: fixFloorButton
+ iconPath: "qrc:/main_menu_icons/space_fix_tab_icon"
activationSoundEnabled: false
- text: "Space Fix"
+ text: " Space Fix"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -83,8 +88,9 @@ MyStackViewPage {
MyPushButton {
id: audioButton
+ iconPath: "qrc:/main_menu_icons/audio_tab_icon"
activationSoundEnabled: false
- text: "Audio"
+ text: " Audio"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -94,8 +100,9 @@ MyStackViewPage {
MyPushButton {
id: videoButton
+ iconPath: "qrc:/main_menu_icons/video_tab_icon"
activationSoundEnabled: false
- text: "Video"
+ text: " Video"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -105,8 +112,9 @@ MyStackViewPage {
MyPushButton {
id: utilitiesButton
+ iconPath: "qrc:/main_menu_icons/utilities_tab_icon"
activationSoundEnabled: false
- text: "Utilities"
+ text: " Utilities"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -127,8 +135,9 @@ MyStackViewPage {
MyPushButton {
id: statisticsButton
+ iconPath: "qrc:/main_menu_icons/statistics_tab_icon"
activationSoundEnabled: false
- text: "Statistics"
+ text: " Statistics"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -143,8 +152,9 @@ MyStackViewPage {
MyPushButton {
id: bindingsButton
+ iconPath: "qrc:/main_menu_icons/bindings_tab_icon"
activationSoundEnabled: false
- text: "Bindings"
+ text: " Bindings"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
@@ -154,8 +164,9 @@ MyStackViewPage {
MyPushButton {
id: settingsButton
+ iconPath: "qrc:/main_menu_icons/settings_tab_icon"
activationSoundEnabled: false
- text: "Settings"
+ text: " Settings"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
diff --git a/src/res/qml/common/MyPushButton.qml b/src/res/qml/common/MyPushButton.qml
index cd55ad8..4784575 100644
--- a/src/res/qml/common/MyPushButton.qml
+++ b/src/res/qml/common/MyPushButton.qml
@@ -3,6 +3,10 @@ import QtQuick.Controls 2.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
Button {
+ // Overload this
+ // Empty string = no icon
+ property string iconPath: ""
+
property bool activationSoundEnabled: true
hoverEnabled: true
contentItem: MyText {
@@ -15,6 +19,12 @@ Button {
color: parent.down ? "#406288" : (parent.activeFocus ? "#365473" : "#2c435d")
}
+ Image {
+ source: iconPath
+ height: parent.height
+ width: height
+ }
+
onHoveredChanged: {
if (hovered) {
forceActiveFocus()
diff --git a/src/res/resources.qrc b/src/res/resources.qrc
index 22cbb86..782a64c 100644
--- a/src/res/resources.qrc
+++ b/src/res/resources.qrc
@@ -20,4 +20,17 @@
img/bindings/bindings.png
+
+ img/main_menu_icons/audio_tab_icon.svg
+ img/main_menu_icons/bindings_tab_icon.svg
+ img/main_menu_icons/chaperone_tab_icon.svg
+ img/main_menu_icons/motion_tab_icon.svg
+ img/main_menu_icons/offsets_tab_icon.svg
+ img/main_menu_icons/settings_tab_icon.svg
+ img/main_menu_icons/space_fix_tab_icon.svg
+ img/main_menu_icons/statistics_tab_icon.svg
+ img/main_menu_icons/steamvr_tab_icon.svg
+ img/main_menu_icons/utilities_tab_icon.svg
+ img/main_menu_icons/video_tab_icon.svg
+
\ No newline at end of file