Commit Graph
100 Commits
Author SHA1 Message Date
Vasily adc3a1e7b2 Convert m_previousShutdownSafe to new settings API 2019-12-10 08:28:41 +01:00
Vasily 4ae8bd8fb5 Add m_vsyncDisabled to new settings API 2019-12-10 08:28:41 +01:00
Vasily f945bd06bd Remove unnecessary code forcing keyboardShortcuts to appear in config
The settings API automatically makes settings appear on startup.
2019-12-10 08:28:41 +01:00
Vasily 4be96344da Convert m_flingStrength to new settings API
Casts inside the functions because it isn't feasible to change all
floats to double.
2019-12-10 08:28:41 +01:00
Vasily 4918ff2a37 Convert m_gravityStrength to new settings API
Casts inside the function because it's not feasible to change all floats
to double.
2019-12-10 08:28:41 +01:00
Vasily 58a92f4b2b Convert m_heightToggleOffset to new settings API
Casts inside the function because it's not feasible at the moment to
change all floats to doubles.
2019-12-10 08:28:41 +01:00
Vasily ed1190020c Convert m_turnComfortFactor to new settings API 2019-12-10 08:28:41 +01:00
Vasily 214e1d26ed Convert m_dragComfortFactor to new settings API and change sign
There was no reason for it to be unsigned. This has been changed to int
for internal consistency.
2019-12-10 08:28:41 +01:00
Vasily 7a6c3fc53e Convert m_smoothTurnRate to new settings API 2019-12-10 08:28:41 +01:00
Vasily 22b52d403c Convert m_snapTurnAngle to new settings API 2019-12-10 08:28:41 +01:00
Vasily 065c5da456 Convert m_simpleRecenter to new settings API 2019-12-10 08:28:41 +01:00
Vasily bce378928d Convert m_enableSeatedMotion to new settings API 2019-12-10 08:28:41 +01:00
Vasily 909b9aefec Convert m_universeCenteredRotation to new settings API 2019-12-10 08:28:41 +01:00
Vasily 24e3081533 Convert m_oldStyleMotion to new settings API 2019-12-10 08:28:41 +01:00
Vasily 48209f6536 Convert m_allowExternalEdits to new settings API 2019-12-10 08:28:41 +01:00
Vasily e757c722f7 Convert m_showLogMatricesButton to new settings API 2019-12-10 08:28:41 +01:00
Vasily 363a9f4990 Convert m_momentumSave to new settings API 2019-12-10 08:28:41 +01:00
Vasily 500fe0a98f Convert m_turnBounds to new settings API 2019-12-10 08:28:41 +01:00
Vasily 2b7e33b51b Prefer public getter over explicit settings call
The getter call is more resistant to change and leads to less code
duplication.
2019-12-10 08:28:41 +01:00
Vasily 5b23247667 Make DesktopOverlay use public getter instead of explicit settings call
Using the getter is clearer and leads to less code duplication.
2019-12-10 08:28:41 +01:00
Vasily ba30e0054f Convert m_dragBounds to new settings API 2019-12-10 08:28:41 +01:00
Vasily 89699825bf Remove MoveCenterTabController::outputLogSettings
If settings changes are logged to console it should be handled in the
settings API.
2019-12-10 08:28:41 +01:00
Vasily f91328298b Convert m_settingsRightHandTurnEnabled to new settings API 2019-12-10 08:28:41 +01:00
Vasily 1061c39252 Convert m_settingsLeftHandTurnEnabled to new settings API 2019-12-10 08:28:41 +01:00
Vasily c1b1756ccf Convert m_settingsLeftHandDragEnabled to new settings API 2019-12-10 08:28:41 +01:00
Vasily a81eb2cbf4 Convert m_settingsRightHandDragEnabled to new settings API 2019-12-10 08:28:41 +01:00
Vasily 289de29d69 Convert m_adjustChaperone to new settings API 2019-12-10 08:28:41 +01:00
Vasily 9755ffac64 Convert m_lockYToggle to new settings API 2019-12-10 08:28:41 +01:00
Vasily d5b98f8452 Convert m_lockZToggle to new settings API 2019-12-10 08:28:41 +01:00
Vasily 866d48cc9e Convert m_lockXToggle to new settings API 2019-12-10 08:28:41 +01:00
Vasily 92f1c59104 Convert DesktopOverlay to new settings API 2019-12-10 08:28:41 +01:00
Vasily c8a0e41bfe Remove features related to desktop overlay translation
The feature was killed by Valve and is not likely to come back.
2019-12-10 08:28:41 +01:00
Vasily 724bc51a15 Fix indentation in resources.pri 2019-12-10 08:28:41 +01:00
Vasily 6cf3b582f6 Fix QVariant not recognizing convertable types
The QMetaType did not correctly recognize that bools and doubles were
convertable from QVariant.

The new method is more robust.
2019-12-03 08:26:10 +01:00
Vasily 4eb8a35d6b Add remaining int settings from initStage1 to new API
The settings API does not deal with unsigned ints, it is the
responsibility of the calling function to ensure that values are savable
as signed ints.
2019-12-03 08:26:10 +01:00
Vasily 3c3590539d Add remaining double/bool settings in initStage1 2019-12-03 08:26:10 +01:00
Vasily c2796273e7 Add adjustChaperone setting to BoolSetting
Meant to act as an example of how to add new settings.
2019-12-03 08:26:10 +01:00
Vasily d73fcf3443 Change MoveCenterTabController::initStage1 from QSettings to new API
Only the existing changes were moved.
The remaining were not initially added because they didn't show up in
the .ini files I based my initial prototypes on.
2019-12-03 08:26:10 +01:00
Vasily ca489200be Remove unnecessary settings file path logging call in DesktopOverlay 2019-12-03 08:26:10 +01:00
Vasily c1690056cc Add settings API and specification
The details of the API are in the `/docs/specsSettings-API.md` file.

The enums do not list all available settings, more are to be added as
the settings API replaces inline QSettings calls.
2019-12-03 08:26:10 +01:00
Vasily 61fd3dde79 Change m_window function call from -> to . 2019-11-30 18:14:49 +01:00
Vasily 2578f3b32e Update version string to 4.0.1-dev from 4.0.1-release
String was mistakenly not changed back after release bins were built.
2019-11-30 18:14:49 +01:00
Vasily 6e04c77be2 Change name of m_pWindow in Linux only section
Name was not changed by tooling due to being in a Linux ifdef.
2019-11-30 18:14:49 +01:00
Vasily 8300f5395e Convert m_pPumpEventsTimer into object
Having an extra layer of indirection was unnecessary.

The if statement guard to check if the pointer is null is now
unnecessary.
2019-11-30 18:14:49 +01:00
Vasily 96e80ec3ce Convert m_pOffscreenSurface from pointer to object 2019-11-30 18:14:49 +01:00
Vasily 8136569455 Convert m_pOpenGLContext from pointer to object 2019-11-30 18:14:49 +01:00
Vasily 6c04dd25b1 Convert m_pWindow from pointer to object
The extra layer of indirection was unnecessary and had no benefit.
2019-11-30 18:14:49 +01:00
Vasily 2b9b3d653a Convert m_pRenderControl from smart pointer to object
Having it be a pointer was an unnecessary complication with no gain.
2019-11-30 18:14:49 +01:00
Vasily a237168ef7 Remove bindings page from Readme.md
Bindings page was deprecated with the API feature of opening the
bindings interace.
2019-11-14 20:59:31 +01:00
username223 b148a3d6de Update controller binding port in docs (#312)
This was changed by Valve in a recent patch on live SteamVR.
2019-11-08 10:38:28 -06:00
Vasily 43d95d0ece 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.
2019-11-04 18:00:06 +01:00
Vasily 0d64cc4438 Move TOC in Readme below intro header 2019-08-23 15:12:58 +02:00
Vasily a1e83a38ce Add public Discord shield to readme 2019-08-23 15:12:58 +02:00
Vasily 2a935895e9 Update Linux build docs for Arch/Ubuntu, add logging calls to Qmake
The page was not made with Arch in mind.

The currently required were tested on Manjaro, more packages may be
explicitly required due to the bare-bones nature of Arch.

Adds simple logging calls makes debugging easier.

The initial build script was basically ported over directly from
Windows. It was written because I at the time didn't understand
compiling on Linux, and the existing standards, very well.

Moving as many build components into a program specifically made for
building C++ makes everything much easier.

The old build script is still used on CI where control flow can only be
changed using environment variables.

`bear` and `clang-format` are only used on the CI, there's no reason to
include them here.
2019-08-23 15:12:58 +02:00
Vasily 1b5e092cc2 Update run-clang-format script
Upstream updated the script with error checking for incorrect
clang-format executable.
2019-08-19 03:10:32 +02:00
Vasily 03564f0802 Update OpenVR to 1.6.10 2019-08-10 09:12:32 +02:00
Vasily c9c19c61b5 Revert "Reduce update rate of chaperone velocity modifiers"
This reverts commit e712f4aa1f.

The issue turned out to be isolated to Linux, since it wasn't possible
to reproduce the issue completely on Windows.

An MVP for the bug can be found here
https://github.com/username223/SteamVR-Manjaro-Sync-Crash

The issue is very likely to be on SteamVR's end, since the issue doesn't
appear on the same CPU running Windows.

The fix for the issue in
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/252
is to by default turn off the offending feature. This doesn't fix
anything, but it will prevent people from having OVRAS kill their
performance just by running the application.
2019-08-07 12:53:20 +02:00
Vasily 8d5a9656db Remove unnecessary line from building on linux docs
Linux builds have an rpath in the executable directory, meaning this is
no longer necessary.
2019-08-07 12:53:20 +02:00
Vasily 730e633d07 Add naive make install for Linux
This enables a `sudo make install` that copies the build directory to
the PREFIX directory (/opt/OpenVR-AdvancedSettings/AdvancedSettings by
default).

The entire directory is being copied because Qt is incredibly weird
about how the INSTALLS variable works. From testing it appears that only
files that exist before the build process has started (even the
file_copy process) will be eligible for installation.

If the /OpenVR-AdvancedSettings/ directory is excluded, Qt will attempt
to remove the /opt/ folder on `make uninstall`, this is obviously not
desirable.
2019-08-07 12:53:20 +02:00
Vasily a560810747 Downgrade gcc version on AppImage build to 7 from 9
As described in issue
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/266
the gcc-9 libstdc++ version is not included in Ubuntu 18.04 or
derivatives, which leads to a runtime error.

gcc-7 is the oldest version that has c++17 support. If we didn't need
C++17 support then we could use gcc-5, which is included with Ubuntu
14.04.
2019-08-07 12:53:20 +02:00
Vasily d36c67bbe3 Update files being copied to binary directory
The windows `qt.conf` caused errors on Linux. Now only the absolutely
needed files are copied over.
2019-07-30 10:45:28 +02:00
Vasily 8e43629bb2 Move windeployqt to Qmake
`qmake` is better suited for finding `windeployqt`, since it's in the same
directory as `qmake` on windows.

`qmake` is also better suited for finding the build target
(release/debug) vs third party scripts.

`windeployqt` is being forced to run in `cmd` because the syntax is
different for running executables in powershell, which means
`windeployqt` won't be executed and runtime or package errors will
occur.

With the removal of the windeployqt call the deploy step is no longer
needed for building on Windows, since all previous deploy tasks are now
handle by Qmake.
2019-07-30 10:45:28 +02:00
Vasily 94bbd30890 Strip whitespace from version_string line
This prevents stray newlines from getting in there.
2019-07-30 10:45:28 +02:00
username223 f65ee06861 Update linux input guide config location
The logs are stored in `~/.local/share/AdvancedSettings-Team/OpenVRAdvancedSettings/`, but the config file is stored in `~/.config/AdvancedSettings-Team/`.
2019-07-27 19:50:53 +02:00
Vasily ed89514667 Remove .txt ending from new license files 2019-07-24 10:54:55 +02:00
Vasily b5d69c589c Make Qmake copy package files instead of OS scripts
Described in commit 97e203fd89e7cb54c7ce96ce779b2e8cb6ac1374

The python functions are no longer needed since the python script
doesn't handle file copy any more.
2019-07-24 10:54:55 +02:00
Vasily 46c8a62565 Make Qmake copy package files instead of OS scripts
Described in commit 97e203fd89e7cb54c7ce96ce779b2e8cb6ac1374

The linux directory in package_files is included even on Windows install
for simplicity and because it takes up less than 1KB.
2019-07-24 10:54:55 +02:00
Vasily 6e088a6ec8 Make Qmake copy licenses instead of OS scripts
Described in commit 97e203fd89e7cb54c7ce96ce779b2e8cb6ac1374

Linux was not including any license files by mistake.
2019-07-24 10:54:55 +02:00
Vasily 9fc22ccbb4 Make Qmake copy Readme instead of OS scripts
Described in commit 97e203fd89e7cb54c7ce96ce779b2e8cb6ac1374
2019-07-24 10:54:55 +02:00
Vasily cbac2f9539 Make Qmake copy res directory instead of OS scripts
Since Qt 5.6 Qmake has supported the (undocumented) file_copies
function.

Moving to an OS independent version is superior for obvious
reasons.

Use in
https://stackoverflow.com/questions/3984104/qmake-how-to-copy-a-file-to-the-output/54162789#54162789

Uses the same interface as the INSTALLS function described here
https://doc.qt.io/qt-5/qmake-advanced-usage.html#installing-files

Implemented in the file_copies.prf file found here
https://code.qt.io/cgit/qt/qtbase.git/log/mkspecs/features/file_copies.prf
2019-07-24 10:54:55 +02:00
Vasily 6e710a75b3 Add docstrings for new Windows build functions 2019-07-24 10:54:55 +02:00
Vasily 7509b8beee Update documentation for building on windows 2019-07-24 10:54:55 +02:00
Vasily 112e611709 Make Windows build script traverse paths for Qt Location
The environment variable still has precedence, and will be used before
all other versions if it exists.
2019-07-24 10:54:55 +02:00
Vasily 275d0813b5 Make whitespace updates to windows build files 2019-07-24 10:54:55 +02:00
Vasily ecfbb6f0ff Remove StatisticsTabController initStage1 function
Function was a noop.
2019-07-20 21:24:03 +02:00
Vasily b6001235f0 Remove FixFloorTabController initStage1 function
The function was a noop.
2019-07-20 21:24:03 +02:00
Vasily 1975192bb1 Remove widget pointer from MoveCenterTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 0c6ed9a68d Remove widget and parent pointers from UtilitiesTabController
The pointers are not needed and are an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 27b148ae12 Remove widget pointer from ReviveTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 66fd6e6470 Remove widget pointer from SettingsTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 7728744cdd Remove widget pointer from StatisticsTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 7a6c8b662d Remove widget and parent pointer from AudioTabController
The pointers are not needed and are an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 5f35a11381 Remove widget pointer from FixFloorTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 6a3e22bdd6 Remove widget pointer from ChaperoneTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily 5605b9b104 Remove widget pointer from SteamVRTabController
The pointer is not needed and is an anti pattern.
2019-07-20 21:24:03 +02:00
Vasily e712f4aa1f Reduce update rate of chaperone velocity modifiers
Having the application call Sync() every frame led to slowdowns on some
4 core CPUs and instant crashes on some older CPUs.

This makes the chaperone velocity modifier only update on every 101st
frame. This might not be the ideal framerate, but having it update every
frame makes the app crash on start for some users.

On Manjaro with a i7-6700K (4 cores) this led to instant crashes of
SteamVR+Steam+OVRAS, with a SEGFAULT in SteamVR.
Issue here:
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/252
2019-07-19 12:22:56 +02:00
username223 9b3fef2310 Add bug report/feature request issue templates
Having to wait for OPs to respond with details that should have been in the original issue is getting a little annoying.

This will reduce the amount of freeform writing required by people to produce a usable feature request/bug report.
2019-07-18 18:39:19 +02:00
Vasily 872a4a9ed8 Update version string to 3.2.0-dev 2019-07-04 20:26:24 +02:00
Vasily e70f66b2cb Make python version script remove newlines from version string
Previously newlines would remain and foul up the other build tools.
2019-07-04 18:25:44 +02:00
Vasily 696ddfdea4 Fix bug in python version script that lead to error 2019-07-04 17:44:07 +02:00
Vasily c9a85f45f6 Update version string to 3.2.0-release 2019-07-04 17:44:07 +02:00
Vasily 64ee6639ed Update version string to 3.2.0-RC2 2019-07-04 17:44:07 +02:00
Vasily 885c0b2004 Clean up CircleCI config 2019-07-04 16:44:31 +02:00
Vasily dbecf100b8 Change CircleCI to use g++-9 instead of g++-7 2019-07-04 16:44:31 +02:00
Vasily 614278d7ec Add compiler check for g++-9 to qmake 2019-07-04 16:44:31 +02:00
Vasily b68ce1a583 Remove clang --version from CircleCI
It is not guaranteed that the `clang` binary is used (`clang-8` instead,
for example) and versions are output by QMAKE anyway.
2019-07-04 16:44:31 +02:00
Vasily 8df1eb6f19 Add versioning to Linux artifacts and change CI image
The circleci/buildpack-deps:xenial contains python, which is needed for
the version changing script.
2019-07-04 16:44:31 +02:00
Vasily 329b4e7331 Add SVG support to AppImage, move files instead of copying 2019-07-04 16:44:31 +02:00
Vasily 0121e75947 Manually add QtQuick.Dialogs to Linux AppImage
https://github.com/probonopd/linuxdeployqt/issues/25

As detailed there QtQuick/Dialogs and QtQuick/LocalStorage are not
automatically packaged.
2019-07-04 16:44:31 +02:00
Vasily ad05b29392 Add qml path to AppImage
This should solve problem

https://github.com/probonopd/linuxdeployqt/issues/25

with error message

QML Error:
file:///tmp/.mount_OpenVRtQNnT6/usr/bin/res/qml/common/mainwidget.qml:1:1:
module "QtQuick" is not installed
2019-07-04 16:44:31 +02:00