diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index ec9ef1924..7c997f385 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -668,7 +668,7 @@ Basic.Settings.Output.Mode.Simple="Simple" Basic.Settings.Output.Mode.Adv="Advanced" Basic.Settings.Output.Mode.FFmpeg="FFmpeg Output" Basic.Settings.Output.UseReplayBuffer="Enable Replay Buffer" -Basic.Settings.Output.ReplayBuffer.SecondsMax="Maximum Replay Time (Seconds)" +Basic.Settings.Output.ReplayBuffer.SecondsMax="Maximum Replay Time" Basic.Settings.Output.ReplayBuffer.MegabytesMax="Maximum Memory (Megabytes)" Basic.Settings.Output.ReplayBuffer.Estimate="Estimated memory usage: %1 MB" Basic.Settings.Output.ReplayBuffer.EstimateUnknown="Cannot estimate memory usage. Please set maximum memory limit." @@ -696,7 +696,7 @@ Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 low CPU usag Basic.Settings.Output.VideoBitrate="Video Bitrate" Basic.Settings.Output.AudioBitrate="Audio Bitrate" Basic.Settings.Output.Reconnect="Automatically Reconnect" -Basic.Settings.Output.RetryDelay="Retry Delay (seconds)" +Basic.Settings.Output.RetryDelay="Retry Delay" Basic.Settings.Output.MaxRetries="Maximum Retries" Basic.Settings.Output.Advanced="Enable Advanced Encoder Settings" Basic.Settings.Output.EncoderPreset="Encoder Preset" @@ -824,7 +824,7 @@ Basic.Settings.Advanced.Audio.MonitoringDevice="Monitoring Device" Basic.Settings.Advanced.Audio.MonitoringDevice.Default="Default" Basic.Settings.Advanced.Audio.DisableAudioDucking="Disable Windows audio ducking" Basic.Settings.Advanced.StreamDelay="Stream Delay" -Basic.Settings.Advanced.StreamDelay.Duration="Duration (seconds)" +Basic.Settings.Advanced.StreamDelay.Duration="Duration" Basic.Settings.Advanced.StreamDelay.Preserve="Preserve cutoff point (increase delay) when reconnecting" Basic.Settings.Advanced.StreamDelay.MemoryUsage="Estimated Memory Usage: %1 MB" Basic.Settings.Advanced.Network="Network" @@ -841,7 +841,7 @@ Basic.AdvAudio.Name="Name" Basic.AdvAudio.Volume="Volume" Basic.AdvAudio.Mono="Downmix to Mono" Basic.AdvAudio.Balance="Balance" -Basic.AdvAudio.SyncOffset="Sync Offset (ms)" +Basic.AdvAudio.SyncOffset="Sync Offset" Basic.AdvAudio.Monitoring="Audio Monitoring" Basic.AdvAudio.Monitoring.None="Monitor Off" Basic.AdvAudio.Monitoring.MonitorOnly="Monitor Only (mute output)" diff --git a/UI/forms/OBSBasic.ui b/UI/forms/OBSBasic.ui index 90935fca2..114b7aba5 100644 --- a/UI/forms/OBSBasic.ui +++ b/UI/forms/OBSBasic.ui @@ -188,7 +188,7 @@ 0 0 1079 - 21 + 22 @@ -728,7 +728,7 @@ 0 0 - 80 + 64 16 @@ -781,8 +781,8 @@ 0 0 - 28 - 16 + 16 + 28 @@ -1025,7 +1025,7 @@ Basic.TransitionDuration - ms + ms 2 diff --git a/UI/forms/OBSBasicSettings.ui b/UI/forms/OBSBasicSettings.ui index 328a88744..c93f2f2e6 100644 --- a/UI/forms/OBSBasicSettings.ui +++ b/UI/forms/OBSBasicSettings.ui @@ -138,7 +138,7 @@ - QFrame::NoFrame + QFrame::NoFrame QFrame::Plain @@ -151,8 +151,8 @@ 0 0 - 808 - 989 + 806 + 1225 @@ -1159,22 +1159,22 @@ - - true - - QFrame::NoFrame + QFrame::NoFrame QFrame::Plain + + true + 0 0 - 747 - 808 + 813 + 761 @@ -3511,7 +3511,7 @@ - sec + s 5 @@ -3608,21 +3608,7 @@ - QFrame::NoFrame - - - QFrame::Plain - - - true - - - - 0 - 0 - 594 - 807 - + QFrame::NoFrame QFrame::Plain @@ -3635,8 +3621,8 @@ 0 0 - 594 - 807 + 767 + 582 @@ -4064,7 +4050,7 @@ - + @@ -4077,7 +4063,7 @@ - + @@ -4451,8 +4437,8 @@ 0 0 - 765 - 993 + 806 + 933 @@ -4895,7 +4881,7 @@ - s + s 1 @@ -4989,6 +4975,9 @@ + + s + 30 diff --git a/UI/properties-view.cpp b/UI/properties-view.cpp index 313a2e1be..bf29b57df 100644 --- a/UI/properties-view.cpp +++ b/UI/properties-view.cpp @@ -334,6 +334,7 @@ void OBSPropertiesView::AddInt(obs_property_t *prop, QFormLayout *layout, spin->setValue(val); spin->setToolTip(QT_UTF8(obs_property_long_description(prop))); spin->setSuffix(QT_UTF8(suffix)); + spin->setFixedWidth(100); WidgetInfo *info = new WidgetInfo(this, prop, spin); children.emplace_back(info); @@ -385,6 +386,8 @@ void OBSPropertiesView::AddFloat(obs_property_t *prop, QFormLayout *layout, spin->setValue(val); spin->setToolTip(QT_UTF8(obs_property_long_description(prop))); spin->setSuffix(QT_UTF8(suffix)); + spin->setDecimals(1); + spin->setFixedWidth(100); WidgetInfo *info = new WidgetInfo(this, prop, spin); children.emplace_back(info); diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini index 7d762ac4e..e42f40d6c 100644 --- a/plugins/obs-ffmpeg/data/locale/en-US.ini +++ b/plugins/obs-ffmpeg/data/locale/en-US.ini @@ -29,7 +29,7 @@ LocalFile="Local File" Looping="Loop" Input="Input" InputFormat="Input Format" -BufferingMB="Network Buffering (MB)" +BufferingMB="Network Buffering" HardwareDecode="Use hardware decoding when available" ClearOnMediaEnd="Show nothing when playback ends" Advanced="Advanced" @@ -41,7 +41,7 @@ ColorRange.Auto="Auto" ColorRange.Partial="Partial" ColorRange.Full="Full" RestartMedia="Restart Media" -SpeedPercentage="Speed (percent)" +SpeedPercentage="Speed" Seekable="Seekable" MediaFileFilter.AllMediaFiles="All Media Files" diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-source.c b/plugins/obs-ffmpeg/obs-ffmpeg-source.c index 49c898063..84379b26f 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-source.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-source.c @@ -155,8 +155,10 @@ static obs_properties_t *ffmpeg_source_getproperties(void *data) obs_properties_add_bool(props, "restart_on_activate", obs_module_text("RestartWhenActivated")); - obs_properties_add_int_slider(props, "buffering_mb", - obs_module_text("BufferingMB"), 1, 16, 1); + prop = obs_properties_add_int_slider(props, "buffering_mb", + obs_module_text("BufferingMB"), 1, + 16, 1); + obs_property_int_set_suffix(prop, " MB"); obs_properties_add_text(props, "input", obs_module_text("Input"), OBS_TEXT_DEFAULT); @@ -180,9 +182,10 @@ static obs_properties_t *ffmpeg_source_getproperties(void *data) obs_property_set_long_description( prop, obs_module_text("CloseFileWhenInactive.ToolTip")); - obs_properties_add_int_slider(props, "speed_percent", - obs_module_text("SpeedPercentage"), 1, - 200, 1); + prop = obs_properties_add_int_slider(props, "speed_percent", + obs_module_text("SpeedPercentage"), + 1, 200, 1); + obs_property_int_set_suffix(prop, "%"); prop = obs_properties_add_list(props, "color_range", obs_module_text("ColorRange"), diff --git a/plugins/obs-filters/async-delay-filter.c b/plugins/obs-filters/async-delay-filter.c index bbe5a4b18..862c78a46 100644 --- a/plugins/obs-filters/async-delay-filter.c +++ b/plugins/obs-filters/async-delay-filter.c @@ -115,8 +115,9 @@ static obs_properties_t *async_delay_filter_properties(void *data) { obs_properties_t *props = obs_properties_create(); - obs_properties_add_int(props, SETTING_DELAY_MS, TEXT_DELAY_MS, 0, 20000, - 1); + obs_property_t *p = obs_properties_add_int(props, SETTING_DELAY_MS, + TEXT_DELAY_MS, 0, 20000, 1); + obs_property_int_set_suffix(p, " ms"); UNUSED_PARAMETER(data); return props; diff --git a/plugins/obs-filters/compressor-filter.c b/plugins/obs-filters/compressor-filter.c index 42c0ccdbc..734994a7f 100644 --- a/plugins/obs-filters/compressor-filter.c +++ b/plugins/obs-filters/compressor-filter.c @@ -499,22 +499,31 @@ static obs_properties_t *compressor_properties(void *data) struct compressor_data *cd = data; obs_properties_t *props = obs_properties_create(); obs_source_t *parent = NULL; + obs_property_t *p; if (cd) parent = obs_filter_get_parent(cd->context); - obs_properties_add_float_slider(props, S_RATIO, TEXT_RATIO, MIN_RATIO, - MAX_RATIO, 0.5); - obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, - MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, - 0.1); - obs_properties_add_int_slider(props, S_ATTACK_TIME, TEXT_ATTACK_TIME, - MIN_ATK_RLS_MS, MAX_ATK_MS, 1); - obs_properties_add_int_slider(props, S_RELEASE_TIME, TEXT_RELEASE_TIME, - MIN_ATK_RLS_MS, MAX_RLS_MS, 1); - obs_properties_add_float_slider(props, S_OUTPUT_GAIN, TEXT_OUTPUT_GAIN, - MIN_OUTPUT_GAIN_DB, MAX_OUTPUT_GAIN_DB, - 0.1); + p = obs_properties_add_float_slider(props, S_RATIO, TEXT_RATIO, + MIN_RATIO, MAX_RATIO, 0.5); + obs_property_float_set_suffix(p, ":1"); + p = obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, + MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, + 0.1); + obs_property_float_set_suffix(p, " dB"); + p = obs_properties_add_int_slider(props, S_ATTACK_TIME, + TEXT_ATTACK_TIME, MIN_ATK_RLS_MS, + MAX_ATK_MS, 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_int_slider(props, S_RELEASE_TIME, + TEXT_RELEASE_TIME, MIN_ATK_RLS_MS, + MAX_RLS_MS, 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_float_slider(props, S_OUTPUT_GAIN, + TEXT_OUTPUT_GAIN, + MIN_OUTPUT_GAIN_DB, + MAX_OUTPUT_GAIN_DB, 0.1); + obs_property_float_set_suffix(p, " dB"); obs_property_t *sources = obs_properties_add_list( props, S_SIDECHAIN_SOURCE, TEXT_SIDECHAIN_SOURCE, diff --git a/plugins/obs-filters/data/locale/en-US.ini b/plugins/obs-filters/data/locale/en-US.ini index cf49d70ab..21d7588c1 100644 --- a/plugins/obs-filters/data/locale/en-US.ini +++ b/plugins/obs-filters/data/locale/en-US.ini @@ -14,7 +14,7 @@ NoiseGate="Noise Gate" NoiseSuppress="Noise Suppression" InvertPolarity="Invert Polarity" Gain="Gain" -DelayMs="Delay (milliseconds)" +DelayMs="Delay" Type="Type" MaskBlendType.MaskColor="Alpha Mask (Color Channel)" MaskBlendType.MaskAlpha="Alpha Mask (Alpha Channel)" @@ -50,12 +50,12 @@ Red="Red" Green="Green" Blue="Blue" Magenta="Magenta" -NoiseGate.OpenThreshold="Open Threshold (dB)" -NoiseGate.CloseThreshold="Close Threshold (dB)" -NoiseGate.AttackTime="Attack Time (milliseconds)" -NoiseGate.HoldTime="Hold Time (milliseconds)" -NoiseGate.ReleaseTime="Release Time (milliseconds)" -Gain.GainDB="Gain (dB)" +NoiseGate.OpenThreshold="Open Threshold" +NoiseGate.CloseThreshold="Close Threshold" +NoiseGate.AttackTime="Attack Time" +NoiseGate.HoldTime="Hold Time" +NoiseGate.ReleaseTime="Release Time" +Gain.GainDB="Gain" StretchImage="Stretch Image (discard image aspect ratio)" Resolution="Resolution" Base.Canvas="Base (Canvas) Resolution" @@ -66,26 +66,26 @@ ScaleFiltering.Bilinear="Bilinear" ScaleFiltering.Bicubic="Bicubic" ScaleFiltering.Lanczos="Lanczos" ScaleFiltering.Area="Area" -NoiseSuppress.SuppressLevel="Suppression Level (dB)" +NoiseSuppress.SuppressLevel="Suppression Level" Saturation="Saturation" HueShift="Hue Shift" Amount="Amount" Compressor="Compressor" -Compressor.Ratio="Ratio (X:1)" -Compressor.Threshold="Threshold (dB)" -Compressor.AttackTime="Attack (ms)" -Compressor.ReleaseTime="Release (ms)" -Compressor.OutputGain="Output Gain (dB)" +Compressor.Ratio="Ratio" +Compressor.Threshold="Threshold" +Compressor.AttackTime="Attack" +Compressor.ReleaseTime="Release" +Compressor.OutputGain="Output Gain" Compressor.SidechainSource="Sidechain/Ducking Source" Limiter="Limiter" -Limiter.Threshold="Threshold (dB)" -Limiter.ReleaseTime="Release (ms)" +Limiter.Threshold="Threshold" +Limiter.ReleaseTime="Release" Expander="Expander" -Expander.Ratio="Ratio (X:1)" -Expander.Threshold="Threshold (dB)" -Expander.AttackTime="Attack (ms)" -Expander.ReleaseTime="Release (ms)" -Expander.OutputGain="Output Gain (dB)" +Expander.Ratio="Ratio" +Expander.Threshold="Threshold" +Expander.AttackTime="Attack" +Expander.ReleaseTime="Release" +Expander.OutputGain="Output Gain" Expander.Detector="Detection" Expander.RMS="RMS" Expander.Peak="Peak" diff --git a/plugins/obs-filters/expander-filter.c b/plugins/obs-filters/expander-filter.c index 94c6be668..fb0db8a46 100644 --- a/plugins/obs-filters/expander-filter.c +++ b/plugins/obs-filters/expander-filter.c @@ -387,6 +387,7 @@ static bool presets_changed(obs_properties_t *props, obs_property_t *prop, static obs_properties_t *expander_properties(void *data) { obs_properties_t *props = obs_properties_create(); + obs_property_t *p; obs_property_t *presets = obs_properties_add_list( props, S_PRESETS, TEXT_PRESETS, OBS_COMBO_TYPE_LIST, @@ -394,18 +395,26 @@ static obs_properties_t *expander_properties(void *data) obs_property_list_add_string(presets, TEXT_PRESETS_EXP, "expander"); obs_property_list_add_string(presets, TEXT_PRESETS_GATE, "gate"); obs_property_set_modified_callback(presets, presets_changed); - obs_properties_add_float_slider(props, S_RATIO, TEXT_RATIO, MIN_RATIO, - MAX_RATIO, 0.1); - obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, - MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, - 0.1); - obs_properties_add_int_slider(props, S_ATTACK_TIME, TEXT_ATTACK_TIME, - MIN_ATK_RLS_MS, MAX_ATK_MS, 1); - obs_properties_add_int_slider(props, S_RELEASE_TIME, TEXT_RELEASE_TIME, - MIN_ATK_RLS_MS, MAX_RLS_MS, 1); - obs_properties_add_float_slider(props, S_OUTPUT_GAIN, TEXT_OUTPUT_GAIN, - MIN_OUTPUT_GAIN_DB, MAX_OUTPUT_GAIN_DB, - 0.1); + p = obs_properties_add_float_slider(props, S_RATIO, TEXT_RATIO, + MIN_RATIO, MAX_RATIO, 0.1); + obs_property_float_set_suffix(p, ":1"); + p = obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, + MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, + 0.1); + obs_property_float_set_suffix(p, " dB"); + p = obs_properties_add_int_slider(props, S_ATTACK_TIME, + TEXT_ATTACK_TIME, MIN_ATK_RLS_MS, + MAX_ATK_MS, 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_int_slider(props, S_RELEASE_TIME, + TEXT_RELEASE_TIME, MIN_ATK_RLS_MS, + MAX_RLS_MS, 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_float_slider(props, S_OUTPUT_GAIN, + TEXT_OUTPUT_GAIN, + MIN_OUTPUT_GAIN_DB, + MAX_OUTPUT_GAIN_DB, 0.1); + obs_property_float_set_suffix(p, " dB"); obs_property_t *detect = obs_properties_add_list( props, S_DETECTOR, TEXT_DETECTOR, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); diff --git a/plugins/obs-filters/gain-filter.c b/plugins/obs-filters/gain-filter.c index 0dc8ccbae..458abce56 100644 --- a/plugins/obs-filters/gain-filter.c +++ b/plugins/obs-filters/gain-filter.c @@ -76,8 +76,9 @@ static obs_properties_t *gain_properties(void *data) { obs_properties_t *ppts = obs_properties_create(); - obs_properties_add_float_slider(ppts, S_GAIN_DB, TEXT_GAIN_DB, -30.0, - 30.0, 0.1); + obs_property_t *p = obs_properties_add_float_slider( + ppts, S_GAIN_DB, TEXT_GAIN_DB, -30.0, 30.0, 0.1); + obs_property_float_set_suffix(p, " dB"); UNUSED_PARAMETER(data); return ppts; diff --git a/plugins/obs-filters/gpu-delay.c b/plugins/obs-filters/gpu-delay.c index 1d9ae19da..4eb98e03f 100644 --- a/plugins/obs-filters/gpu-delay.c +++ b/plugins/obs-filters/gpu-delay.c @@ -148,7 +148,9 @@ static obs_properties_t *gpu_delay_filter_properties(void *data) { obs_properties_t *props = obs_properties_create(); - obs_properties_add_int(props, S_DELAY_MS, T_DELAY_MS, 0, 500, 1); + obs_property_t *p = obs_properties_add_int(props, S_DELAY_MS, + T_DELAY_MS, 0, 500, 1); + obs_property_int_set_suffix(p, " ms"); UNUSED_PARAMETER(data); return props; diff --git a/plugins/obs-filters/limiter-filter.c b/plugins/obs-filters/limiter-filter.c index 8a76a8e0a..ec3ed05a5 100644 --- a/plugins/obs-filters/limiter-filter.c +++ b/plugins/obs-filters/limiter-filter.c @@ -196,12 +196,16 @@ static void limiter_defaults(obs_data_t *s) static obs_properties_t *limiter_properties(void *data) { obs_properties_t *props = obs_properties_create(); + obs_property_t *p; - obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, - MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, - 0.1); - obs_properties_add_int_slider(props, S_RELEASE_TIME, TEXT_RELEASE_TIME, - MIN_ATK_RLS_MS, MAX_RLS_MS, 1); + p = obs_properties_add_float_slider(props, S_THRESHOLD, TEXT_THRESHOLD, + MIN_THRESHOLD_DB, MAX_THRESHOLD_DB, + 0.1); + obs_property_float_set_suffix(p, " dB"); + p = obs_properties_add_int_slider(props, S_RELEASE_TIME, + TEXT_RELEASE_TIME, MIN_ATK_RLS_MS, + MAX_RLS_MS, 1); + obs_property_int_set_suffix(p, " ms"); UNUSED_PARAMETER(data); return props; diff --git a/plugins/obs-filters/noise-gate-filter.c b/plugins/obs-filters/noise-gate-filter.c index 7ceb218c4..a8664097e 100644 --- a/plugins/obs-filters/noise-gate-filter.c +++ b/plugins/obs-filters/noise-gate-filter.c @@ -169,18 +169,25 @@ static void noise_gate_defaults(obs_data_t *s) static obs_properties_t *noise_gate_properties(void *data) { obs_properties_t *ppts = obs_properties_create(); + obs_property_t *p; - obs_properties_add_float_slider(ppts, S_CLOSE_THRESHOLD, - TEXT_CLOSE_THRESHOLD, VOL_MIN, VOL_MAX, - 1.0); - obs_properties_add_float_slider(ppts, S_OPEN_THRESHOLD, - TEXT_OPEN_THRESHOLD, VOL_MIN, VOL_MAX, - 1.0); - obs_properties_add_int(ppts, S_ATTACK_TIME, TEXT_ATTACK_TIME, 0, 10000, - 1); - obs_properties_add_int(ppts, S_HOLD_TIME, TEXT_HOLD_TIME, 0, 10000, 1); - obs_properties_add_int(ppts, S_RELEASE_TIME, TEXT_RELEASE_TIME, 0, - 10000, 1); + p = obs_properties_add_float_slider(ppts, S_CLOSE_THRESHOLD, + TEXT_CLOSE_THRESHOLD, VOL_MIN, + VOL_MAX, 1.0); + obs_property_float_set_suffix(p, " dB"); + p = obs_properties_add_float_slider(ppts, S_OPEN_THRESHOLD, + TEXT_OPEN_THRESHOLD, VOL_MIN, + VOL_MAX, 1.0); + obs_property_float_set_suffix(p, " dB"); + p = obs_properties_add_int(ppts, S_ATTACK_TIME, TEXT_ATTACK_TIME, 0, + 10000, 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_int(ppts, S_HOLD_TIME, TEXT_HOLD_TIME, 0, 10000, + 1); + obs_property_int_set_suffix(p, " ms"); + p = obs_properties_add_int(ppts, S_RELEASE_TIME, TEXT_RELEASE_TIME, 0, + 10000, 1); + obs_property_int_set_suffix(p, " ms"); UNUSED_PARAMETER(data); return ppts; diff --git a/plugins/obs-filters/noise-suppress-filter.c b/plugins/obs-filters/noise-suppress-filter.c index 572ca6765..dd7a9a87b 100644 --- a/plugins/obs-filters/noise-suppress-filter.c +++ b/plugins/obs-filters/noise-suppress-filter.c @@ -282,8 +282,11 @@ static obs_properties_t *noise_suppress_properties(void *data) { obs_properties_t *ppts = obs_properties_create(); - obs_properties_add_int_slider(ppts, S_SUPPRESS_LEVEL, - TEXT_SUPPRESS_LEVEL, SUP_MIN, SUP_MAX, 1); + obs_property_t *p = obs_properties_add_int_slider(ppts, + S_SUPPRESS_LEVEL, + TEXT_SUPPRESS_LEVEL, + SUP_MIN, SUP_MAX, 1); + obs_property_int_set_suffix(p, " dB"); UNUSED_PARAMETER(data); return ppts; diff --git a/plugins/obs-text/gdiplus/obs-text.cpp b/plugins/obs-text/gdiplus/obs-text.cpp index 7b9e798d1..43fda3d7c 100644 --- a/plugins/obs-text/gdiplus/obs-text.cpp +++ b/plugins/obs-text/gdiplus/obs-text.cpp @@ -947,20 +947,24 @@ static obs_properties_t *get_properties(void *data) obs_properties_add_bool(props, S_VERTICAL, T_VERTICAL); obs_properties_add_color(props, S_COLOR, T_COLOR); - obs_properties_add_int_slider(props, S_OPACITY, T_OPACITY, 0, 100, 1); + p = obs_properties_add_int_slider(props, S_OPACITY, T_OPACITY, 0, 100, + 1); + obs_property_int_set_suffix(p, "%"); p = obs_properties_add_bool(props, S_GRADIENT, T_GRADIENT); obs_property_set_modified_callback(p, gradient_changed); obs_properties_add_color(props, S_GRADIENT_COLOR, T_GRADIENT_COLOR); - obs_properties_add_int_slider(props, S_GRADIENT_OPACITY, - T_GRADIENT_OPACITY, 0, 100, 1); + p = obs_properties_add_int_slider(props, S_GRADIENT_OPACITY, + T_GRADIENT_OPACITY, 0, 100, 1); + obs_property_int_set_suffix(p, "%"); obs_properties_add_float_slider(props, S_GRADIENT_DIR, T_GRADIENT_DIR, 0, 360, 0.1); obs_properties_add_color(props, S_BKCOLOR, T_BKCOLOR); - obs_properties_add_int_slider(props, S_BKOPACITY, T_BKOPACITY, 0, 100, - 1); + p = obs_properties_add_int_slider(props, S_BKOPACITY, T_BKOPACITY, 0, + 100, 1); + obs_property_int_set_suffix(p, "%"); p = obs_properties_add_list(props, S_ALIGN, T_ALIGN, OBS_COMBO_TYPE_LIST, @@ -981,8 +985,9 @@ static obs_properties_t *get_properties(void *data) obs_properties_add_int(props, S_OUTLINE_SIZE, T_OUTLINE_SIZE, 1, 20, 1); obs_properties_add_color(props, S_OUTLINE_COLOR, T_OUTLINE_COLOR); - obs_properties_add_int_slider(props, S_OUTLINE_OPACITY, - T_OUTLINE_OPACITY, 0, 100, 1); + p = obs_properties_add_int_slider(props, S_OUTLINE_OPACITY, + T_OUTLINE_OPACITY, 0, 100, 1); + obs_property_int_set_suffix(p, "%"); p = obs_properties_add_bool(props, S_CHATLOG_MODE, T_CHATLOG_MODE); obs_property_set_modified_callback(p, chatlog_mode_changed); diff --git a/plugins/obs-transitions/data/locale/en-US.ini b/plugins/obs-transitions/data/locale/en-US.ini index 411b49b39..0a7141ffa 100644 --- a/plugins/obs-transitions/data/locale/en-US.ini +++ b/plugins/obs-transitions/data/locale/en-US.ini @@ -12,7 +12,7 @@ Direction.Down="Down" SwipeIn="Swipe In" Color="Color" VideoFile="Video File" -TransitionPoint="Transition Point (milliseconds)" +TransitionPoint="Transition Point" TransitionPointFrame="Transition Point (frame)" TransitionPointType="Transition Point Type" TransitionPointTypeFrame="Frame" @@ -20,7 +20,7 @@ TransitionPointTypeTime="Time (milliseconds)" AudioFadeStyle="Audio Fade Style" AudioFadeStyle.FadeOutFadeIn="Fade out to transition point then fade in" AudioFadeStyle.CrossFade="Crossfade" -SwitchPoint="Peak Color Point (percentage)" +SwitchPoint="Peak Color Point" LumaWipeTransition="Luma Wipe" LumaWipe.Image="Image" LumaWipe.Invert="Invert" diff --git a/plugins/obs-transitions/transition-fade-to-color.c b/plugins/obs-transitions/transition-fade-to-color.c index d2bc17ffd..d5f647f76 100644 --- a/plugins/obs-transitions/transition-fade-to-color.c +++ b/plugins/obs-transitions/transition-fade-to-color.c @@ -154,8 +154,9 @@ static obs_properties_t *fade_to_color_properties(void *data) obs_properties_t *props = obs_properties_create(); obs_properties_add_color(props, S_COLOR, S_COLOR_TEXT); - obs_properties_add_int_slider(props, S_SWITCH_POINT, - S_SWITCH_POINT_TEXT, 0, 100, 1); + obs_property_t *p = obs_properties_add_int_slider( + props, S_SWITCH_POINT, S_SWITCH_POINT_TEXT, 0, 100, 1); + obs_property_int_set_suffix(p, "%"); UNUSED_PARAMETER(data); return props; diff --git a/plugins/obs-transitions/transition-stinger.c b/plugins/obs-transitions/transition-stinger.c index d46191b08..2628d4bdd 100644 --- a/plugins/obs-transitions/transition-stinger.c +++ b/plugins/obs-transitions/transition-stinger.c @@ -310,21 +310,20 @@ static obs_properties_t *stinger_properties(void *data) obs_properties_add_path(ppts, "path", obs_module_text("VideoFile"), OBS_PATH_FILE, FILE_FILTER, NULL); - obs_property_t *list = obs_properties_add_list( + obs_property_t *p = obs_properties_add_list( ppts, "tp_type", obs_module_text("TransitionPointType"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); + obs_property_list_add_int(p, obs_module_text("TransitionPointTypeTime"), + TIMING_TIME); obs_property_list_add_int( - list, obs_module_text("TransitionPointTypeTime"), TIMING_TIME); - obs_property_list_add_int(list, - obs_module_text("TransitionPointTypeFrame"), - TIMING_FRAME); + p, obs_module_text("TransitionPointTypeFrame"), TIMING_FRAME); - obs_property_set_modified_callback(list, - transition_point_type_modified); + obs_property_set_modified_callback(p, transition_point_type_modified); - obs_properties_add_int(ppts, "transition_point", - obs_module_text("TransitionPoint"), 0, 120000, - 1); + p = obs_properties_add_int(ppts, "transition_point", + obs_module_text("TransitionPoint"), 0, + 120000, 1); + obs_property_int_set_suffix(p, " ms"); obs_property_t *monitor_list = obs_properties_add_list( ppts, "audio_monitoring", obs_module_text("AudioMonitoring"),