From 43d95d0ece83054a829cbfb40c693752b619110a Mon Sep 17 00:00:00 2001 From: Vasily Date: Sun, 3 Nov 2019 17:34:43 +0100 Subject: [PATCH] Add icons for main menu buttons, ability for buttons in general The current interface is almost exclusively in written English. This makes usage of the program more difficult for people who can't distinguish English words, or remember specific VR/English technical terminology. Adding small icons to main menu items will make it easier for the aforementioned groups to use the application. This also adds the ability for buttons in general to have a custom icon, if necessary. --- .../img/main_menu_icons/audio_tab_icon.svg | 12 +++++++ .../img/main_menu_icons/bindings_tab_icon.svg | 14 ++++++++ .../main_menu_icons/chaperone_tab_icon.svg | 12 +++++++ .../img/main_menu_icons/motion_tab_icon.svg | 14 ++++++++ .../img/main_menu_icons/offsets_tab_icon.svg | 13 ++++++++ .../img/main_menu_icons/settings_tab_icon.svg | 17 ++++++++++ .../main_menu_icons/space_fix_tab_icon.svg | 12 +++++++ .../main_menu_icons/statistics_tab_icon.svg | 13 ++++++++ .../img/main_menu_icons/steamvr_tab_icon.svg | 12 +++++++ .../main_menu_icons/utilities_tab_icon.svg | 12 +++++++ .../img/main_menu_icons/video_tab_icon.svg | 12 +++++++ src/res/qml/RootPage.qml | 33 ++++++++++++------- src/res/qml/common/MyPushButton.qml | 10 ++++++ src/res/resources.qrc | 13 ++++++++ 14 files changed, 188 insertions(+), 11 deletions(-) create mode 100644 src/res/img/main_menu_icons/audio_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/bindings_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/chaperone_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/motion_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/offsets_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/settings_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/space_fix_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/statistics_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/steamvr_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/utilities_tab_icon.svg create mode 100644 src/res/img/main_menu_icons/video_tab_icon.svg 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