Commit Graph
100 Commits
Author SHA1 Message Date
Vasily 8e34e9edca Update documentation for DBUS on Linux 2019-06-05 19:57:44 +02:00
Vasily f958026453 Add DBUS support for media keys 2019-06-05 19:57:44 +02:00
Vasily a228cf0d5b Change .txt to .md 2019-05-25 18:49:42 +02:00
Vasily 0b16eeffa7 Add further explanation to docs on keyboard input 2019-05-25 18:49:42 +02:00
Vasily f70e66277b Add dereference to logging call 2019-05-25 18:49:42 +02:00
Vasily 3f8f757ead Add error logging for keyboard input 2019-05-25 18:49:42 +02:00
Vasily 6009fcbfd0 Change keyboard_manager spec extension to .md
It's actually markdown, not text.
2019-05-25 18:49:42 +02:00
Vasily c88b1db92b Create documentation for keyboard input 2019-05-25 18:49:42 +02:00
Vasily 66d2a77cfb Make VR->keyboard bindings appear in .ini on startup 2019-05-25 18:49:42 +02:00
Vasily 1429e833fe Update readme for bindings->keyboard keys 2019-05-25 18:49:42 +02:00
Vasily 7d37ec9c0d Add bindings to keyboard shortcuts
The default binding for keyboardOne is the default combination
for muting on Discord. This was explicitly chosen as a use case, and it
    might make people not have to tangle with creating custom
    keybindings in the .ini file.
2019-05-25 18:49:42 +02:00
Vasily ef124ee225 Add dummy media_keys file
This allows Linux (and MacOS) to compile correctly again. The previous
behavior was an intended middle step.
2019-05-25 18:49:42 +02:00
Vasily 5f30095ec8 Readd media keys for Windows
This intentionally does not compile on Linux.
2019-05-25 18:49:42 +02:00
Vasily 9fe1f3dc50 Separate media keys from keyboard shortcuts
The media keys were only in the keyboard shortcuts file because their
implementation was the same. With Linux support incoming their
implementations are not necessarily the same.
2019-05-25 18:49:42 +02:00
Vasily 55a3830787 Fix keyboard input implementation error and replace old system 2019-05-25 18:49:42 +02:00
Vasily d48f74b314 Fix clang-tidy errors 2019-05-25 18:49:42 +02:00
Vasily 1cd259bf9b Add inline to sendStringAsInput
Definition in function header led to linker errors.
2019-05-25 18:49:42 +02:00
Vasily 2d8f5a1b40 Add Enter button to spec and keyboard_input
It was mistakenly left out.
2019-05-25 18:49:42 +02:00
Vasily eb25656eeb Fix typo in keyboard_input function name 2019-05-25 18:49:42 +02:00
Vasily 6a3a58361d Add Linux keyboard_input support 2019-05-25 18:49:42 +02:00
Vasily 9fa42842cd Add top level stringToInput sender in header
This is the same for all platforms, so thers' no reason to duplicate it
in platform specific sections.
2019-05-25 18:49:42 +02:00
Vasily 0c7c339e3e Add sending inputs for keyboard_input on Windows 2019-05-25 18:49:42 +02:00
Vasily 6290221853 Remove AltGr support from keyboard input
Was removed in spec for being Alt + Ctrl.
2019-05-25 18:49:42 +02:00
Vasily 3173c4999c Remove AltGr button from keyboard input spec
AltGr is just implemented as Alt + Ctrl. This means it's unnecessary and
is only going to complicate the spec.
2019-05-25 18:49:42 +02:00
Vasily b4cf5d3cb7 Add removing duplicate tokens to input_parser 2019-05-25 18:49:42 +02:00
Vasily bc060bec96 Add removing extra new-sequence tokens 2019-05-25 18:49:42 +02:00
Vasily 2c0f49d8d6 Add noexcept specifiers to keyboard_input functions 2019-05-25 18:49:42 +02:00
Vasily f72e1b2541 Add capital literal parsing and tests 2019-05-25 18:49:42 +02:00
Vasily d5cb19cea1 Add tests for capital literals 2019-05-25 18:49:42 +02:00
Vasily ef0e679344 Add support for space token to keyboard_input 2019-05-25 18:49:42 +02:00
Vasily e40058e58a Fix keyboard_input SEGFAULT 2019-05-25 18:49:42 +02:00
Vasily d6c7b52a47 Add initial keyboard_input parser and tests
The current implementation SEGFAULTs when F characters are followed by
end of string.
2019-05-25 18:49:42 +02:00
Vasily 49b16ebc8f Remove F10, F11 and F12 function keys from keyboard spec
There is no way to tell if they are meant to be one or two keys and in
this case simplicity of use wins out.
2019-05-25 18:49:42 +02:00
Vasily d2127e53aa Add specification for keyboard input parser 2019-05-25 18:49:42 +02:00
Vasily bf5ccd69ca Update Linux build docs for Ubuntu 19.04 2019-04-22 09:56:50 +02:00
Vasily f6c2bab116 Add Linux build docs describing qtchooser for official installer
The official installer does not add itself to qtchooser.
2019-04-22 09:56:50 +02:00
Vasily dafc977bbe Add Linux sendKeyboardInput
This implementation has several problems.
1) It only really deals with Latin1 characters. This is the same as the
Windows implementatino.
2) It doesn't handle modifier keys at all. This is also a problem with
the Win implementation.

This is an interim solution until a unified strategy can be made for
both Windows/Linux.
2019-04-22 09:56:50 +02:00
Vasily 4ec1fbf201 Add noX11 flag to Linux compilations
This allows users that are not using X11 to still compile the
application.
2019-04-22 09:56:50 +02:00
Vasily d0a2e15dbf Remove run-with-library.sh file from Linux builds
No longer necessary after adding '-Wl,-rpath,\'\$$ORIGIN\''.
2019-04-22 09:56:50 +02:00
Vasily b60113fb8e Replace GCC version regex with simpler solution 2019-04-22 09:56:50 +02:00
Vasily 9cfaf68a92 Update GCC compiler to not use hardcoded g++-7
Newer versions of Ubuntu ship with >g++-7, so there will be less of a
need as time goes on to perform this hack.
2019-04-22 09:56:50 +02:00
Vasily d139c34a67 Give clang/gcc explicit path to third-party libs
Qt Creator on Linux does not recognize the previous solution. Adding the
$$PWD makes the IDE work.
2019-04-22 09:56:50 +02:00
Vasily bdf66a658b Make Linux look in current folder for OpenVR lib 2019-04-22 09:56:50 +02:00
Vasily 381fe3aee3 Add Ctrl+C/Ctrl+V keybinds to X11 version 2019-04-22 09:56:50 +02:00
Vasily 1536059a4b Replace X11 enter key
Tester @Goofybud on Debian reported that the enter button did not work.
There are apparently 4 different enter buttons in X11:
    XK_Linefeed
    XK_Return
    XK_KP_Enter
    XK_ISO_Enter

I am attempting XK_Return because it seems like the most obvious next
attempt.
2019-04-22 09:56:50 +02:00
Vasily 30ef80d19c Update X11 package on Travis, clarify qt build specs
macx is also unix, apparently meaning it's necessary to distinguish
between the two.
2019-04-22 09:56:50 +02:00
Vasily 86ec4975fc Add Linux impl of some keyboard inputs 2019-04-22 09:56:50 +02:00
Vasily 860eca1956 Add compiling on Ubuntu for X11 funcs 2019-04-22 09:56:50 +02:00
Vasily 7a3737e0de Initial X11 groundwork 2019-04-22 09:56:50 +02:00
Vasily 78d715ed4c Update documentation for version strings 2019-04-20 09:52:18 +02:00
Vasily b4e7b4cc8d Change version hash suffix to be first 8 characters
Github shows the first 8 instead of the last 8, this will make
comparison easier.
2019-04-20 09:12:56 +02:00
Vasily 7bf53cf081 Add more documentation on version strings 2019-04-20 08:57:36 +02:00
Vasily 13b3ba7a56 Update docs on version numbers for new system 2019-04-19 22:30:04 +02:00
Vasily 0e8e26d553 Change version name to 3.1.0-dev
The previous -new appendix was just to make sure the old name wasn't
being used instead.
2019-04-19 22:30:04 +02:00
Vasily 4450b9b38a Add version number to Windows exe file description
The "real" version number doesn't accept non-integers. This should make
debugging easier.
2019-04-19 22:30:04 +02:00
Vasily bb1d3e16fb Convert executable icon to new method
Manually creating an RC file was the Qt 4 way. The Qt 5 way is just
giving it an icon.

When an RC_FILE isn't manually created Qt will attempt to create one. If
there are non-integers in the version number the compilation will crash.

AdvancedSettings_resource.rc is a build artifact on Windows.
2019-04-19 22:30:04 +02:00
Vasily 164158330e Convert C++ version string to be define instead of include
This allows Qmake to use the version number as well as not requiring all
other uses of the version string to strip double quotes from it. This
also reduces the fragility of the version string as it was required to
be a valid C++ char*, even in contexts where that wouldn't matter.
2019-04-19 22:30:04 +02:00
Vasily 9bebfe3067 Add build directory to .gitignore
The Linux build process creates this directory and uses it. It should
not be committed.
2019-04-19 22:29:21 +02:00
Vasily 5c4e8a3486 Make version append script respect release builds
Users do not care about commit numbers and it only serves to confuse
them. Release builds should not contain build metadata since there
should only be one definitive version.
2019-04-19 22:29:21 +02:00
Vasily c36dd70f60 Change build metadata separator from - to +
SemVer 2.0.0 requires a plus for build metadata.

https://semver.org/
`Build metadata MAY be denoted by appending a plus sign and a series of
dot separated identifiers immediately following the patch or pre-release
version. Identifiers MUST comprise only ASCII alphanumerics and hyphen
[0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata SHOULD be
ignored when determining version precedence. Thus two versions that
differ only in the build metadata, have the same precedence. Examples:
1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.`
2019-04-19 22:29:21 +02:00
Vasily 5eea5d7e93 Make AppVeyor only use last 8 digits of hash 2019-04-19 22:29:21 +02:00
Vasily 0ec39f7714 Add double quotes around new version string 2019-04-19 22:29:21 +02:00
Vasily 3d13c68303 Move AppVeyor version string script to build section
It does not work in the init section for some reason, with python giving

python .\\build_scripts\\append_to_version_file.py
%APPVEYOR_REPO_COMMIT%
python: can't open file '.\\build_scripts\\append_to_version_file.py':
[Errno 2] No such file or directory
2019-04-19 22:29:21 +02:00
Vasily 72a319bc1e Make Python replace version file responsible for file writes
While the initial idea of having cmd/PS/bash actually write the changes
to file, the integration with the AppVeyor YAML just made it really
frustrating.
2019-04-19 22:29:21 +02:00
Vasily 4e781fa74a Make append version file more cross platform 2019-04-19 22:29:21 +02:00
Vasily af98c357fc Add version number to start of build script 2019-04-19 22:29:20 +02:00
Vasily 9303d93f27 Make appveyor able to inject git commit into version 2019-04-19 22:29:20 +02:00
Vasily a74f0cad49 Make NSIS and Win build scripts remove " character
It is not strictly necessary in the Python version because it's being
appended to a batch command, but in order to have things make sense if
the mechanism of dispatching commands changes the program will strip
double quotes.
2019-04-19 22:29:20 +02:00
Vasily 6cf009e915 Convert C++ code to read version string from file
This is definitely not a pretty thing. Double quotes are required around
the string which means they'll need to be removed in the NSIS and Python
scripts.
2019-04-19 22:29:20 +02:00
Vasily cd1522b9e2 Make windows build scripts read file for version number 2019-04-19 22:28:46 +02:00
Vasily e91c22d20a Change NSIS to look in file for version string 2019-04-19 22:28:06 +02:00
Vasily 82e2d1c863 Update version string to append "-dev" 2019-04-19 18:20:20 +02:00
Vasily 387ae30899 Fix indentation with clang-format 8
AppVeyor automatically updated to LLVM 8 while everything else was on 7.
It is not possible to downgrade to LLVM 7 on AppVeyor, so we'll update
everything else to LLVM 8.
2019-04-19 15:29:18 +02:00
Vasily 14e2a1a3d8 Add version output to Travis 2019-04-19 15:29:18 +02:00
Vasily 89ad18ef4c Add version output to AppVeyor 2019-04-19 15:29:18 +02:00
Vasily 2cee659c2d Update windows build docs for Qt 5.12
5.12.2 is the latest version and so the most likely version for people
to download.
2019-04-17 20:51:34 +02:00
Vasily 28700575ec Replace single quotes with double quotes
Variable was not being expanded otherwise.
2019-04-17 20:51:34 +02:00
Vasily e83363052a Add QT_SELECT to TL;DR: versions 2019-04-17 20:51:34 +02:00
Vasily ed9e4008af Make Linux build scripts directory agnostic
Using the script location as an anchor, the scripts can now be called
from anywhere and work.
2019-04-17 20:51:34 +02:00
Vasily 6895a44ddb Refactor build_linux.sh into configure.sh
This moves all the error handling and setup into configure.sh, for a
cleaner script.
2019-04-17 20:51:34 +02:00
Vasily 5fad6ca4d1 Add table of contents and reduce indentation of headers
The #### headers do not look very distinct in Github markup, reducing
the header indentation will make them stand out more.
2019-04-17 20:51:34 +02:00
Vasily 1cbfd7173b Update documentation for packages required on Linux 2019-04-17 20:51:34 +02:00
Vasily bcfcb72d18 Filter qt headers with regex 2019-04-17 20:51:34 +02:00
Vasily bd5b913f20 Add qt to clang system header prefixes
Clang-tidy will error on them otherwise.
2019-04-17 20:51:34 +02:00
Vasily 176687e0aa Update travis Qt PPA to 5.12 2019-04-17 20:51:34 +02:00
Vasily b5d63c8166 Update required Qt version to 5.12
On Ubuntu 16.04 and 18.04 it is not possible to get Qt 5.12 from the
official repo. You will need to get it from
https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.12.2-bionic
which places the files in /opt. This leads qmake to including the files
as non system headers, which makes them spam errors. Adding them as
-isystem headers first prevents this.
2019-04-17 20:51:34 +02:00
Vasily a631aefb05 Update whitespace in .pro file 2019-04-17 20:51:34 +02:00
Vasily b53ebb699f Remove version specific header files for KeyboardInput
The headers were identical after no longer using the abstract class for
platform independence.
2019-04-04 14:01:11 +02:00
Vasily e7df60311c Convert keyboardinput from class to regular header
No consistent state is needed so it doesn't make sense for it to be a
class.
2019-04-04 14:01:11 +02:00
Vasily 82d44b4ab5 Move KeyboardInput file into keyboardinput folder 2019-04-04 14:01:11 +02:00
Vasily c8f4ea4ea0 Convert KeyboardInput to non-virtual class 2019-04-04 14:01:11 +02:00
Vasily 70381ea680 Add instruction to desktop overlay page
It is not apparent that reopening the overlay applies the changes. The
text will make that apparent. Centered to improve visibility.
2019-03-31 22:31:26 +02:00
Vasily 3cb04f4b90 Update documentation for the desktop overlay page 2019-03-31 22:31:26 +02:00
Vasily 1f7e731de1 Improve abstraction in update function 2019-03-31 22:31:26 +02:00
Vasily c0f6f2f621 Remove faulty function to set value with keyboard 2019-03-31 22:31:26 +02:00
Vasily e0ea7e3083 Fix incorrect behavior in QML 2019-03-31 22:31:26 +02:00
Vasily cba76f6846 Remove old desktop width C++ code 2019-03-31 22:31:26 +02:00
Vasily ab901e90fc Implement new way of handling Desktop Overlay width 2019-03-31 22:31:26 +02:00
Vasily 760d262a57 Add page to change desktop overlay translation
The implementation is simple 3D vector scaling and addition. The
HmdMatrix34_t consists of a 3x3 rotation matrix and a 3D vector for
position.

The overlay position is only updated whenever a new overlay is changed
because we need the old overlay position in order to modify it. The
openvr call to get the position is only updated whenever you open the
menu.

A new page was created due to lack of space on the utilities page.
2019-03-31 22:31:26 +02:00
Vasily 2e42773529 Add special message to Qt handler
This makes it more obvious where an error came from.
2019-03-31 14:19:05 +02:00