diff --git a/Readme.md b/Readme.md index 462ecb7..2f89888 100644 --- a/Readme.md +++ b/Readme.md @@ -21,6 +21,7 @@ Adds an overlay to the OpenVR dashboard that allows access to advanced settings * [AppImage](#appimage) * [Arch/Manjaro](#archmanjaro) * [Building from Source](#building-from-source) + * [Guides](#guides) * [Bindings](#bindings) * [Music](#music) * [Motion](#motion) @@ -33,7 +34,6 @@ Adds an overlay to the OpenVR dashboard that allows access to advanced settings * [WMR](#wmr) * [Touch](#touch) * [Other Controllers](#other-controllers) - * [SteamVR Input Guide](#steamvr-input-guide) * [Command Line Arguments](#command-line-arguments) * [INI File Options](#ini-file-options) * [Preview builds](#preview-builds) @@ -80,7 +80,8 @@ Do all this without leaving VR: - Advanced Space Features: gravity, space-turn, and space-drag - Control media players (Pause/Play, Next Song, Previous Song, Stop). - Send keyboard inputs (like Alt+Tab, Alt+Enter, Backspace, etc.). -- Bind VR controller buttons to send keyboard inputs (for example to mute VOIP applications while in VR). [Tutorial](docs/keyboard_input_guide.md). +- Bind VR controller buttons to send keyboard inputs (for example to mute VOIP applications while in VR). +- Center Marker with rotation indicator. - All the above also available from a window on the desktop. # Usage @@ -120,9 +121,23 @@ Manjaro users can [enable](https://wiki.manjaro.org/index.php/Arch_User_Reposito Detailed instructions are available [here](docs/building_for_linux.md). +## Guides + +### Overall Feature Overview Guides + +- [Kung's 3.0 New Feature Guide (video/youtube)[https://youtu.be/2ZHdjOfnqOU)] + +### SteamVR Input System (keybinds for app) + +- [Steam VR Input System (text)](docs/SteamVRInputGuide.md) + +### Keyboard Binding System + +- [Keyboard Input Guide (text)](docs/keyboard_input_guide.md) + ## Bindings -For information on how to properly set-up bindings see: [SteamVR Input Guide](#steamvr-input-guide) +For information on how to properly set-up bindings see: [SteamVR Input System Guide](#guides) The following actions currently exist: ### Music @@ -174,10 +189,10 @@ Actions that don't have a clear category. | Y-Axis Lock Toggle | Binary/Button | Toggles the lock of the Y-Axis for offsets.| | Z-Axis Lock Toggle | Binary/Button | Toggles the lock of the Z-Axis for offsets.| | Chaperone Toggle | Binary/Button | Toggles the chaperone on/off. | -| Push to Talk | Binary/Button | Acts as starter for PTT, can mute if push-to-mute is selected.| | Keyboard Shortcut One | Binary/Button | Sends the key sequence defined the the settings file. Defaults to Ctrl+Shift+M (Discord default toggle mute). | | Keyboard Shortcut Two | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. | | Keyboard Shortcut Three | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. | +| Key Press Misc | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 | ### System. @@ -187,8 +202,10 @@ Actions That will stay active regardless of the situation. | Action | Type | Explanation | | ------------- | ------------- | ------------ | +| Push to Talk | Binary/Button | Acts as starter for PTT, can mute if push-to-mute is selected.| | Add Left Haptic Click | Binary/Button | simulates a "click" with controller haptics. (left hand) | Add Right Haptic Click | Binary/Button | simulates a "click" with controller haptics. (right hand) +| Key Press System | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 | ### Haptics. @@ -247,12 +264,6 @@ These Actions are Hidden, They are bound by default. They allow the application No current default bindings you will have to make your own. -## SteamVR Input Guide - -A Guide to the SteamVR Input System can be found [here](docs/SteamVRInputGuide.md) - -**Or** a Video guide by Kung can be found [here](https://youtu.be/2ZHdjOfnqOU) - ## Command Line Arguments The application (`AdvancedSettings.exe`) can be run with the following optional arguments: @@ -267,6 +278,8 @@ The application (`AdvancedSettings.exe`) can be run with the following optional `"--force-remove-manifest"`: Force uninstalls the `.vrmanifest`. This should be done every time the application is uninstalled. On Windows it is automatically done by the uninstaller. The program will exit early when this flag is set. +`"--reset-steamvr-settings"`: Resets the SteamVR settings we adjust to Steam's Default Values. + ## INI File Options There are some features that can only be enabled by directly specifying them in the .ini file. On windows the .ini file can be found at `Users\username\AppData\Roaming\AdvancedSettings-Team\OpenVRAdvancedSettings.ini`. @@ -285,7 +298,7 @@ Under `[applicationSettings]` adding `enableDebug=true` will show a "Debug State ## Preview builds -If you want to try latest and greatest unreleased features, you can download the latest from the CI (Continuous Integration) server for [Windows](https://ci.appveyor.com/project/icewind1991/openvr-advancedsettings/branch/master) and [Linux](https://circleci.com/gh/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings) (`gcc` build, CircleCI issue requires login to see artifact tab). +If you want to try latest and greatest unreleased features, you can download the latest from the CI (Continuous Integration) server for [Windows](https://ci.appveyor.com/project/OVRAdvancedSettings/openvr-advancedsettings/branch/master)and [Linux](https://circleci.com/gh/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings) (`gcc` build, CircleCI issue requires login to see artifact tab). These version are not stable and this should be considered for advanced users only. @@ -315,7 +328,6 @@ These version are not stable and this should be considered for advanced users on - **Camera for Bounds**: Your camera view will replace your vr view as you near/exit chaperone - **Camera for Dashboard**: You will have a small camera view attached to your controller when you have the dashboard active. - **Camera for Room View**: You will have a Tron/Shadow version of the room when double-clicking system button. -- **Desktop Overlay Width**: Adjusts teh width of Steam's desktop overlay. - **Restart SteamVR**: Restart SteamVR (May crash the Steam overlay when SteamVR Home is running when you restart. Therefore I advice that you close SteamVR Home before restarting). ## - Chaperone Page @@ -334,6 +346,17 @@ These version are not stable and this should be considered for advanced users on - **Rotate Orientation**: Rotates the orientation by a set amount. - **Reload from Disk**: Reloads the chaperone bounds geometry from disk. +## - Additional Chaperone Settings Page + +Chaperone Additional Page + +- **Chaperone Color**: Adjust the R, G, and B color channels of the chaperone. +- **Chaperone Styles**: Adjust the appearance of the Chaperone. +- **Misc:** + - **Floor Bounds Always On**: Forces floor bounds to always show. + - **Legacy Center Marker**: Old Center Marker, does not move with motion or indicate rotation. + - **Reset Turn Counter**: Re-zero's turn counter for center marker turn indicators, based on current HMD orientation. + ## - Chaperone Proximity Warning Settings Page Chaperone Proximity Warning Settings Page @@ -486,7 +509,10 @@ Allows users to temporarily move and rotate the center of the playspace. This al - **Enable Motion Features When in Seated Mode:** Uncheck this if Advanced Settings causes strange positioning in a seated application. (Different apps handle seated mode in different ways, some are less compatible with Advanced Settings). Note: if unchecked, all Space Offsets and Motion tab features will be disabled. - **Disable Automatic Crash Recovery of Chaperone Config:** This prevents applying of the last good autosaved chaperone profile when starting up after not shutting down properly. - **Disable Notification of Newer Version Availability**: This turns off the on start-up check for a new version. (You can refresh this to do a manual check.) +- **Force Use SteamVR Chaperone**: This feature is currently experimental, when using third party headsets this will allow you to use SteamVR's chaperone, as if it was a native headset. +- **Force Use SteamVR (Disable Oculus API)**: This feature is currently experimental, it should disable Oculus API preventing games with both SteamVR and Oculus API to only run as SteamVR - **Disable App Vsync:** Allows setting a custom base update rate for Advanced Settings. (Might be useful on HMDs with very high or very low refresh rates). +- **Shutdown OVRAS** Shuts-Down Advanced Settings without closing out of VR. # How to Compile diff --git a/docs/keyboard_input_guide.md b/docs/keyboard_input_guide.md index 91b130d..5fa2138 100644 --- a/docs/keyboard_input_guide.md +++ b/docs/keyboard_input_guide.md @@ -1,55 +1,128 @@ -## Sending keypresses from VR to the desktop +# Keyboard Input Guide -The `Keyboard Shortcut One`, `Keyboard Shortcut Two` and `Keyboard Shortcut Three` actions under the `misc` tab will send the currently configured key sequence to the operating system. +## Capabilities + We provide two distinct types of functionality, `Keyboard Shortcut`'s [macros] and `Key Press`'s [individual key press] + +### Keyboard Shortcuts + +- Sends One or Many keys to the OS like a macro. +- Cannot `hold` keys down + - Except in the case of Modifiers (alt, ctrl, etc.) -The default keybinding for all three actions is `Ctrl+Shift+M`, which mutes your microphone in Discord (unless you've changed it). -This sequence can be changed to anything you want, as described in the [spec](specs/Keyboard_Manager-Parser_Spec.md). -An easier to read version of the spec can be found below. +### Key Press -The hotkeys can for example be configured to run an AutoHotKey script or mute VOIP applications. +- Sends One and only One key to the OS. + - Extra Keys Will be Ignored +- Mirrors button state on controller + - If you hold down `a` on a controller the `key` will be held down + - If you release `a` on a controller the `key` will be released +- `Key Press System` + - This Action will ALWAYS be use-able while OVRAS is running +- `Key Press Misc.` + - This Action MAY not always be use-able depending on other Settings/Binds* + - Pending a future update. -### Changing the key sequences +## How To Set -Currently, the only way to change which sequences are run when the bindings are activated is directly through the settings file. +- Go to the Settings File + - Windows: `%Appdata%\AdvancedSettings-Team` (`C:\Users\\AppData\Roaming\AdvancedSettings-Team`) + - Linux: `~/.config/AdvancedSettings-Team/` +- open `OVR Advanced Settings.ini` with a text editor +- Go to `[keyboardShortcuts]` +- Add your sequence right after the `=` for the action you want. + - By Default Keyboard's are set to ctrl+shift+m `^>m` + - By Default Key Press's are set to F9 `F9` + - Example for ctrl+alt+delete for keyboardOne Action + - `keyboardOne=^*DEL` + - Example for Key Press System for a` + - `keyPressSystem=a` + +## Supported Keys -On Windows the settings file can be found in `%APPDATA%\AdvancedSettings-Team` (copy paste this into Explorer or the Run command). +### Modifier symbols -On Linux the settings file can be found in `~/.config/AdvancedSettings-Team/`. +| Modifier | Symbol | +|---|---| +| Ctrl | `^` | +| Alt | `*` | +| Shift | `>` | +| Super (Windows) | `#` | -The `OpenVRAdvancedSettings.ini` file will contain a heading like -``` -[keyboardShortcuts] -keyboardOne=^>m -keyboardTwo=^>m -keyboardThree=^>m -``` -The character _after_ the `=` will be run when the related binding is activated. -The above key sequence for all bindings is `^>m` (`Ctrl+Shift+M`). -An empty binding (no input will be run) would be `keyboardOne=`. +### Literal symbols -### Simple Configuration +| Key | Symbol | +|---|---| +| A to Z | The letter in lowercase. `a`, `b`, `c`, ... | +| Number Row 0-9 | The number. `0`, `1`, `2`, ... | +| Function keys F1-F9 | Capital F followed by number. `F1`, `F2`, `F3`, ... | +| Backspace | `BACKSPACE` | +| Space | `SPACE` | +| Tab | `TAB` | +| Escape | `ESC` | +| Insert | `INS` | +| Delete | `DEL` | +| End | `END` | +| Page Down | `PGDN` | +| Page Up | `PGUP` | +| Caps Lock | `CAPS` | +| Print Screen | `PRNSCRN` | +| Pause/Break | `PAUSE` | +| Scroll Lock | `SCRLOCK` | +| Left Arrow | `LEFTARROW` | +| Right Arrow | `RIGHTARROW` | +| Up Arrow | `UPARROW` | +| Down Arrow | `DOWNARROW` | +| Keypad Slash | `KPSLASH` | +| Keypad Asterisk | `KPSTAR` | +| Keypad Minus | `KPMINUS` | +| Keypad Plus | `KPPLUS` | +| Enter | `ENTER` | -Simply changing the last key of the default bindings should be enough for most people. -Remember that you will also need to set up the application (Discord, Mumble, TeamSpeak, etc.) to respond to the key sequence. -Single characters _must_ be lower case. -If you enter them as uppercase it will be treated as an error, and only correct keys up to the error point will be sent to the OS. -The default configuration is `^>m` for all bindings. Change the letter (`m`) to the character you want. -For example, if you want Keyboard Shortcut Two to be `Ctrl+Shift+X` you would write `keyboardTwo=^>x`. -If you just want it to be `Ctrl+X` you would remove the `>` symbol and just write `keyboardTwo=^m`. +### Misc symbols +| Action | Symbol | +|---|---| +| Release Held Keys | ` ` (literal space or end of string) | -Notice that all pressed keys are released again when the sequence is over. -It is not possible to hold down keys. -### Advanced Configuration +## Examples -Look at the key table [spec](specs/Keyboard_Manager-Parser_Spec.md) and find the keys that you want to press. +### Keyboard Examples -Notice that single characters (a, b, c, etc.) are lower case, while buttons are uppercase (ENTER, END, ESC, etc.). -If you enter single letters as upper case it will not work. -Buttons are pressed and released immediately, modifiers are held until there's a space in the sequence or the sequence ends. +| Sequence | String | Key Representation | +|---|---|---| +| Ctrl + H | `^h` | Ctrl+, h+, h-, Ctrl- | +| Ctrl + H + H | `^hh` | Ctrl+, h+, h-, h+, h-, Ctrl- | +| Ctrl + H twice | `^h ^h` | Ctrl+, h+, h-, Ctrl-, Ctrl+, h+, h-, Ctrl- | +| Ctrl + Alt + Delete | `^*DEL` | Ctrl+, Alt+, DEL+, DEL-, Ctrl-, Alt- | +| Alt + Enter | `*ENTER` | Alt+, ENTER+, ENTER-, Alt- | +| H + E + L + P | `help` | h+, h-, e+, e-, l+, l-, p+, p- | +| E + N + D | `end` | e+, e-, n+, n-, d+, d- | +| END Button | `END` | END+, END- | +| Alt + Shift + ENTER | `*>ENTER` | Alt+, Shift+, ENTER+, ENTER-, Alt-, Shift- | +| Alt + Tab + G + G + ENTER + Alt + Tab | `*TAB gg ENTER *TAB` | Alt+, Tab+, Tab-, Alt-, g+, g-, g+, g-, ENTER+, ENTER-, Alt+, Tab+, Tab-, Alt- | -The modifier keys should come before the "real" button inputs. -`^m` (`Ctrl+M` (Ctrl is held down, M is pressed and released, Ctrl is released)) is _not_ the same as `m^` (`M+Ctrl` (M is pressed and released, Ctrl is pressed and released)). -Spaces mean that all currently held modifier keys are released and that a new sequence is ready to be parsed. For example `^a ^a` would press `Ctrl+A` two times. +### Key Press Examples + +| Sequence | String | Key Rep On Press | Key Rep on Release +|---|---|---|---| +| Ctrl | `^` | Ctrl+ | Ctrl- | +| H | `h` | h+ | h- | +| Ctrl + H | `^h` | Ctrl+ | Ctrl- | + + +## Common Issues + +### Case Sensative +- basic characters are all LOWER case, while keys such as ENTER are all UPPER case. + +### Focus Issues +- we deliver the keypress to the OS, depending on your set-up and program you may have to have the window "in-focus" + +### Multiple Key Events +- you must separate multiple events with a space (` `) + - alt + tab, alt + F4 = `*TAB *F4` + +## Parser Spec +(Parser Spec)[https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/blob/master/docs/specs/Keyboard_Manager-Parser_Spec.md] diff --git a/docs/screenshots/ChaperoneAdditionalPage.png b/docs/screenshots/ChaperoneAdditionalPage.png new file mode 100644 index 0000000..4004f1a Binary files /dev/null and b/docs/screenshots/ChaperoneAdditionalPage.png differ diff --git a/docs/screenshots/ChaperonePage.png b/docs/screenshots/ChaperonePage.png index 97f5549..aaf8a92 100644 Binary files a/docs/screenshots/ChaperonePage.png and b/docs/screenshots/ChaperonePage.png differ diff --git a/docs/screenshots/RootPage.png b/docs/screenshots/RootPage.png index 98e032b..689baf5 100644 Binary files a/docs/screenshots/RootPage.png and b/docs/screenshots/RootPage.png differ diff --git a/docs/screenshots/RotationPage.png b/docs/screenshots/RotationPage.png index 3c11eaa..76819cd 100644 Binary files a/docs/screenshots/RotationPage.png and b/docs/screenshots/RotationPage.png differ diff --git a/docs/screenshots/SettingsPage.png b/docs/screenshots/SettingsPage.png index c18adbc..38cdb65 100644 Binary files a/docs/screenshots/SettingsPage.png and b/docs/screenshots/SettingsPage.png differ diff --git a/docs/screenshots/SteamVRPage.png b/docs/screenshots/SteamVRPage.png index 656a0fb..efb97f0 100644 Binary files a/docs/screenshots/SteamVRPage.png and b/docs/screenshots/SteamVRPage.png differ diff --git a/src/openvr/ivrinput.cpp b/src/openvr/ivrinput.cpp index 66a24f8..1358360 100644 --- a/src/openvr/ivrinput.cpp +++ b/src/openvr/ivrinput.cpp @@ -138,8 +138,8 @@ SteamIVRInput::SteamIVRInput() m_keyboardOne( action_keys::keyboardOne ), m_keyboardTwo( action_keys::keyboardTwo ), m_keyboardThree( action_keys::keyboardThree ), - m_keyboardPressOne( action_keys::keyboardPressOne ), - m_keyboardPressTwo( action_keys::keyboardPressTwo ), + m_keyPressMisc( action_keys::keyPressMisc ), + m_keyPressSystem( action_keys::keyPressSystem ), m_chaperoneToggle( action_keys::chaperoneToggle ), m_pushToTalk( action_keys::pushToTalk ), m_leftHaptic( action_keys::hapticsLeft ), @@ -351,13 +351,13 @@ bool SteamIVRInput::keyboardThree() { return isDigitalActionActivatedOnce( m_keyboardThree ); } -bool SteamIVRInput::keyboardPressOne() +bool SteamIVRInput::keyPressMisc() { - return isDigitalActionActivatedConstant( m_keyboardPressOne ); + return isDigitalActionActivatedConstant( m_keyPressMisc ); } -bool SteamIVRInput::keyboardPressTwo() +bool SteamIVRInput::keyPressSystem() { - return isDigitalActionActivatedConstant( m_keyboardPressTwo ); + return isDigitalActionActivatedConstant( m_keyPressSystem ); } /*! diff --git a/src/openvr/ivrinput.h b/src/openvr/ivrinput.h index d868cd6..3f2d3d9 100644 --- a/src/openvr/ivrinput.h +++ b/src/openvr/ivrinput.h @@ -55,8 +55,8 @@ namespace action_keys constexpr auto keyboardOne = "/actions/misc/in/KeyboardOne"; constexpr auto keyboardTwo = "/actions/misc/in/KeyboardTwo"; constexpr auto keyboardThree = "/actions/misc/in/KeyboardThree"; - constexpr auto keyboardPressOne = "/actions/misc/in/KeyboardPressOne"; - constexpr auto keyboardPressTwo = "/actions/misc/in/KeyboardPressTwo"; + constexpr auto keyPressMisc = "/actions/misc/in/KeyPressMisc"; + constexpr auto keyPressSystem = "/actions/system/in/KeyPressSystem"; constexpr auto hapticsLeft = "/actions/haptic/out/HapticsLeft"; constexpr auto hapticsRight = "/actions/haptic/out/HapticsRight"; @@ -160,8 +160,8 @@ public: bool keyboardOne(); bool keyboardTwo(); bool keyboardThree(); - bool keyboardPressOne(); - bool keyboardPressTwo(); + bool keyPressMisc(); + bool keyPressSystem(); vr::VRActionHandle_t leftHapticActionHandle(); vr::VRActionHandle_t rightHapticActionHandle(); @@ -229,8 +229,8 @@ private: DigitalAction m_keyboardOne; DigitalAction m_keyboardTwo; DigitalAction m_keyboardThree; - DigitalAction m_keyboardPressOne; - DigitalAction m_keyboardPressTwo; + DigitalAction m_keyPressMisc; + DigitalAction m_keyPressSystem; // Misc Bindings DigitalAction m_chaperoneToggle; diff --git a/src/overlaycontroller.cpp b/src/overlaycontroller.cpp index d8aa04d..3c5e242 100644 --- a/src/overlaycontroller.cpp +++ b/src/overlaycontroller.cpp @@ -704,33 +704,33 @@ void OverlayController::processKeyboardBindings() sendStringAsInput( commands ); } // Press Key One - if ( m_actions.keyboardPressOne() && !m_keyPressOneState ) + if ( m_actions.keyPressMisc() && !m_keyPressOneState ) { const auto commands = settings::getSetting( - settings::StringSetting::KEYBOARDSHORTCUT_keyboardPressOne ); + settings::StringSetting::KEYBOARDSHORTCUT_keyPressMisc ); sendFirstCharAsInput( commands, KeyStatus::Down ); m_keyPressOneState = true; } - if ( m_keyPressOneState && !m_actions.keyboardPressOne() ) + if ( m_keyPressOneState && !m_actions.keyPressMisc() ) { const auto commands = settings::getSetting( - settings::StringSetting::KEYBOARDSHORTCUT_keyboardPressOne ); + settings::StringSetting::KEYBOARDSHORTCUT_keyPressMisc ); sendFirstCharAsInput( commands, KeyStatus::Up ); m_keyPressOneState = false; } // Press Key Two - if ( m_actions.keyboardPressTwo() && !m_keyPressTwoState ) + if ( m_actions.keyPressSystem() && !m_keyPressTwoState ) { const auto commands = settings::getSetting( - settings::StringSetting::KEYBOARDSHORTCUT_keyboardPressTwo ); + settings::StringSetting::KEYBOARDSHORTCUT_keyPressSystem ); sendFirstCharAsInput( commands, KeyStatus::Down ); m_keyPressTwoState = true; } - if ( m_keyPressTwoState && !m_actions.keyboardPressTwo() ) + if ( m_keyPressTwoState && !m_actions.keyPressSystem() ) { const auto commands = settings::getSetting( - settings::StringSetting::KEYBOARDSHORTCUT_keyboardPressTwo ); + settings::StringSetting::KEYBOARDSHORTCUT_keyPressSystem ); sendFirstCharAsInput( commands, KeyStatus::Up ); m_keyPressTwoState = false; } diff --git a/src/package_files/action_manifest.json b/src/package_files/action_manifest.json index a119a0f..63dcbde 100644 --- a/src/package_files/action_manifest.json +++ b/src/package_files/action_manifest.json @@ -206,12 +206,12 @@ "type": "boolean" }, { - "name": "/actions/misc/in/KeyboardPressOne", + "name": "/actions/misc/in/KeyPressMisc", "requirement": "optional", "type": "boolean" }, { - "name": "/actions/misc/in/KeyboardPressTwo", + "name": "/actions/system/in/KeyPressSystem", "requirement": "optional", "type": "boolean" } @@ -289,8 +289,8 @@ "/actions/misc/in/KeyboardOne" : "Keyboard Shortcut One", "/actions/misc/in/KeyboardTwo" : "Keyboard Shortcut Two", "/actions/misc/in/KeyboardThree" : "Keyboard Shortcut Three", - "/actions/misc/in/KeyboardPressOne": "Keyboard Press One", - "/actions/misc/in/KeyboardPressTwo": "Keyboard Press Two" + "/actions/misc/in/KeyPressMisc": "Key Press Misc", + "/actions/system/in/KeyPressSystem": "Key Press System" } ] } \ No newline at end of file diff --git a/src/res/qml/common/HourComboBox.qml b/src/res/qml/common/HourComboBox.qml index 21ba543..8cf240b 100644 --- a/src/res/qml/common/HourComboBox.qml +++ b/src/res/qml/common/HourComboBox.qml @@ -4,8 +4,7 @@ import QtQuick.Layouts 1.3 import ovras.advsettings 1.0 MyComboBox { - textRole: "text" - valueRole: "value" + model: [ { value: 0, text: "00" }, { value: 1, text: "01" }, diff --git a/src/res/qml/common/MinuteSecondComboBox.qml b/src/res/qml/common/MinuteSecondComboBox.qml index d66cf0a..5437f28 100644 --- a/src/res/qml/common/MinuteSecondComboBox.qml +++ b/src/res/qml/common/MinuteSecondComboBox.qml @@ -4,8 +4,7 @@ import QtQuick.Layouts 1.3 import ovras.advsettings 1.0 MyComboBox { - textRole: "text" - valueRole: "value" + model: [ { value: 0, text: "00" }, { value: 1, text: "01" }, diff --git a/src/res/qml/common/MyComboBox.qml b/src/res/qml/common/MyComboBox.qml index f008add..d9b915e 100644 --- a/src/res/qml/common/MyComboBox.qml +++ b/src/res/qml/common/MyComboBox.qml @@ -6,7 +6,6 @@ import "." // QTBUG-34418, singletons require explicit import to load qmldir fil ComboBox { id: myComboBox hoverEnabled: true - background: Rectangle { color: parent.pressed ? "#406288" : (parent.activeFocus ? "#365473" : "#2c435d") } diff --git a/src/res/qml/common/TimeAssembly.qml b/src/res/qml/common/TimeAssembly.qml index 9574ade..07fd5ea 100644 --- a/src/res/qml/common/TimeAssembly.qml +++ b/src/res/qml/common/TimeAssembly.qml @@ -8,6 +8,7 @@ RowLayout { HourComboBox { id: hourBox + Layout.preferredWidth: 60 onActivated: { parent.timeChanged(hourBox.currentIndex, minuteBox.currentIndex, @@ -20,6 +21,7 @@ RowLayout { MinuteSecondComboBox { id: minuteBox + Layout.preferredWidth: 60 onActivated: { parent.timeChanged(hourBox.currentIndex, minuteBox.currentIndex, @@ -32,6 +34,7 @@ RowLayout { MinuteSecondComboBox { id: secondBox + Layout.preferredWidth: 60 onActivated: { parent.timeChanged(hourBox.currentIndex, minuteBox.currentIndex, @@ -45,5 +48,8 @@ RowLayout { hourBox.currentIndex = hour minuteBox.currentIndex = minute secondBox.currentIndex = second + hourBox.displayText = hour + minuteBox.displayText = minute + secondBox.displayText = second } } diff --git a/src/res/qml/utilities_page/alarm_clock/AlarmGroupBox.qml b/src/res/qml/utilities_page/alarm_clock/AlarmGroupBox.qml index 7342b52..61f2d98 100644 --- a/src/res/qml/utilities_page/alarm_clock/AlarmGroupBox.qml +++ b/src/res/qml/utilities_page/alarm_clock/AlarmGroupBox.qml @@ -10,7 +10,7 @@ GroupBox { label: MyText { leftPadding: 10 - text: "Clock" + text: "Alarm Clock" bottomPadding: -10 } background: Rectangle { @@ -78,14 +78,14 @@ GroupBox { MyPushButton2 { text: "+5 Min" - Layout.preferredWidth: 120 + Layout.preferredWidth: 110 onClicked: { VrAlarm.modAlarmTime(0, 5, 0) } } MyPushButton2 { - Layout.preferredWidth: 120 + Layout.preferredWidth: 110 text: "-5 Min" onClicked: { VrAlarm.modAlarmTime(0, -5, 0) diff --git a/src/settings/internal/settings_controller.h b/src/settings/internal/settings_controller.h index 40d29dd..8362632 100644 --- a/src/settings/internal/settings_controller.h +++ b/src/settings/internal/settings_controller.h @@ -481,7 +481,7 @@ private: constexpr static auto stringSettingsSize = static_cast( StringSetting::LAST_ENUMERATOR ) + 1; constexpr static auto discordDefaultMuteKeybinding = "^>m"; - constexpr static auto pressDefaultOne = "F9"; + constexpr static auto pressDefault = "F9"; std::array m_stringSettings{ StringSettingValue{ StringSetting::KEYBOARDSHORTCUT_keyboardOne, SettingCategory::KeyboardShortcut, @@ -495,14 +495,14 @@ private: SettingCategory::KeyboardShortcut, QtInfo{ "keyboardThree" }, discordDefaultMuteKeybinding }, - StringSettingValue{ StringSetting::KEYBOARDSHORTCUT_keyboardPressOne, + StringSettingValue{ StringSetting::KEYBOARDSHORTCUT_keyPressMisc, SettingCategory::KeyboardShortcut, - QtInfo{ "keyboardPressOne" }, - pressDefaultOne }, - StringSettingValue{ StringSetting::KEYBOARDSHORTCUT_keyboardPressTwo, + QtInfo{ "keyPressmisc" }, + pressDefault }, + StringSettingValue{ StringSetting::KEYBOARDSHORTCUT_keyPressSystem, SettingCategory::KeyboardShortcut, - QtInfo{ "keyboardPressTwo" }, - pressDefaultOne }, + QtInfo{ "keyPressSystem" }, + pressDefault }, }; constexpr static auto intSettingsSize diff --git a/src/settings/settings.h b/src/settings/settings.h index 7e9cc4f..7ecd082 100644 --- a/src/settings/settings.h +++ b/src/settings/settings.h @@ -90,10 +90,10 @@ enum class StringSetting KEYBOARDSHORTCUT_keyboardOne, KEYBOARDSHORTCUT_keyboardTwo, KEYBOARDSHORTCUT_keyboardThree, - KEYBOARDSHORTCUT_keyboardPressOne, - KEYBOARDSHORTCUT_keyboardPressTwo, + KEYBOARDSHORTCUT_keyPressMisc, + KEYBOARDSHORTCUT_keyPressSystem, // LAST_ENUMERATOR must always be set to the last value - LAST_ENUMERATOR = KEYBOARDSHORTCUT_keyboardPressTwo, + LAST_ENUMERATOR = KEYBOARDSHORTCUT_keyPressSystem, }; enum class IntSetting diff --git a/src/tabcontrollers/SettingsTabController.h b/src/tabcontrollers/SettingsTabController.h index e22a08d..24ee685 100644 --- a/src/tabcontrollers/SettingsTabController.h +++ b/src/tabcontrollers/SettingsTabController.h @@ -27,7 +27,6 @@ private: OverlayController* parent; bool m_autoStartEnabled = false; - bool m_nativeChaperoneToggle = false; public: void initStage1();