diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index d93b16593..096c860d1 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -390,8 +390,8 @@ Deinterlacing.TopFieldFirst="Top Field First" Deinterlacing.BottomFieldFirst="Bottom Field First" # volume control accessibility text -VolControl.SliderUnmuted="Volume slider for '%1':" -VolControl.SliderMuted="Volume slider for '%1': (currently muted)" +VolControl.SliderUnmuted="Volume slider for '%1': %2" +VolControl.SliderMuted="Volume slider for '%1': %2 (currently muted)" VolControl.Mute="Mute '%1'" VolControl.Properties="Properties for '%1'" @@ -430,12 +430,6 @@ Basic.SourceSelect.CreateNew="Create new" Basic.SourceSelect.AddExisting="Add Existing" Basic.SourceSelect.AddVisible="Make source visible" -# source box -Basic.Main.Sources.Visibility="Visibility" -Basic.Main.Sources.VisibilityDescription="Controls the visibility of '%1' in the canvas" -Basic.Main.Sources.Lock="Lock" -Basic.Main.Sources.LockDescription="Locks the position and scale of '%1' in the canvas" - # properties window Basic.PropertiesWindow="Properties for '%1'" Basic.PropertiesWindow.AutoSelectFormat="%1 (autoselect: %2)" @@ -739,7 +733,6 @@ Basic.Settings.Output.Adv.Audio.Track6="Track 6" # basic mode 'output' settings - advanced section - recording subsection Basic.Settings.Output.Adv.Recording="Recording" -Basic.Settings.Output.Adv.Recording.RecType="Recording Type" Basic.Settings.Output.Adv.Recording.Type="Type" Basic.Settings.Output.Adv.Recording.Type.Standard="Standard" Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Custom Output (FFmpeg)" diff --git a/UI/forms/OBSBasicSettings.ui b/UI/forms/OBSBasicSettings.ui index e00325843..a10e48277 100644 --- a/UI/forms/OBSBasicSettings.ui +++ b/UI/forms/OBSBasicSettings.ui @@ -371,13 +371,33 @@ - - + + - Basic.Settings.General.SnapDistance + Basic.Settings.General.ScreenSnapping - - snapDistance + + true + + + + + + + Basic.Settings.General.CenterSnapping + + + true + + + + + + + Basic.Settings.General.SourceSnapping + + + true @@ -394,13 +414,13 @@ - - + + - Basic.Settings.General.ScreenSnapping + Basic.Settings.General.SnapDistance - - true + + snapDistance @@ -420,26 +440,6 @@ - - - - Basic.Settings.General.SourceSnapping - - - true - - - - - - - Basic.Settings.General.CenterSnapping - - - true - - - @@ -568,6 +568,13 @@ 2 + + + + Basic.Settings.General.OverflowAlwaysVisible + + + @@ -581,20 +588,6 @@ - - - - Basic.Settings.General.OverflowHidden - - - - - - - Basic.Settings.General.OverflowAlwaysVisible - - - @@ -602,6 +595,13 @@ + + + + Basic.Settings.General.OverflowHidden + + + @@ -721,6 +721,9 @@ + + + @@ -731,9 +734,6 @@ - - - @@ -4636,16 +4636,6 @@ - - - - Basic.Settings.Advanced.Video.ColorSpace - - - colorSpace - - - @@ -4695,6 +4685,16 @@ + + + + Basic.Settings.Advanced.Video.ColorSpace + + + colorSpace + + + @@ -4746,23 +4746,6 @@ - - - - Basic.Settings.Advanced.AutoRemux - - - - - - - Basic.Settings.Output.ReplayBuffer.Prefix - - - simpleRBPrefix - - - @@ -4795,6 +4778,16 @@ + + + + Basic.Settings.Output.ReplayBuffer.Prefix + + + simpleRBPrefix + + + @@ -4808,6 +4801,13 @@ + + + + Basic.Settings.Advanced.AutoRemux + + + @@ -4839,16 +4839,6 @@ 2 - - - - Enable - - - true - - - @@ -4925,6 +4915,16 @@ + + + + Enable + + + true + + + @@ -4966,16 +4966,6 @@ - - - - Basic.Settings.Output.RetryDelay - - - reconnectRetryDelay - - - @@ -5028,6 +5018,16 @@ + + + + Basic.Settings.Output.RetryDelay + + + reconnectRetryDelay + + + @@ -5072,16 +5072,6 @@ - - - - Basic.Settings.Output.DynamicBitrate.TT - - - Basic.Settings.Output.DynamicBitrate.Beta - - - @@ -5112,6 +5102,16 @@ + + + + Basic.Settings.Output.DynamicBitrate.TT + + + Basic.Settings.Output.DynamicBitrate.Beta + + + diff --git a/UI/hotkey-edit.cpp b/UI/hotkey-edit.cpp index 2ee0cc39b..37e5a7d4d 100644 --- a/UI/hotkey-edit.cpp +++ b/UI/hotkey-edit.cpp @@ -293,13 +293,11 @@ void OBSHotkeyWidget::AddEdit(obs_key_combination combo, int idx) auto add = new QPushButton; add->setProperty("themeID", "addIconSmall"); - add->setToolTip(QTStr("Add")); add->setFixedSize(24, 24); add->setFlat(true); auto remove = new QPushButton; remove->setProperty("themeID", "removeIconSmall"); - remove->setToolTip(QTStr("Remove")); remove->setEnabled(removeButtons.size() > 0); remove->setFixedSize(24, 24); remove->setFlat(true); diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 5051b433d..46967e650 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -34,11 +34,9 @@ #include #include #include -#include #include "qt-wrappers.hpp" #include "obs-app.hpp" -#include "slider-ignorewheel.hpp" #include "window-basic-main.hpp" #include "window-basic-settings.hpp" #include "crash-report.hpp" @@ -1722,17 +1720,6 @@ static auto ProfilerFree = [](void *) { profiler_free(); }; -QAccessibleInterface *accessibleFactory(const QString &classname, - QObject *object) -{ - if (classname == QLatin1String("VolumeSlider") && object && - object->isWidgetType()) - return new VolumeAccessibleInterface( - static_cast(object)); - - return nullptr; -} - static const char *run_program_init = "run_program_init"; static int run_program(fstream &logFile, int argc, char *argv[]) { @@ -1756,8 +1743,6 @@ static int run_program(fstream &logFile, int argc, char *argv[]) OBSApp program(argc, argv, profilerNameStore.get()); try { - QAccessible::installFactory(accessibleFactory); - bool created_log = false; program.AppInit(); diff --git a/UI/slider-ignorewheel.cpp b/UI/slider-ignorewheel.cpp index dea80c18f..8203c81f9 100644 --- a/UI/slider-ignorewheel.cpp +++ b/UI/slider-ignorewheel.cpp @@ -1,5 +1,4 @@ #include "slider-ignorewheel.hpp" -#include "volume-control.hpp" SliderIgnoreScroll::SliderIgnoreScroll(QWidget *parent) : QSlider(parent) { @@ -21,82 +20,3 @@ void SliderIgnoreScroll::wheelEvent(QWheelEvent *event) else QSlider::wheelEvent(event); } - -VolumeSlider::VolumeSlider(obs_fader_t *fader, QWidget *parent) - : SliderIgnoreScroll(parent) -{ - fad = fader; -} - -VolumeSlider::VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation, - QWidget *parent) - : SliderIgnoreScroll(orientation, parent) -{ - fad = fader; -} - -VolumeAccessibleInterface::VolumeAccessibleInterface(QWidget *w) - : QAccessibleWidget(w) -{ -} - -VolumeSlider *VolumeAccessibleInterface::slider() const -{ - return qobject_cast(object()); -} - -QString VolumeAccessibleInterface::text(QAccessible::Text t) const -{ - if (slider()->isVisible()) { - switch (t) { - case QAccessible::Text::Value: - return currentValue().toString(); - default: - break; - } - } - return QAccessibleWidget::text(t); -} - -QVariant VolumeAccessibleInterface::currentValue() const -{ - QString text; - float db = obs_fader_get_db(slider()->fad); - - if (db < -96.0f) - text = "-inf dB"; - else - text = QString::number(db, 'f', 1).append(" dB"); - - return text; -} - -void VolumeAccessibleInterface::setCurrentValue(const QVariant &value) -{ - slider()->setValue(value.toInt()); -} - -QVariant VolumeAccessibleInterface::maximumValue() const -{ - return slider()->maximum(); -} - -QVariant VolumeAccessibleInterface::minimumValue() const -{ - return slider()->minimum(); -} - -QVariant VolumeAccessibleInterface::minimumStepSize() const -{ - return slider()->singleStep(); -} - -QAccessible::Role VolumeAccessibleInterface::role() const -{ - return QAccessible::Role::Slider; -} - -/**QAccessible::State VolumeAccessibleInterface::state() const -{ - return QAccessible::State:: -}**/ diff --git a/UI/slider-ignorewheel.hpp b/UI/slider-ignorewheel.hpp index 40d04487c..f5c7e5d72 100644 --- a/UI/slider-ignorewheel.hpp +++ b/UI/slider-ignorewheel.hpp @@ -1,10 +1,8 @@ #pragma once -#include "obs.hpp" #include #include #include -#include class SliderIgnoreScroll : public QSlider { Q_OBJECT @@ -17,35 +15,3 @@ public: protected: virtual void wheelEvent(QWheelEvent *event) override; }; - -class VolumeSlider : public SliderIgnoreScroll { - Q_OBJECT - -public: - obs_fader_t *fad; - - VolumeSlider(obs_fader_t *fader, QWidget *parent = nullptr); - VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation, - QWidget *parent = nullptr); -}; - -class VolumeAccessibleInterface : public QAccessibleWidget { - -public: - VolumeAccessibleInterface(QWidget *w); - - QVariant currentValue() const; - void setCurrentValue(const QVariant &value); - - QVariant maximumValue() const; - QVariant minimumValue() const; - - QVariant minimumStepSize() const; - -private: - VolumeSlider *slider() const; - -protected: - virtual QAccessible::Role role() const override; - virtual QString text(QAccessible::Text t) const override; -}; diff --git a/UI/source-tree.cpp b/UI/source-tree.cpp index 083a85de5..4032f3a3e 100644 --- a/UI/source-tree.cpp +++ b/UI/source-tree.cpp @@ -62,18 +62,12 @@ SourceTreeItem::SourceTreeItem(SourceTree *tree_, OBSSceneItem sceneitem_) vis->setFixedSize(16, 16); vis->setChecked(obs_sceneitem_visible(sceneitem)); vis->setStyleSheet("background: none"); - vis->setAccessibleName(QTStr("Basic.Main.Sources.Visibility")); - vis->setAccessibleDescription( - QTStr("Basic.Main.Sources.VisibilityDescription").arg(name)); lock = new LockedCheckBox(); lock->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); lock->setFixedSize(16, 16); lock->setChecked(obs_sceneitem_locked(sceneitem)); lock->setStyleSheet("background: none"); - lock->setAccessibleName(QTStr("Basic.Main.Sources.Lock")); - lock->setAccessibleDescription( - QTStr("Basic.Main.Sources.LockDescription").arg(name)); label = new QLabel(QT_UTF8(name)); label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); @@ -113,8 +107,8 @@ SourceTreeItem::SourceTreeItem(SourceTree *tree_, OBSSceneItem sceneitem_) obs_sceneitem_set_locked(sceneitem, checked); }; - connect(vis, &QAbstractButton::toggled, setItemVisible); - connect(lock, &QAbstractButton::toggled, setItemLocked); + connect(vis, &QAbstractButton::clicked, setItemVisible); + connect(lock, &QAbstractButton::clicked, setItemLocked); } void SourceTreeItem::paintEvent(QPaintEvent *event) diff --git a/UI/volume-control.cpp b/UI/volume-control.cpp index 51d5bc4d5..35fdb0c2a 100644 --- a/UI/volume-control.cpp +++ b/UI/volume-control.cpp @@ -89,7 +89,7 @@ void VolControl::updateText() : "VolControl.SliderUnmuted"; QString sourceName = obs_source_get_name(source); - QString accText = QTStr(accTextLookup).arg(sourceName); + QString accText = QTStr(accTextLookup).arg(sourceName, db); slider->setAccessibleName(accText); } @@ -161,7 +161,7 @@ VolControl::VolControl(OBSSource source_, bool showConfig, bool vertical) QHBoxLayout *meterLayout = new QHBoxLayout; volMeter = new VolumeMeter(nullptr, obs_volmeter, true); - slider = new VolumeSlider(obs_fader, Qt::Vertical); + slider = new SliderIgnoreScroll(Qt::Vertical); nameLayout->setAlignment(Qt::AlignCenter); meterLayout->setAlignment(Qt::AlignCenter); @@ -205,7 +205,7 @@ VolControl::VolControl(OBSSource source_, bool showConfig, bool vertical) QHBoxLayout *botLayout = new QHBoxLayout; volMeter = new VolumeMeter(nullptr, obs_volmeter, false); - slider = new VolumeSlider(obs_fader, Qt::Horizontal); + slider = new SliderIgnoreScroll(Qt::Horizontal); textLayout->setContentsMargins(0, 0, 0, 0); textLayout->addWidget(nameLabel); @@ -254,7 +254,7 @@ VolControl::VolControl(OBSSource source_, bool showConfig, bool vertical) QWidget::connect(slider, SIGNAL(valueChanged(int)), this, SLOT(SliderChanged(int))); - QWidget::connect(mute, SIGNAL(toggled(bool)), this, + QWidget::connect(mute, SIGNAL(clicked(bool)), this, SLOT(SetMuted(bool))); obs_fader_attach_source(obs_fader, source); diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 7a2db18c7..bd2cf358c 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1486,7 +1486,7 @@ void OBSBasic::ResetOutputs() QTStr("Basic.Main.StartReplayBuffer"), this); replayBufferButton->setCheckable(true); connect(replayBufferButton.data(), - &QPushButton::toggled, this, + &QPushButton::clicked, this, &OBSBasic::ReplayBufferClicked); replayBufferButton->setProperty("themeID", @@ -7510,7 +7510,7 @@ void OBSBasic::UpdatePause(bool activate) pause->setChecked(false); pause->setProperty("themeID", QVariant(QStringLiteral("pauseIconSmall"))); - connect(pause.data(), &QAbstractButton::toggled, this, + connect(pause.data(), &QAbstractButton::clicked, this, &OBSBasic::PauseToggled); ui->recordingLayout->addWidget(pause.data()); } else { diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 1a2d29c37..4d10e72d2 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -260,9 +260,10 @@ void OBSBasicSettings::HookWidget(QWidget *widget, const char *signal, #define COMBO_CHANGED SIGNAL(currentIndexChanged(int)) #define EDIT_CHANGED SIGNAL(textChanged(const QString &)) #define CBEDIT_CHANGED SIGNAL(editTextChanged(const QString &)) -#define CHECK_CHANGED SIGNAL(toggled(bool)) +#define CHECK_CHANGED SIGNAL(clicked(bool)) #define SCROLL_CHANGED SIGNAL(valueChanged(int)) #define DSCROLL_CHANGED SIGNAL(valueChanged(double)) +#define TOGGLE_CHANGED SIGNAL(toggled(bool)) #define GENERAL_CHANGED SLOT(GeneralChanged()) #define STREAM1_CHANGED SLOT(Stream1Changed()) @@ -725,68 +726,18 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) InitStreamPage(); LoadSettings(false); - ui->advOutTrack1->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track1")); - ui->advOutTrack2->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track2")); - ui->advOutTrack3->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track3")); - ui->advOutTrack4->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track4")); - ui->advOutTrack5->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track5")); - ui->advOutTrack6->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track6")); - - ui->advOutRecTrack1->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track1")); - ui->advOutRecTrack2->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track2")); - ui->advOutRecTrack3->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track3")); - ui->advOutRecTrack4->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track4")); - ui->advOutRecTrack5->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track5")); - ui->advOutRecTrack6->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track6")); - - ui->advOutFFTrack1->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track1")); - ui->advOutFFTrack2->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track2")); - ui->advOutFFTrack3->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track3")); - ui->advOutFFTrack4->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track4")); - ui->advOutFFTrack5->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track5")); - ui->advOutFFTrack6->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Audio.Track6")); - - ui->snappingEnabled->setAccessibleName( - QTStr("Basic.Settings.General.Snapping")); - ui->systemTrayEnabled->setAccessibleName( - QTStr("Basic.Settings.General.SysTray")); - ui->label_31->setAccessibleName( - QTStr("Basic.Settings.Output.Adv.Recording.RecType")); - ui->streamDelayEnable->setAccessibleName( - QTStr("Basic.Settings.Advanced.StreamDelay")); - ui->reconnectEnable->setAccessibleName( - QTStr("Basic.Settings.Output.Reconnect")); - // Add warning checks to advanced output recording section controls - connect(ui->advOutRecTrack1, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack1, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); - connect(ui->advOutRecTrack2, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack2, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); - connect(ui->advOutRecTrack3, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack3, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); - connect(ui->advOutRecTrack4, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack4, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); - connect(ui->advOutRecTrack5, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack5, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); - connect(ui->advOutRecTrack6, SIGNAL(toggled()), this, + connect(ui->advOutRecTrack6, SIGNAL(clicked()), this, SLOT(AdvOutRecCheckWarnings())); connect(ui->advOutRecFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(AdvOutRecCheckWarnings()));