(Note: This commit also modifies the UI)
Being able to generate file names based upon a specification is useful
for more than just the UI; it can also be useful for things such as the
replay buffer where file names need to be generated on the fly.
As reboot pointed out, it's assumed that the intention of a locked
preview is to prevent editing the scene. Because scrolling the preview
does not have any interaction with the scene and its sources, you should
be able to still scroll around and look at different parts of your
preview while the preview is locked.
There is also a bugfix included: previously, if you were to
right click while space bar was held down, you would be stuck in
scroll mode until spacebar is pressed/released again. This gets around
it by forcing scroll mode to end when a right click is issued on the
preview.
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
--verbose enables logging of messages and LOG_INFO and --unfiltered_log disables repeated log line filters. Both are useful for extreme support sessions where things have gone so far south that you actually would need this.
QScreen::availableGeometry() does not return the full screen size on X11
if areas of the screen are reserved by the window manager. In this case
the full screen projector does not cover the whole screen. Using
QScreen::geometry() instead fixes this issue.
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.
When the system tray is not available, the system tray variables would
still be used despite not being initialized.
Fixes mantis bug 640 on linux systems in particular that may not always
have system tray available.
All of the monitor discovery logic can be implemented with Qt. This
change removes all the x11 implementations in favor of Qt and removes a
fair amount of platform specific code.
When adding a new regex rule to the Automatic Scene Switcher, OBS would
crash if the regex was invalid. This was because the regex was added to
the Regex object without a test or try-catch. This commit fixes that
behavior, and adds a warning message when attempting to add an invalid
regex.
Instead of checking to see if the window's position is valid, check to
see if the rectangles of the window and the monitor intersect via a
rectangle intersection test.