Separate from which visual component library we'll be using, we must first have a solid design for our user-interface, before we can even consider implementing it.
A quick search shows there exist many user-interfaces, from which we can learn what to do, and what not to do.
In this issue, discuss all considerations, reach consensus, create a mock-up, and prepare all other things required for building a suitable, modern, fast, user-friendly user-interface for Cxbx-Reloaded.
Any work should go into https://github.com/literalmente-game/CxBx-Reloaded-QT-GUI until it is deem ready to go with v0.2 milestone. Special thanks to @literalmente-game, and any other contributors work on it, for working on GUI with QT cross-platform library.
Current ideas for new GUI v2:
If I may, here my thoughts on this:
https://github.com/ocornut/imgui seems like The library to use for adding a GUI on top of the Xbox output...
Ideas from @PatrickvL about the new GUI:
If you're going to display titles in a list, you could make the column order, width and visibility configurable.
Via right mouse button popup menu
Only on header row of course. A secondary view would be like Windows explorer : a grid of logos with subscript title, and a bottom panel with details on selected title. Possibly updated when hovering.
Double click would execute default action on a title. Make default action configurable (launch, show single title page view, goto internet URL, or whatever other actions there are per title)
The single title page view should hide the filter bar, which should be on top of the list and grid views
In list view, the filter bar could look much like in excel, offering drop-down filter options per column
In grid view, the filter be could be just a free text field
The single title page view could show additional details, not available in list columns or grid cells, like: all xdk library versions, total size on disc, number of xbe's, all embedded logos, timestamp previous launch, duration previous emulation, total sum of all emulation durations, statistics, and whatever else we might think up. For configuration, allow choosing between variants. Offer at least one default (and a reset to default option).
Allow copy, rename and delete of configurations.
The config view should replace the title views.
Close config should ask to save when changes aren't saved yet.
The title database itself could be scanned each time from scratch.
Or stored in a MySQL database or something.
Technically, we want to support archive formats too: XISO, bin+cue, rar, zip, 7z to name a few
Database could cache all scanned title properties, and store additional gathered emulation data
At some point we might also want screenshot and or movie recording feature. Also, a GUI overlay during emulation, for a debugging console, trainer activation, statistics, etc - also in full-screen mode.
Also possible could be ripping tools, extracting models, samples, etc
The title database itself could be scanned each time from scratch.
Or stored in a MySQL database or something.
If this were to be a local database, it would probably be better to use SQLite.
Work on this is being done here : https://github.com/literalmente-game/CxBx-Reloaded-QT-GUI and here : https://github.com/HwapX/CxBx-Reloaded-QT-GUI
Most helpful comment
If this were to be a local database, it would probably be better to use SQLite.