Commit graph

138 commits

Author SHA1 Message Date
Kyle Kienapfel
a59d4972af Controller Applet had instance of Undocked, make Handheld
Remember that time we renamed the Undocked option to Handheld in the
status bar, and then later remembered the Controller Configuration?

Scrolling through Transifex I noticed that we still have one instance of
"Undocked" in the text.
2022-10-20 06:55:23 -07:00
Narr the Reg
ca0d1fd4f1 yuzu: Silence some clang warnings 2022-09-21 11:51:31 -05:00
lat9nq
554b7e220b yuzu: Use a debugger to generate minidumps
yuzu: Move mini_dump out of core

startup_checks: Better exception handling
2022-09-04 21:36:04 -04:00
Steve
6907d1758d Controller bugfixes in profile select (#8716)
* Controller bugfixes in profile select, closes #8265

2 fixes for using a controller in profile select dialog.

Pressing 'B' cancels the launch of the game
Using controller to select a profile now correctly sets the index to use for the launch

* Added brackets to if statements as requested.
2022-08-05 10:02:04 -05:00
Morph
d3e35cd462 qt_software_keyboard: Fix infinite loop when moving between buttons
There was a bug where, when using the numeric keyboard, moving between buttons resulted in an infinite loop, resulting in a stuck state.
This was due to prev_button being the only one enabled in that row or column, causing the condition in the while loop to always be true.
To fix this, detect whether we have returned to that initial row/column and break out of the loop.
2022-07-24 07:27:41 -04:00
Morph
9abacc2f86 applet/swkbd: Implement optional symbol keys
These are only used in the numeric keyboard, and correspond to the keys to the left and right of the "0" key on the numeric keyboard.
2022-07-24 07:21:02 -04:00
Morph
6cfb255d69 qt_web_browser: Fix button inputs with QtWebEngine
Button inputs were broken as button was assumed to be the bit position of NpadButton prior to the input rewrite. Since this was changed to use NpadButton directly, we should count the number of trailing zeros to determine the bit position.
2022-07-05 20:34:10 -04:00
Morph
da82213c60 Merge pull request #8477 from Docteh/less_global
tweak API usage in qt_web_browser.cpp
2022-07-05 05:57:26 -04:00
german77
c7890ebccc core: Replace all instances of ResultCode with Result 2022-06-26 20:21:37 -05:00
Kyle Kienapfel
ef1aa7baf9 tweak API usage in qt_web_browser.cpp
In testing future versions of Qt I forgot to compile with `YUZU_USE_QT_WEB_ENGINE`, so with that flag enabled there are two issues that cropped up.

1. yuzu currently uses setRequestInterceptor, added in Qt 5.6, deprecated in 5.13 with this explaination at https://doc.qt.io/qt-5/qwebengineprofile-obsolete.html
Interceptors installed with this method will call QWebEngineUrlRequestInterceptor::interceptRequest on the I/O thread. Therefore the user has to provide thread-safe interaction with the other user classes. For a duration of this call ui thread is blocked. Use setUrlRequestInterceptor instead.

2. QWebEngineSettings::globalSettings() pointer no longer exists in later versions of Qt

From what I can tell, QtNXWebEngineView doesn't need to set these globally,
when we make changes to settings(), QtWebEngineView::page() creates the page
object if it doesn't exist yet. I don't see the page object being destroyed
or otherwise replaced, except via destroying the QtNXWebEngineView object.

The globalSettings() make sense if Pages or Views objects are being
created outside of yuzu's control.

To test this I've compared what BrowseNX and Odyssey's Action guide do in mainline 1049 and this PR.

For now we're going to go up the chain to QWebEngineProfile::defaultProfile()->settings()
2022-06-21 17:48:17 -07:00
Liam
c1771c98f3 common: Change semantics of UNREACHABLE to unconditionally crash 2022-06-13 20:09:00 -04:00
lat9nq
bb9dc5098d qt_software_keyboard: Address review feedback
Use auto and a more descriptive variable name.

Secondly, fix some C++ misconceptions or constructing too many objects.

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
2022-05-16 14:44:01 -04:00
lat9nq
9843438669 qt_software_keyboard: Use Common::U16StringFromBuffer
See bef52745b
2022-05-15 18:08:08 -04:00
Morph
2b87305d31 general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
Shoegzer
24a303f89f Add include to fix compiling 2022-03-23 16:18:48 -04:00
ameerj
98a4a74a63 qt_web_browser: Add missing includes 2022-03-21 22:42:14 -04:00
ameerj
012963c513 yuzu: Reduce unused includes 2022-03-20 02:25:09 -04:00
Morph
e47b5e6a26 general: Rename NewUUID to UUID, and remove the previous UUID impl
This completes the removal of the old UUID implementation.
2022-02-05 13:56:21 -05:00
Morph
26f74468c4 profile: Migrate to the new UUID implementation 2022-02-05 13:56:21 -05:00
Narr the Reg
6b132458dc yuzu: config: Vibrate the controller while configuring vibration strength 2022-02-02 14:54:24 -06:00
german77
8b989ac3ae controller_applet: Only populate supported controllers 2022-01-01 21:42:17 -06:00
german77
5dab578691 core/hid: Fix controller type validation 2021-12-29 22:51:53 -06:00
bunnei
5192e8e092 core: hle: Remove global HLE lock.
- This was added early on as a hack to protect against some concurrency issues.
- It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
2021-12-17 16:05:51 -08:00
Morph
21ef5f290d qt_software_keyboard: Fix out of bounds array access
We were unconditionally accessing the keyboard_buttons array, even if the bottom_osk_index was for the numberpad, leading to an out of bounds array access. Fix this by accessing the proper array for the current button when the index is for the numberpad.
2021-12-13 19:04:07 -05:00
german77
21872bec53 yuzu: Implement basic controller navigation 2021-12-02 15:17:44 -06:00
Morph
1524ed6776 qt_controller: Make use of (Enable/Disable)AllControllerConfiguration
This also moves the use of DisableConfiguration to the destructor.
2021-11-29 19:21:50 -05:00
german77
d7065ddfda qt_controller: Fix input when the controller applet is ignored 2021-11-28 21:03:42 -06:00
german77
8df8dd6c5c config: Remove vibration configuration 2021-11-26 19:31:04 -06:00
german77
83c9e8c4a2 applet/controller: Enable configuring mode while the applet is open 2021-11-26 18:55:28 -06:00
german77
8517d89be0 core/hid: Rename NpadType to NpadStyleIndex 2021-11-24 20:30:27 -06:00
german77
4736326a05 second commit lion review 2021-11-24 20:30:26 -06:00
german77
a8852024b6 settings: Fix Debug controller type options 2021-11-24 20:30:26 -06:00
german77
6743753bc7 web_applet: Replace HIDButton with NpadButton 2021-11-24 20:30:25 -06:00
german77
6774c7988b configuration: Migrate controller settings to emulated controller 2021-11-24 20:30:25 -06:00
german77
0292fe0198 kraken: Fix errors from rebase and format files 2021-11-24 20:30:24 -06:00
german77
a197599d08 core: Update input interpreter 2021-11-24 20:30:24 -06:00
german77
5709d1271e Qt_applets: Use new input 2021-11-24 20:30:23 -06:00
german77
341d3e2f11 core/hid: Move input_interpreter to hid 2021-11-24 20:30:22 -06:00
Morph
ab736f254f applets/swkbd: Skip text checking if the text has been confirmed
Confirm means that the text has already been checked by the application to be correct, but is asking the user for confirmation.
The confirmation text itself seems to be corrupted though, this needs to be investigated.

Fixes the software keyboard in Famicom Detective Club: The Missing Heir
2021-11-08 13:05:50 -05:00
Morph
b4b6f581e0 qt_web_browser: Add missing QApplication include 2021-10-15 18:48:50 -04:00
lat9nq
3aec34df0a yuzu qt: Remove global system instances from config, WaitTree, main 2021-10-07 13:50:13 -04:00
v1993
1ec34ff2ce Use subdirectory of main data directory for QtWebEngine storage
Previously, an unrelated directory was used for this. Keep everything together for consistency.
2021-09-24 00:49:39 +03:00
Valeri
35c40cf0aa qt_software_keyboard: fix copy-paste error 2021-08-19 22:17:15 +03:00
jls47
20083ccd43 qt_web_browser: Fix lambda capture for HIDButton 2021-07-27 11:31:12 -04:00
jls47
85e29934fd qt_web_browser: Focus on the first link element
Focusing on the first link element fixes element navigation upon loading the web applet in games such as Super Mario Odyssey
2021-07-27 11:31:11 -04:00
Morph
30498f3ce8 applets: Append qt_ prefix to Qt frontend applets 2021-07-14 01:07:09 -04:00
Morph
ed52a83511 applets/swkbd: Make use of std::move where applicable
Avoids redundant string copies
2021-05-27 23:45:56 -04:00
bunnei
451293a654 Merge pull request #6339 from Morph1984/swkbd-queuedconnection
applets/swkbd: Make use of QueuedConnection in returnPressed signal
2021-05-25 18:23:08 -07:00
Morph
e8f1d7145e common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)
* common: fs: fs_types: Create filesystem types

Contains various filesystem types used by the Common::FS library

* common: fs: fs_util: Add std::string to std::u8string conversion utility

* common: fs: path_util: Add utlity functions for paths

Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library

* common: fs: file: Rewrite the IOFile implementation

* common: fs: Reimplement Common::FS library using std::filesystem

* common: fs: fs_paths: Add fs_paths to replace common_paths

* common: fs: path_util: Add the rest of the path functions

* common: Remove the previous Common::FS implementation

* general: Remove unused fs includes

* string_util: Remove unused function and include

* nvidia_flags: Migrate to the new Common::FS library

* settings: Migrate to the new Common::FS library

* logging: backend: Migrate to the new Common::FS library

* core: Migrate to the new Common::FS library

* perf_stats: Migrate to the new Common::FS library

* reporter: Migrate to the new Common::FS library

* telemetry_session: Migrate to the new Common::FS library

* key_manager: Migrate to the new Common::FS library

* bis_factory: Migrate to the new Common::FS library

* registered_cache: Migrate to the new Common::FS library

* xts_archive: Migrate to the new Common::FS library

* service: acc: Migrate to the new Common::FS library

* applets/profile: Migrate to the new Common::FS library

* applets/web: Migrate to the new Common::FS library

* service: filesystem: Migrate to the new Common::FS library

* loader: Migrate to the new Common::FS library

* gl_shader_disk_cache: Migrate to the new Common::FS library

* nsight_aftermath_tracker: Migrate to the new Common::FS library

* vulkan_library: Migrate to the new Common::FS library

* configure_debug: Migrate to the new Common::FS library

* game_list_worker: Migrate to the new Common::FS library

* config: Migrate to the new Common::FS library

* configure_filesystem: Migrate to the new Common::FS library

* configure_per_game_addons: Migrate to the new Common::FS library

* configure_profile_manager: Migrate to the new Common::FS library

* configure_ui: Migrate to the new Common::FS library

* input_profiles: Migrate to the new Common::FS library

* yuzu_cmd: config: Migrate to the new Common::FS library

* yuzu_cmd: Migrate to the new Common::FS library

* vfs_real: Migrate to the new Common::FS library

* vfs: Migrate to the new Common::FS library

* vfs_libzip: Migrate to the new Common::FS library

* service: bcat: Migrate to the new Common::FS library

* yuzu: main: Migrate to the new Common::FS library

* vfs_real: Delete the contents of an existing file in CreateFile

Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now.

* input_profiles: Don't iterate the input profile dir if it does not exist

Silences an error produced in the log if the directory does not exist.

* game_list_worker: Skip parsing file if the returned VfsFile is nullptr

Prevents crashes in GetLoader when the virtual file is nullptr

* common: fs: Validate paths for path length

* service: filesystem: Open the mod load directory as read only
2021-05-25 19:32:56 -04:00
Morph
54d9cd162d applets/swkbd: Make use of QueuedConnection in returnPressed signal
Some users have reported rare crashes when pressing the Enter key on the keyboard to confirm input in the normal software keyboard, particularly in Super Smash Bros. Ultimate while entering the name of a ruleset or controller layout.

It is suspected that the QLineEdit::returnPressed signal is causing a race condition as confirming input through other means does not produce the crash. Since Qt::QueuedConnection posts an event to the event queue of the callee's thread instead of executing it directly on the caller's thread, this eliminates any potential race conditions from occurring in this scenario.
2021-05-22 03:28:54 -04:00