* Initial commit for settings window
* More WIP for the Settings panel
* Added Local Files section to Settings
* More WIP on Settings
* Add ability to ignore system builds
* Improvements to Launch and Delete buttons
* Fix issue where icons were not loading
* Network password settings WIP
* Update label
* Import and naming fixes
* Speed improvements to launch
* Update requirements.txt
* Update Windows CPU name lookup
* Add missing default values to a few settings
* More settings fixes
* Fix Windows Path issue
* Added hard types for getting settings values
* More UI cleanup
* Correctly refresh Engines list after downloading new engine
* Improve downloader with UI progress
* More download improvements
* Add Settings Button to Toolbar
* Initial commit of job submission cli tool, with minor fixes in API code
* Refactored and further decoupled server / client code
* Clean up ServerProxy to not use hardcoded loopback addresses
* Add basic GPU info reporting to UI
* Update GPU display to showcase multiple GPUs, if available
* Add fallback for Windows for fetching GPU info
* Improve Windows GPU lookup. Add GPUtil to requirements.txt
* Clean up GPU and CPU naming in UI
* Update Linux GPU fetching
* Update misc_helper.py
Fix getting GPU names on Linux
* Update .gitignore
* Add api_version to status api and server_proxy.py
* Add api_version to Zeroconf and filter out incompatible versions when finding available servers
* Filter incompatible versions from the UI
* Add subprocess.CREATE_NO_WINDOW to blender_engine.py
* Convert ffmpeg_engine.py to use CREATE_NO_WINDOW
* Cleanup Blender implementation
* Cleanup subprocesses in base_worker.py
* Cleanup subprocesses in base_engine.py
* Fix main.spec for Windows (optimize=2 broke it)
* Fix processes not ending when stopped
* Fix error when removing a job
* Better error handling
* Refactored killprocess code and fixed windows support
* Improved error handling
* Add try to code that deletes project files
* Wait for the thread to finish after killing the process
* Don't try to stop process multiple times
* Misc cleanup
* Parent worker now creates subjob on local host and waits for it
* Improve wait_for_subjobs logic
* Fix setting end_time for base_worker
* API cleanup
* Code refactoring
* Cleanup
* Add main.spec
* Fix issue where fetching supported extensions would crash with no default installation
* Engines return version as 'error' if cannot determine version
* EngineManager will now filter out corrupted engine installs by default
* Zeroconf logging improvements
* Ignore RuntimeErrors in background threads - Prevents issues during shutdown
* Migrate start up code from api_server.py to init.py
* Add error handlers to the API server to handle detached instances
* Integrate RenderQueue eval loop into RenderQueue object
* Silently catch RuntimeErrors on evaluate_queue
* Stop background queue updates in prepare_for_shutdown
* Add a watchdog to base_worker
* Logging cleanup
* Prevent multiple watchdogs from running if render process restarts
* Add process timeout parameter to Config
* Refactor
* Add error handling to process output parsing
* Fix issue where start_time was not getting set consistently
* Add a frame complete notification to BaseWorker and distributed_job_manager.py
* Add API to download individual files to API server and ServerProxy
* Rename subjob notification API and add download_missing_frames_from_subjob
* Subjobs will now notify parent when a frame is complete
* Fix missed rename
* Add some misc logging
* Better error handling
* Fix frame download file path issue
* Download missing frames at job completion and misc cleanup
* Misc cleanup
* Code cleanup