Adds preview scaling to the right-click context menu for the preview
pane. This allows the ability to, for example, zoom the preview and
edit the preview 1:1 (canvas/base resolution). This was a missing
parity feature. Additionally, also allows scaling to the
"output/scaled" resolution the program is set to.
When the preview is in scale mode and is the focused widget, you can
hold space and drag with left click to change the zoomed position.
(Notes added by Jim)
Closesjp9000/obs-studio#687
The original pull request that added the system tray feature was riddled
with bad pointer usage. Bare pointers that are never properly freed,
never contained within a QPointer or unique_ptr.
These have now been changed to use QPointer variables, and to always
check when the variables are valid before using. The order of
destruction for QMenu that uses the actions has now been prioritized
first before the actions.
Fixes a crash that could happen where you close the window while the
main window is hiding, and then the app mistakenly thinks that "all
windows are closed" and initiates shutdown while the main window is
still active but hidden.
If the user hits the "stop stream" button it'll transition in to
"stopping stream..." and will continue to output until the stream
reaches the timing in which "stop" was pressed.
However, if there is significant congestion, stopping the stream can
take far longer than the user may like. So there needs to be an option
to forcibly stop the stream in that case; pushing the "stop" button a
second time should allow the user to tell the stream/recording to stop
right away instead of waiting for the precise stop timing.
This allows using the functions via Qt message queue. The reason for
this is so a frontend API can queue these functions to call safely from
another thread.