139 Commits

Author SHA1 Message Date
Richard Stanway
5cfc16e9f9 UI: Call setWindowFlags before setupUi
For some reason this has a noticeable performance improvement,
presumably because Qt is notifying all the child widgets?
2020-03-04 23:20:19 +01:00
Richard Stanway
2f0134bf60 UI: Don't add removed sources when refreshing LoadAudioSources
This can be fired by a callback during source removal. The code was
re-adding the source that was just removed, causing the program to
freeze when trying to remove all sources.
2020-03-02 22:23:13 +01:00
Richard Stanway
2a4a46deed UI: Use invokeMethod to refresh LoadAudioSources
Sources may be removed or destroyed by other threads which resulted in
GUI calls outside of the main Qt thread.
2020-03-02 22:21:02 +01:00
Richard Stanway
3667e556db UI: Use deleteLater() rather than explicit delete
When an audio source is removed, it signals its "destroy" callbacks.
One of the callbacks is OBSSourceLabel::SourceDestroyed.  When its Qt
destroy signal is fired, it causes a call to LoadAudioSources to refresh
the source list.  LoadAudioSources deletes the old layout, and so the
QWidget that the OBSSource is based on is freed while it's still in the
middle of running the signal callback, resulting in access to freed
memory.
2020-02-24 15:34:36 -08:00
jp9000
4f6b4df17e UI: Hide encoder if marked internal
(This commit also modifies libobs)

Hides encoders that are marked as internal.  Same general functionality
as DEPRECATED but not actually deprecated, just internal-only.
2020-02-18 21:37:41 -08:00
jp9000
cce734a0aa UI: Allow rescaling for texture-based encoders 2020-02-18 21:00:57 -08:00
Clayton Groeneveld
e0135823ce UI: Restart program when audio/locale changed 2020-02-16 16:12:00 -06:00
VodBox
191165c721 UI: Add advanced scene collection importer
This replaces the previous Open File dialog for importing collections
with a window for importing many collections at once, based on the remux
window, along with support for importing from OBS Classic, XSplit
Broadcaster and from Streamlabs' fork. This also translates sources
between OSes that Studio supports.
2020-02-16 17:56:06 +13:00
Clayton Groeneveld
a86912f0db UI: Use input validator on resolution line edit 2020-01-28 00:45:18 -06:00
Clayton Groeneveld
765bb34641 UI: Don't allow resolutions too large
Fixes a crash when entering large resolutions, and also works as a minor
sanity check against bad resolution values.
2020-01-27 04:34:47 -08:00
Clayton Groeneveld
46db0c0823 UI: Fix aspect ratio triggering settings change 2020-01-22 12:25:05 -06:00
jpark37
263bf48baa UI: Fix Qt 5.14 deprecation warnings
These functions should be available on current Qt.
2020-01-20 22:13:16 -08:00
Jim
c6053c3d96
Merge pull request #2312 from cg2121/fix-audio-message
UI: Fix audio restart message not hiding
2020-01-13 02:02:25 -08:00
Clayton Groeneveld
f32082920e UI: Fix audio restart message not hiding 2020-01-12 13:31:51 -06:00
Clayton Groeneveld
4b4962746f UI: Display aspect ratios in video settings 2020-01-12 01:54:58 -06:00
VodBox
798556c068 UI: Ensure OBS launches when theme is missing
This change makes it so OBS will still launch even if a theme is
missing. This change also deprecates the "CurrentTheme" config key, and
is replaced by "CurrentTheme2".

This is because a previous change to make sure OBS fell back to the
System theme in case of a missing theme had been accidentally removed.
Changing the key prevents a new version of OBS setting a theme that
doesn't exist in an older version, which would prevent that version from
launching.
2019-12-16 08:12:57 +13:00
jpark37
ecd6753dc7 UI: Allow switch to existing theme to reload
This is useful for people modifying the currently selected theme.
2019-12-08 14:43:23 -08:00
jpark37
bb04c961bc UI: Don't modify theme if already set
This includes reselecting the existing selection, and cancelling out of
settings altogether. Takes a long time (7 seconds) in debug builds.
2019-12-07 10:22:02 -08:00
Jim
7b49eb1d48
Merge pull request #2104 from cg2121/network-string
UI: Change advanced networking strings
2019-11-19 22:12:29 -08:00
Clayton Groeneveld
e151ce6f2a UI: Change advanced networking strings 2019-11-19 21:27:37 -08:00
derrod
3e841b221d UI: Add setting for Twitch chat add-ons choice
Both BTTV and FFZ are fairly popular however they do occasionally
interfere.  To give users the option to chose whichever one they like
most we add a new setting that allows BTTV, FFZ, both, or neither.

Defaults to "None" for new users.  Existing users will be migrated to
"Both" as that's the previous behavior.
2019-11-19 21:06:36 -08:00
Clayton Groeneveld
bab3391ce4 UI: Use radio buttons for FLV track selection 2019-11-09 08:19:41 -08:00
Matt Gajownik
acf2eae1e5 UI: Display Sample Rate with proper formatting 2019-10-19 19:10:39 +11:00
jp9000
3064887ae2 Revert "UI: Various screen reader fixes"
This reverts commit b5843caa484068d6fcc5f5fe8ee2dc06078500ff.

This breaks some hotkeys because the signals are tied to a signal which
is now triggered because "toggled" is used instead of "clicked", so just
revert it for now for the release and look at it later post-patch.
2019-09-12 13:55:31 -07:00
VodBox
b5843caa48 UI: Various screen reader fixes
This commit fixes various issues with screen readers in the main OBS
interface. These were tested using NVDA on Windows 10 1903.

Checkboxes or buttons which toggle, when receiving an activate signal
from the screen reader would visually update, but not perform any
action. This is because they're listening only for clicks. They should
all now be listening for toggles instead.

The screen reader would navigate through the UI in the order that
elements are defined in the .ui XML, and not by their row positions.
The XML has been reordered so that things should be defined in their row
order.

Audio track selection now says Track 1, 2, etc, rather than just the
number. Various checkboxes that just say "Enable" now have accessible
text that says what the enable is for (since it says "checkbox", the
fact it's an enable should hopefully be clear). Type in the recording
tab of output now has accessible text which says "Recording Type".

All the right side buttons in hotkeys now have tooltips, and by
extension, accessible text. Currently it does not yet say what hotkey
the action is in relation to, but that would require more locales.
2019-09-04 12:43:56 +12:00
jp9000
4dd96aa6d9 UI: Move "area" scale below bilinear, above bicubic 2019-08-22 15:15:44 -07:00
jp9000
8ee0480138 UI: Add dynamic bitrate support to the UI
Adds dynamic bitrate support (marked as beta) to the advanced settings
for now.
2019-08-18 03:16:37 -07:00
Jim
b59742d49a
Merge pull request #1949 from jb-alvarado/master
UI: Add ability to disable hotkeys when not in focus
2019-08-17 08:38:31 -07:00
Jim
5f7ff6fbcc
Merge pull request #1970 from cg2121/fix-warnings
various: Fix compiler/theme warnings
2019-08-17 08:22:03 -07:00
Clayton Groeneveld
5f7f2c1c97 UI: Fix compiler/Acri warnings 2019-08-15 03:00:06 -05:00
jpark37
0ea820b277 libobs: UI: Add Area scaling for downscale output
Now that Lanczos downscale blurring has been removed, the Area shader
can attempt to fill the void.
2019-08-14 22:33:52 -07:00
Jonathan Baecker
19464e6552 UI: Add ability to disable hotkeys when not in focus 2019-07-22 01:20:12 -07:00
Grant Likely
4e3ce938f2 UI: Add option to warn on stop recording
OBS has an option to warn before stopping a stream, but it doesn't have
a similar warning for recording. This can result in a recording being
unintentionally stopped.

Add an option to warn when the "Stop Recording" button is pressed.

Note: While OBS also has an option to warn on stream start, this
patch purposefully does not add similar warn on recording start option.
This is because accidentally starting to record isn't risky in the same
way that accidentally starting to stream is.
2019-07-21 22:57:31 -07:00
jp9000
eab10d48b2 UI: Add pause support
Adds support for pausing recordings.  When settings are eligible for
recordings, a pause button will appear next to the recording button.  If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
2019-07-08 08:11:56 -07:00
jp9000
3a6a1a4ff8 UI: Don't display MP4/MOV warning if lossless 2019-07-06 09:27:40 -07:00
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
jp9000
6b2f3d0604 UI: Fix theme showing incorrect theme when on Dark 2019-05-02 15:47:35 -07:00
Clayton Groeneveld
31b73f8025 UI: Add ability to set properties spinbox suffix 2019-05-02 08:54:14 -07:00
Clayton Groeneveld
d17e261d23 UI: Truncate text in hotkeys interface 2019-05-02 08:54:13 -07:00
Clayton Groeneveld
64aa211d46 UI: Remove icons from settings button box 2019-05-02 08:54:13 -07:00
Clayton Groeneveld
4b6a1bf971 UI: Remove settings horizontal lines 2019-05-02 08:18:07 -07:00
Clayton Groeneveld
1160ee767a UI: Increment bitrates by 50 2019-04-30 06:54:02 -05:00
Jimi Huotari
2b1641ee5e
UI: Fix Linux build without PulseAudio
Commit 31d36691 missed updating a couple of lines while moving
settings around.

- https://github.com/obsproject/obs-studio/commit/31d36691
2019-04-15 18:31:59 +03:00
Jim
d14fa715e8
Merge pull request #1641 from WizardCM/move-settings
UI: Refactor Audio Settings UI and move Monitoring Device from Advanced
2019-04-14 04:10:15 -07:00
Clayton Groeneveld
94b3f80305 UI: Rename Default theme to System
The system theme was named Default even though the default theme is Dark.
This addresses that by renaming Default.qss to System.qss. I've made it
backwards compatible so users already using this theme are not affected.

The theme list now shows up as:
-System
-Dark (Default)
-Acri
-Rachni

I have also made it so that you can specify the default theme in the
UI config file.
2019-04-08 19:56:56 -05:00
Matt Gajownik
31d3669154 UI: Refactor Audio Settings tab structure
- Now uses a QVBoxLayout with a QScrollArea for the container
- Uses QGroupBox for each section
- Moved Monitoring and ducking settings out of the Advanced tab
- Push-to hotkeys are no longer in a child scroll area
- Renamed device labels for consistency
2019-03-31 17:37:36 +11:00
James Park
8b1d701b27 UI: Remove Area downscale filter option
Originally added for completeness but wasn't actually implemented
correctly. Can be added back later if desired.
2019-03-14 10:05:50 -07:00
Colin Edwards
5c16a96770
Merge pull request #1715 from jpark37/area-filter
Add "Area" scale filter
2019-03-13 23:30:25 -05:00
Colin Edwards
0377a34095
Merge pull request #1725 from derrod/bwtest-cbox
UI: Add checkbox for Twitch bandwidth test mode
2019-03-11 23:37:23 -05:00
derrod
51bfb9d899 UI: Add checkbox for Twitch bandwidth test mode 2019-03-09 02:54:41 +01:00