The implementation of `_getTerminalEmulator` is specific to Debian-based systems, as it relies on the `x-terminal-emulator` symbolic link. This link does not exist on other Linux distributions or on macOS.
This patch first tries to find the `x-terminal-emulator` symbolic link. If it doesn't exist or returns an empty string, it then iterates over a list of supported terminal emulators and uses the `whichSync` function to check if they exist in the PATH. It sets `_terminalEmulator` to the first terminal emulator it finds in the PATH.
Since Quickemu 4.9.3 quickget downloads everything except Ubuntu daily images with curl, via the web_get() function internal to quickget.
This change adapts the progress parsing to curl's progress output and accounts for a bug in quickget where it stopped reporting if wget/curl is the external download tool.
Rather than waiting for the OS list to load, when the app starts, the
loads them in the background, and only waits if we reach the list of
available downloads without them loaded yet. In this case, we use a
FutureBuilder to display a loading spinner until the list is ready.
This fixes the loading of OS icons so they are correctly replaced with a
generic computer if no matching icon is found.
It also centralises the loading process so it happens once during app
initialisation, and displays the corresponding icon next to each VM on
the manager screen.
This is a big improvement over what we had before and relies on the
theme to provide dark mode rather than manually checking brightness each
time we pick a colour.
The buttons in the primary container aren't quite right, I'm not sure
why.
process_run provides a nice wrapper for which, and shows the command an
output in the debug log so provides easier debugging of issues invoking
external commands.
* slight improvements to italian
* some corrections thanks to Alessandro Volturno
* consistently dithering is better than inconsistency
* Simple check for negative process.exitCode when active download is cancelled re #41
* added cancel download to pot
* Suggested translations added to existing lanquages
* First addition missed the italian evolution
Co-authored-by: Phil Clifford <philip.clifford@gmail.com>
Co-authored-by: Yannick Mauray <yannick.mauray@gmail.com>
This squashes a potential bad interaction on initial launch that causes at the least a message in the terminal about using a null value instead of string.
* Refactored shared preferences functions to be generic setters/getters using key/values to allow for multiple preferences to be stored. Refactored the shared preferences functions as a mixin for ease of use. Directory change is now remembered across the app pages.
* Added initState() to downloader_menu.dart to fetch prefWorkingDirectory
Co-authored-by: ElanMan <ben@elanman.com>