| Age | Commit message (Collapse) | Author |
|
qt/main: Port part of citra(#3411), open savedata works
|
|
Port #3353 from Citra: "citra-qt: Add customizable speed limit target "
|
|
Port #3902 from Citra: "Add restart hotkey & menu option"
|
|
|
|
|
|
|
|
Avoids the need to rebuild multiple source files if the filesystem code
headers change.
This also gets rid of a few instances of indirect inclusions being
relied upon
|
|
|
|
|
|
We can change this into an early-return if the filename is empty.
There's no need to include all of the code within the if statement.
|
|
This is user-facing text, so it should be marked as translatable by Qt.
|
|
Gets rid of truncation warnings about conversion to int. While we're at
it, we can also de-hardcode the buffer size being used.
|
|
file_sys: Add support for registration format
|
|
We can make the enum class type compatible with fmt by providing an
overload of operator<<.
While we're at it, perform proper bounds checking. If something exceeds
the array, it should be a hard fail, because it's, without a doubt, a
programmer error in this case.
|
|
|
|
|
|
|
|
|
|
Prompts for title type on NCA files.
|
|
Full list of new errors and descriptions in core/loader/loader.h
|
|
|
|
|
|
Add Icons and Metadata Support
|
|
Instead, we make a proper registry class and house it within the main
window, then pass it to whatever needs access to the loaded hotkeys.
This way, we avoid a global variable, and don't need to initialize a
std::map instance before the program can do anything.
|
|
|
|
qt/main: Collapse if statement in UpdateRecentFiles()
|
|
qt: Don't show error dialog when canceling the Load Folder dialog
|
|
This was intermixing signed and unsigned values when they could all just
be signed.
|
|
Given the function accepts a boolean, we don't need to use an if
statement here and repeat ourselves.
|
|
UpdateUITheme()
In OnMenuRecentFile() we don't need to construct a QFileInfo instance
just to check if a file exists, we can just use the static member
function to do that (which Qt's documentation also notes as quicker than
constructing an instance).
In UpdateUITheme(), we just want to try and open the file and check the
success of that operation. Technically speaking, between the existence
check and the open call, the file can be deleted or moved, but still
appear to succeed in code. i.e.
1. Existence check -> Returns true
2. File is moved/deleted
3. Open is called, the return value of which isn't checked
4. Nonsense behavior
This way we combine the existence check and the open into one.
|
|
Previously, when canceling out of the Load Folder dialog, a user would
get an error dialog about the selected folder not containing a main
file, however, by canceling out of the dialog, no selection was actually
made.
|
|
video_core: Eliminate the g_renderer global variable
|
|
XCI and Encrypted NCA Support
|
|
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
|
|
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.
This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
|
|
|
|
|
|
|
|
|
|
Port #3911 from Citra: "citra-qt: optimize settings application"
|
|
|
|
|
|
Port #3594 from Citra: "citra_qt: Add Continue/Pause & Toggle Speed Limit hotkeys"
|
|
|
|
|
|
|
|
Instead of using an unsigned int as a parameter and expecting a user to
always pass in the correct values, we can just convert the enum into an
enum class and use that type as the parameter type instead, which makes
the interface more type safe.
We also get rid of the bookkeeping "NUM_" element in the enum by just
using an unordered map. This function is generally low-frequency in
terms of calls (and I'd hope so, considering otherwise would mean we're
slamming the disk with IO all the time) so I'd consider this acceptable
in this case.
|
|
|
|
|
|
|