the bind buttons used a fixed 100px width which clipped the
"capturing...(5)" label shown while waiting for input. compute the
width from the font metrics of that label plus the qss padding so the
text is never truncated
* Loading modules from bootimage.skprx
* ELF loading with automatic format detection based on the magic value
* New NIDs and modules for kernel-level functions (added manually).
* Implementation of several kernel-level functions. Most of them delegate to user-level counterparts.
Other changes, which are difficult to split:
* Whenever possible, do not relocate modules.
* Patches are now read for eboot.bin only
* ELF dumps are now organized into subfolders named by application/game ID
* Correct implementation of LLE libfiber, even without an LLE sysmodule
when a game already has a compatibility report, the context menu only
lets you copy the vita3k build summary. this adds a second action to
also copy the test environment summary (os, cpu, gpu, ram) so users
can paste it into existing issue comments without having to manually
type it out.
closes#3586
* gui-qt: don't crash on install file delete failures
when you install a .zip, .vpk, .pkg, or firmware .pup and tick the matching "delete after install" option, vita3k tries to remove the installer file from disk. the archive and pkg dialogs use the throwing fs::remove overload, which raises a filesystem_error when the file is locked by another process. since the call runs inside a qt slot, the exception escapes into the qt event loop and the whole emulator goes down with it.
the firmware dialog uses QFile::remove instead, which returns a bool that the code was ignoring, so a locked firmware file silently stuck around with no feedback to the user.
leaving the installer open in something like 7-zip while installing is enough to trigger either case.
this swaps fs::remove for the non-throwing error_code overload in the archive and pkg dialogs, and checks the bool from QFile::remove in the firmware dialog. anything that could not be removed gets shown in a warning so the user knows what stuck around, and the install itself still finishes normally.
* gui-qt: route firmware drops through the install dialog
dropping a .pup onto the main window used to run install_pup inline with a bare QProgressDialog and its own success/failure handling, bypassing FirmwareInstallDialog entirely. that path duplicated the progress UI and never offered the "delete firmware file after install?" option that the menu-triggered flow exposes.
route the drop through FirmwareInstallDialog instead, matching the existing .pkg and .vpk drop routing right next to it. this adds a constructor that takes a pre-supplied firmware path so the dialog skips its file picker when invoked from a drop.
dropped firmware installs now share the threaded progress UI, the warning when the file is locked, and the optional cleanup checkbox with the menu trigger.