Use Bollard library to exec in pure Rust.
`--use-cli` cli arg, will then only try to exec into containers using
Docker.
Only try to exec into a container if the state == Running.
Use FrameData struct to store commonly accessed data, in order to
reduce mutex locks.
rename unpause to resume
use get_selected_panel() function instead of directly
gui_state.selected_panel
debug mode now shows some usefull information
Use a croner in the docker_data, instead of in the ui thread, as this thread will be paused when in exec mode.
is_initilised is again done in docker_data, after stats have been calculated
use bollard from git, waiting for new release due to Docker changes
oxker will check for an optional cli_arg `--host`, then the $DOCKER_HOST env, and if found use for connection.
Fix unresponsiveness in debug mode when error set
Enable a user to delete a container. A dialog will pop up to ask the user to confirm the deletion. A user can then click on either button, or press N/Y to make a selection
The EnableMouseCapture from Crossterm was too broad, by only enabling a subject of the events, 1) performance is improvedand 2) and intermittent bug where mouse events were output to stdout has been removed
Use stop_running to set the global is_running AtomicBool to false, and to also, on a seperate thread, enable & then disable mouse capture, as was experience strange issue on Linux & WSL with mouse movements being piped to stdout
What started off as an inquisitive look at how the gui drawing blocks get the data they require in order to draw to the screen, ended up as a realisation that it could be achieved in a better manner. Basically just use x.get(y), instead of using x[y] all over the place