Commit Graph

1880 Commits

Author SHA1 Message Date
Erik Abair 69dcbe9b30 ui: Make monitor text selectable 2022-06-07 22:06:14 -07:00
7oxicshadow ebcd5078e4
ui: Make keyboard controller scancode map configurable 2022-05-28 17:59:32 -07:00
Matt Borgerson f375a0cb80 ui: Fix port padding scale 2022-05-17 16:56:14 -07:00
Erik Abair 496a7b7099 ui: Fix build with --enable-renderdoc and DEBUG_NV2A_GL 2022-05-10 15:16:09 -07:00
Matt Borgerson 6f3470acc8 ui: Use SDL_GL_GetDrawableSize when rendering framebuffer 2022-05-09 11:52:15 -07:00
Mason Thompson 722579bf01 menubar.cc: Add F12 Shortcut to Screenshot 2022-05-07 23:02:51 -07:00
Matt Borgerson 41e9c669d9 ui: Add Windows directory selection 2022-05-07 21:55:45 -07:00
Matt Borgerson 156c1edd2b ui: Use glReadPixels instead of glReadnPixels for screenshot
macOS doesn't support glReadnPixels.
2022-05-07 20:22:04 -07:00
Matt Borgerson 48bf99f060 ui: Fix flags for directory open 2022-05-07 20:21:58 -07:00
Matt Borgerson 328eff8eaa ui: Create vector of main menu views 2022-05-07 20:21:51 -07:00
Matt Borgerson 9c06980275 ui: Redesign user interface
Introduces a new user interface that looks much nicer, is easier to
navigate with controllers, provides more context to users, and is
scalable. Some additional features are included.

* Adds 'popup menu' with actions that can be used easily from controller
* Adds 'main menu', unifying other configuration dialogs
* Adds port-forwarding user interface
* Adds screenshot feature
* Adds volume control feature
* Adds gamepad auto-bind option
* Adds vsync configuration option
* Adds auto UI scaling
* Adds preferred window size selection
* Adds AV pack selection
* Exposes some existing config items in GUI
2022-05-07 16:09:34 -07:00
Revix 8a89108a50 ui: Add CPU logging in log 2022-04-29 14:19:24 -07:00
revix 38d1036b2c
ui: Display hardware info in About window 2022-04-27 00:50:15 -07:00
Matt Borgerson 87919cfb13 ui: Improve config error handling 2022-04-24 21:15:57 -07:00
Matt Borgerson 8d018d8daa ui: Don't check for updates on the welcome screen 2022-04-24 21:15:57 -07:00
Matt Borgerson 8afd391ad0 ui: Show welcome screen until first save 2022-04-24 21:15:57 -07:00
Matt Borgerson dc669aca41 config: Change settings extension to .toml 2022-04-24 21:15:57 -07:00
Matt Borgerson 4b50b65fdc tomlplusplus: Compile independently 2022-04-24 21:15:57 -07:00
Matt Borgerson d14cdbc7ba config: Migrate to genconfig system 2022-04-24 21:15:57 -07:00
Matt Borgerson fe57f7a2b2 meson: Build Dear ImGui more properly as a library 2022-04-24 21:15:57 -07:00
Matt Borgerson 2ca14df4f3 ui: Drop inih library 2022-04-24 21:15:57 -07:00
Matt Borgerson 6b7721db58 input: Move from haptic to rumble API 2022-04-23 14:56:27 -07:00
Matt Borgerson 294437a28c input: Move input init to main thread 2022-04-23 14:56:27 -07:00
Matt Borgerson d48bb83c33 ui: Remove cpuid.h include for Windows 2022-04-23 14:56:27 -07:00
Matt Borgerson 2d5471c5be vl: Move -config_path handling into main 2022-03-22 17:02:03 -07:00
wutno cd5d3df626 ui: Save screen size on resize
Co-authored-by: 7oxicshadow <7oxicshadow@googlemail.com>
2022-03-16 22:48:20 -07:00
wutno 2b27021eef ui: Start in 1280x960 2022-02-22 22:12:39 -07:00
Erik Abair 2d95fda6cd nv2a: Fix spelling error in renderdoc config 2022-02-10 21:57:44 -07:00
Erik Abair f3c7a3afd1 nv2a: Add --enable-renderdoc build config 2022-02-10 14:41:43 -07:00
Erik Abair a13f3f48a2 nv2a: Improve RenderDoc triggering 2022-01-31 20:46:41 -07:00
octopoulos 73813eac74 ui: 4:3 scale option 2021-12-28 15:38:12 -07:00
Mason Thompson b8141bbfdc
ui: Print OS version to log 2021-12-28 15:25:09 -07:00
Matt Borgerson 69ceec4446 nv2a: Support gamma correction 2021-11-23 17:49:44 -07:00
Ryzee119 5faa2419e7 input: Add controller internal usb hub 2021-11-19 20:07:41 -07:00
Ryzee119 22912cbbf7 input: Add USB Daughterboard 2021-11-19 20:07:41 -07:00
Silent 5ae39a321a
util/oslib-win32: Use UTF-16 filesystem API
* Introduces qemu_fopen, qemu_access wrappers, and modifies qemu_open to
  support converting stored UTF-8 paths to UTF-16 to use Unicode
  filesystem API on Windows platform.
* Migrates several native open, fopen, and access calls to their
  qemu_* counterparts to resolve Unicode path handling issues on
  Windows.
2021-10-24 12:09:12 -07:00
Mason Thompson 631c818c1e
ui: Add monitor keyboard shortcut text 2021-09-27 13:19:06 -07:00
7oxicshadow d7e926fc63 ui: Add option for a fixed 16:9 display ratio 2021-09-16 00:12:47 -07:00
Alexandre Bouvier 05d21c6e94 xemu-hud.cc: Fix compilation error
when using CFLAGS="-Wformat -Werror=format-security"
2021-09-15 01:31:44 -07:00
Matt Borgerson 8b373fde9b ui: Set AIO context on UI thread 2021-09-05 14:50:41 -07:00
Matt Borgerson 0e63232072 v6.1.0 release
-----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmElJYgZHHBldGVyLm1h
 eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3hUEEACqIL6/qyHjqKVX5+0zgJpo
 0iMVUjKGtQhHFdgZi/JI/uUcT6FsClGqx+XRtxWUP10kGV6iPF+GVlnXSx+iZCui
 +Is1p9ajLuDcrTj+nOOI9r9Km05C25Ub0A3YropzHMTKx64M3CwXJKvSz42lFHur
 A1qx1BefzC0JzVv8fa8TAca0JKGC+Hv/2Lstw/ctxdKIG94mcFjlQrzK4DZxsu/g
 QC3kZ7ABJu8UJTzB0KgtD2krsnnO5smePkS9WVlnyK86KWtp99U/T7HyCmRsbxy0
 EhPzK61bumMynFZaqOsoj+ppE0ued6hEHdKASCXGa/GEa/RE2YbW/gq9nJ1OR/ii
 EPYljNR6Jv5NfO79zDC+jW9EOk1JnP1A4x95WVSJSaJr+OEKgocxouI2IV1o0epf
 1xHI1aBJauIZ7mklGaCWJ/uvMoxcH+ngqbVDCX9jnzYYKadoWu8Tv5Zyam6bOhKC
 Y4FOfnp/a+wjS8eMNmn+ios/WjTss9AILyn6GaTVLSxJ278Iqz28nlRAVjiKDiTS
 KQYX9mp0ScpUzZBhES4mzlPpCyRc0fC1vM1jfRwn+N8cPslBLOEDB6gLnwpRmadO
 26CRiuA8d3qu3Efkdqz6xRcnIM9opPG/4Gj/SZw4V0kS87z/Y5o1nQiZgaU1tZ8q
 tOXcPDnMXJbCly7veMRfLQ==
 =XneO
 -----END PGP SIGNATURE-----

Merge tag 'v6.1.0' into merge/qemu-v6.1.0

v6.1.0 release
2021-09-04 15:11:03 -07:00
Peter Maydell 6ff5b5d6d5 ui/sdl2: Check return value from g_setenv()
Setting environment variables can fail; check the return value
from g_setenv() and bail out if we couldn't set SDL_VIDEODRIVER.

Fixes: Coverity 1458798
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210809161424.32355-1-peter.maydell@linaro.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-08-10 10:56:39 +02:00
Volker Rümelin 7bce330ae4 ui/gtk: retry sending VTE console input
Commit 584af1f1d9 ("ui/gtk: add a keyboard fifo to the VTE
consoles") changed the VTE chardev backend code to rely on the
chr_accept_input() callback function. The code expects a
chr_accept_input() call whenever qemu_chr_be_can_write() bytes
were written. It turns out this is wrong. Some chardev
frontends only call this callback after can_write was 0.

Change the code to send data until the keyboard fifo is empty
or qemu_chr_be_can_write() returns 0.

Fixes: 584af1f1d9 ("ui/gtk: add a keyboard fifo to the VTE consoles")
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210810063257.17411-1-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-08-10 10:39:46 +02:00
Peter Maydell 399a04775e ui/input-barrier: Move TODOs from barrier.txt to a comment
docs/barrier.txt has a couple of TODO notes about things to be
implemented in this device; move them into a comment in the
source code.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210727204112.12579-3-peter.maydell@linaro.org
2021-08-02 12:55:51 +01:00
Volker Rümelin 584af1f1d9 ui/gtk: add a keyboard fifo to the VTE consoles
Since commit 8eb13bbbac ("ui/gtk: vte: fix sending multiple
characeters") it's very easy to lock up QEMU with the GTK ui.
If you configure a guest with a serial device and the guest
doesn't listen on this device, QEMU will lock up after
entering two characters in the serial console. That's because
current code uses a busy loop for the chardev write retries
and the busy loop doesn't terminate in this case.

To fix this problem add a fifo to the VTE consoles and use the
chr_accept_input() callback function to write the remaining
characters in the queue to the chardev.

The fifo has a size of 4096 bytes, so one can copy and paste
a fairly large URL or file path.

Fixes: 8eb13bbbac ("ui/gtk: vte: fix sending multiple characeters")
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Message-Id: <20210725165039.5242-1-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00
Akihiko Odaki d4a1210480 ui: update keycodemapdb submodule commit
The change of ui/keycodemapdb effective on QEMU is only commit
d21009b1c9f94b740ea66be8e48a1d8ad8124023, which adds mappings for key
codes added in commit d7696ff884.

d21009b1c9f94b740ea66be8e48a1d8ad8124023 Add QEMU QKeyCode "lang1" and "lang2"
320f92c36a80bfafc5d57834592a7be5fd79f104 rust: fix cargo clippy
e62d42f0fd76f7bb8bf78385a83c060e66ff52b0 tests: add rust test
3e25e1ca1772fc3f2039f739f8f920450dc68e50 gen: add --lang rust
9133a0b8022d1fb063a81cc2ba3b627c14ccdfd1 tests: fix argument order

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <20210705075912.2280-1-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00
Akihiko Odaki 40a9aadbc9 ui/cocoa: Fix the type of main's argv
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210708165619.29299-1-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00
Akihiko Odaki 074c0653c2 ui/egl-headless: Remove a check for CONFIG_OPENGL
ui/egl-headless is only built when CONFIG_OPENGL is defined because it
depends on CONFIG_OPENGL without condition. Remove a redundant
conditonal in ui/egl-headless.c

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210714055646.85952-1-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00
Akihiko Odaki 9a6c69d389 ui/spice: Use HAVE_SPICE_GL for OpenGL checks
Some code in ui/spice used CONFIG_OPENGL for OpenGL conditionals, but
SPICE also depends on CONFIG_GBM and SPICE server whose version is
0.13.1 or later for OpenGL. Always use HAVE_SPICE_GL, which defines the
precise condition.

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210714055735.86050-1-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00
Dennis Wölfing cd6c768f6a ui/gtk: Fix relative mouse with multiple monitors
To handle relative mouse input the event handler needs to move the mouse
away from the screen edges. Failing to do so results in the mouse
getting stuck at invisible walls. However the current implementation for
this is broken on hosts with multiple monitors.

With multiple monitors the mouse can be located outside of the current
monitor which is not handled by the current code. Also the monitor
itself might be located at coordinates different from (0, 0).

Signed-off-by: Dennis Wölfing <denniswoelfing@gmx.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210720143940.291413-1-denniswoelfing@gmx.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-07-26 10:24:49 +02:00