Commit Graph
100 Commits
Author SHA1 Message Date
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
Vasily c08ab71e63 Remove AppImage new glibc switch 2019-07-04 16:44:31 +02:00
Vasily 6a7e5804bf Add CircleCI AppImage building
This builds on GCC for no reason in particular.
2019-07-04 16:44:31 +02:00
Vasily 201cb40359 Add variable for clang-tidy name when building on Linux
Travis has the correct clang-tidy version of 7, while CircleCI needs
clang-tidy-7.
2019-06-24 19:21:14 +02:00
Vasily ec5a575d93 Add g++-8 specific version support. 2019-06-24 19:21:14 +02:00
Vasily e8af73db28 Make CircleCI have feature parity with TravisCI and update docs
Unnecessary line from Bionic 18.04 was removed.

A proper version guard was included for clang. Xenial currently ships
3.8.
2019-06-24 19:21:14 +02:00
Vasily 89eb37ed15 Add clang-tidy to circleci 2019-06-24 19:21:14 +02:00
Vasily b65657b371 Add clang passing build
CircleCI Xenial does not come with an up to date version of Clang. It is
therefore required to get the newest version (8). The .pri file has
quickly been edited to be similar to the g++ version check.
2019-06-24 19:21:14 +02:00
Vasily aade86ed47 Add circleci g++ passing build
CircleCI does not compile with --jobs.
2019-06-24 19:21:14 +02:00
Vasily 73e1878e59 Remove X11 logging calls 2019-06-15 10:00:46 +02:00
Vasily 97009aa39a Convert KeySym to KeyCode
Previously KeySyms were sent when KeyCodes should have been sent.
2019-06-15 10:00:46 +02:00
Vasily e2f41fce37 Remove unused param for X11 input sender 2019-06-15 10:00:46 +02:00
Vasily 589b759c77 Linux Keyboard Input: Make KeySym conv explicit 2019-06-15 10:00:46 +02:00
Vasily 9703917a19 Fix bug in Linux keyboard input sender
Held modifiers weren't being released again.
2019-06-15 10:00:46 +02:00
Vasily 061509eff6 Add casts to logging calls 2019-06-15 10:00:46 +02:00
Vasily f68413d651 Add logging calls to X11 key sending 2019-06-15 10:00:46 +02:00
Vasily 674a28eb96 Add general readme fixes 2019-06-14 20:58:01 +02:00
Vasily 9f0790e1d2 Update SteamVR input guide 2019-06-14 20:58:01 +02:00
Vasily adf2f33c3c Fix types and weirdly capitalized words in SteamVR Input Guide 2019-06-14 20:58:01 +02:00
Vasily 182b6ec6b4 Update Readme feature list
Some of the bullets do not make sense without context.
2019-06-14 20:58:01 +02:00
Vasily d7deb4ae8c Move TOC in readme above initial header 2019-06-14 20:58:01 +02:00
Vasily a0c3b1f92a Remove colons from TOC in readme 2019-06-14 20:58:01 +02:00
Vasily b60f4eb254 Remove colons from some headers 2019-06-14 20:58:01 +02:00
Vasily f3895f223e Convert readme Table Of Contents to not use HTML tags
GitHub works fine with just headers and the tags are a pain to maintain.

TOC created with https://ecotrust-canada.github.io/markdown-toc/.
2019-06-14 20:58:01 +02:00
Vasily 4118885821 Update documentation on keyboard input 2019-06-14 20:58:01 +02:00