Commit Graph
35 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 b91bd6af86 Settings: Build the settings screen from pages described as data
Each tab is now a SettingsPage: a list of items (headers, settings, buttons,
hints, links to other pages) that a function builds and views are created
from. Settings are added with page->Setting(&g_Config.x), which takes
the label, the kind of view, the range or choices, units, labels for special
values and the default from the config. The pages keep what depends on the
UI (which settings to show and when, enable rules, and behavior that needs the
screen), and reach the screen through the page's SettingsPageHost.

A page can link to other pages, which open on top of it in the same tab,
under a bar showing where you are, like Tools > Developer tools > Graphics,
where the earlier pages can be clicked to go back to them. The bar has back,
search and help buttons, and the back key also goes back a page (or out of a
search) before leaving the screen. Each page remembers its scroll position.
In portrait there's no tab strip: a page links to the tabs, and the bar shows
just the current page's title. Rotating keeps showing the same page. Moving
between pages only focuses an item when navigating with a keyboard or
controller.

The developer tools are now pages linked from the Tools tab, instead of a
screen of their own. The in-game developer menu and
--start-screen=developertools open the settings on that page. The toggles of
live state (the remote debugger and the MIPS tracer) show and change it
through functions, and pretending to be in-game for the notification tests is
a flag on the OSD. The memory map and memstick tests, only reachable from
commented-out code, are removed.

Search lists the matching settings from all tabs and the pages they link to,
grouped by where they are. Each result goes to the setting on its page,
scrolled to and highlighted (outlined, when picked with a mouse or touch), or
for a page, opens it. This replaces the search tab and the old filter that
hid the views that didn't match, and with them ShowSearchControls. Changing
tabs leaves the search.

The pages, the bar and search are in SettingsPagesDialogScreen, between the
tabbed dialog screen and the settings screen, so the other tabbed screens
keep plain tabs.

Other visible changes:
- Reset buttons that went to the wrong value now go to the real default: the
  touch control auto-hide delay (was 20 seconds instead of 8), the mouse
  wheel delay (1 ms, below its own range, instead of 80) and the UI size (0
  instead of -1 on desktop). The alternative speeds get a reset button.
- Units are shown on more sliders (frames, MHz, seconds, Hz), and popups no
  longer spell out what 0 means in the units, since the zero label does.
  Units of up to three characters (%, x, ms, MHz) aren't translated.
- The Android HW scaler hides the scales the display is too small for,
  instead of cutting the list short.
- Choices are translated in the setting's own section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 15:26:58 +01:00
Henrik Rydgård 26c208c41e RemoteISO: Add (untested) support for the local network permission on Android 17
Part of #21585
2026-06-15 10:00:01 +02:00
Henrik Rydgård 2b9f2672bb UI screens header cleanup 2025-10-29 00:15:41 +01:00
Henrik Rydgård 7ffd72b32e Rename some screen classes 2025-10-29 00:02:43 +01:00
Henrik Rydgård 58456ae950 Remove the UI::EventReturn return values. Makes editing the UI nicer. 2025-09-15 11:09:00 -06:00
Henrik Rydgård 3680bb17d3 RemoteISOScreen: Don't check "allowed" every frame. 2025-08-26 10:12:05 +02:00
Henrik Rydgård 6b4f32bb03 Don't alloc the remote ISO scan thread 2025-04-30 15:53:55 +02:00
Henrik Rydgård 049a496f8b Rework remote ISO UI a bit (more to come) 2024-06-23 15:47:18 +02:00
Henrik Rydgård 6ac4cc4559 Remote disc streaming: Add an option for a "Remote" tab on the main screen 2023-12-28 18:58:47 +01:00
Henrik Rydgård cf587d2ccc More cleanup after making PopupTextInputChoice choose method automatically 2023-06-22 09:01:14 +02:00
Henrik Rydgård 360de9a372 RemoteISO screens: Make them dialogs so ESC works to exit them on PC.
Also fix the background on the main one, and in savedata manager.

See #16605
2023-01-01 21:55:02 +01:00
Unknown W. Brackets f44852bb18 Global: Cleanup virtual/override specifiers.
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Henrik Rydgård 9f3851678e Add tags to all our UI screens. Useful to debug UI problems. 2022-09-16 10:14:00 +02:00
Henrik Rydgård a40b1dec5f Use Path for fullName in dirlisting. Bugfixes.
Buildfixes

UWP: Buildfix.

headless: Buildfix.

Common: Buildfix.

iOS: Buildfixes.

libretro: Buildfix.

Qt: Buildfix.
2021-05-13 10:39:16 +02:00
Henrik Rydgård 4f43cff5ca Move fileutil, net, image loaders, ui to Common. (#13506)
* Move and rename file_util/fd_util to Common/File/FileUtil and DirListing

Let's also move net while we're at it.

Move the ZIM/PNG loaders over to Common.

Move the UI framework into Common

iOS buildfix

* Buildfix

* Buildfixes

* Apple buildfix

* This typo again..

* UWP buildfix

* Fix build of PPSSPPQt, such as it is (it's not in good condition...)

* Guess what? Another buildfix.
2020-10-04 20:48:47 +02:00
Unknown W. Brackets 4914c04989 Windows: Warn if Windows Firewall blocks PPSSPP.
This should alert people who are using Public firewall profiles or
similar, and have their sharing blocked.
2020-03-09 23:01:55 -07:00
Unknown W. Brackets 3a40a39a63 http: Show more detailed status when scanning.
This may not help, but at least it's some information on what's going on.

Ultimately, a firewall will just result in a connection timing out.
2020-03-09 19:57:59 -07:00
Unknown W. Brackets d00eff7137 UI: Allow pinning remote ISO paths. 2019-10-06 12:40:00 -07:00
Unknown W. Brackets 2d7ce0afa3 UI: Allow remote paths to be pinned.
Currently, the listing request is synchronous, but it works fine
otherwise.
2019-10-06 09:31:06 -07:00
Unknown W. Brackets 3e12734b80 http: Use relative paths for remote isos. 2019-10-06 08:50:35 -07:00
Unknown W. Brackets 3a8a2ff933 http: Move web server to core and use flags.
This way we can independently control the debugger and disc sharing, since
debugger could have security impact.
2018-06-07 16:28:01 -07:00
Unknown W. Brackets 721f5877eb http: Allow sharing automatically on PPSSPP start.
Since that might always be something you want, on your desktop.
2017-12-10 18:30:28 -08:00
Henrik Rydgård 3222af5f7a Make remoteiso_subdir and server editable on Android. Fixes #10142. Really need a better mechanism for these fields. 2017-11-16 13:33:10 +01:00
Unknown W. Brackets abe4b750cc UI: Keep Back buttons consistent in http settings.
Also, prevent changing server port while serving.
2017-03-22 00:03:45 -07:00
Unknown W. Brackets 9e390510df Remove legacy InputState. 2017-03-14 22:07:07 -07:00
Fireball Wayne 9ea7d347c1 Remoteiso better http header detection 2017-03-12 01:15:40 -05:00
Fireball Wayne c394b9e26c RemoteISO moved settings to connection screen. 2017-03-11 00:46:51 -05:00
Henrik Rydgard 26a2d42731 Big mutex overhaul - remove our custom ones, make them non-recursive where possible 2017-02-28 11:40:29 +01:00
Henrik Rydgård ba6ab0bd36 Buildfix, warning fix 2017-02-27 23:09:12 +01:00
Florent Castelli e0ff68b3f6 c++11: Remove compat header base/functional.h
We want a proper C++11, not tr1. We don't target those compilers anyway.
2016-10-12 11:32:45 +02:00
Unknown W. Brackets c793efd69a http: Load actual game list. 2016-07-04 00:16:58 -07:00
Unknown W. Brackets 60afdc40b9 http: Implement discovery for game share server. 2016-07-03 22:13:51 -07:00
Unknown W. Brackets 42080f05e2 http: Show a stopping status for clarity. 2016-07-03 22:13:49 -07:00
Unknown W. Brackets 0edc4d1652 http: Check server status asynchronously. 2016-07-03 22:13:47 -07:00
Unknown W. Brackets f4e2ca0359 http: Add a screen under tools for the server. 2016-07-03 22:13:47 -07:00