Blocking until the process is finished was not very robust - in some
cases it could cause a deadlock preventing graceful exit. For example,
if the ug process is communicating with GUI through a socket and uses
blocking send - ug will wait for GUI to receive the data and GUI will
block waiting for ug to terminate.
Using this approach also allows to ignore crashes on exit, which are not
really worth reporting.
When ug process doesn't respond to termination GUI needs to kill it.
This makes the return code equal to 9 and GUI complains about a crash.
Without a message in the log this could have been confusing.
With this change the window should appear immediately. It will still be
unusable and frozen until all capababilities are queried, but should at
least give the user some indication that something is happening.
Probably all of the useful devices are now reported by capabilities, so
it's likely to be not even needed, so to avoid confusion it's moved into
the settings window and given a more descriptive name
All device configuration is now reported from capabilities in the same
way. Therefore it is now possible to generate the .device settings keys
during runtime for all reported modules
The QProcess::start() method is replaced with a new one that requires
executable path and arguments passed separately.
Each argument must be now passed individualy using QStringList and
have their spaces escaped automatically and passing argument
list as a single string would no longer work. This is now handled by
splitting the argument string on spaces.
The executable path can no longer contain quotes as spaces are escaped
by QT automatically now.
Since QTextEdit::setTabStopDistance() is available starting 5.10 and we
still support Qt 5.5 (Ubuntu 16), it's moved to log_window.cpp and
ifdefed according to version
* use ug --capabilities for querying
* support for webcams on Windows and MacOS
* support for decklink capturers and modes
* query v4l2 through UltraGrid
* don't store state in ui widgets (preparation for saving/loading settings)
* automatic FEC