Skip to content

Commit c48c205

Browse files
committed
frontend: Remove remaining sender() usage
1 parent 3384f8a commit c48c205

17 files changed

Lines changed: 160 additions & 192 deletions

frontend/settings/OBSBasicSettings.cpp

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1895,7 +1895,7 @@ OBSPropertiesView *OBSBasicSettings::CreateEncoderPropertyView(const char *encod
18951895
view->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
18961896
view->setProperty("changed", QVariant(changed));
18971897
view->setScrolling(false);
1898-
QObject::connect(view, &OBSPropertiesView::Changed, this, &OBSBasicSettings::OutputsChanged);
1898+
QObject::connect(view, &OBSPropertiesView::Changed, this, [this, view]() { OutputsChanged(view); });
18991899

19001900
return view;
19011901
}
@@ -4097,45 +4097,52 @@ void OBSBasicSettings::on_baseResolution_editTextChanged(const QString &text)
40974097
}
40984098
}
40994099

4100-
void OBSBasicSettings::GeneralChanged()
4100+
static void MarkChangedWidget(QObject *widget)
4101+
{
4102+
if (widget) {
4103+
widget->setProperty("changed", QVariant(true));
4104+
}
4105+
}
4106+
4107+
void OBSBasicSettings::GeneralChanged(QObject *widget)
41014108
{
41024109
if (!loading) {
41034110
generalChanged = true;
4104-
sender()->setProperty("changed", QVariant(true));
4111+
MarkChangedWidget(widget);
41054112
EnableApplyButton(true);
41064113
}
41074114
}
41084115

4109-
void OBSBasicSettings::Stream1Changed()
4116+
void OBSBasicSettings::Stream1Changed(QObject *widget)
41104117
{
41114118
if (!loading) {
41124119
stream1Changed = true;
4113-
sender()->setProperty("changed", QVariant(true));
4120+
MarkChangedWidget(widget);
41144121
EnableApplyButton(true);
41154122
}
41164123
}
41174124

4118-
void OBSBasicSettings::OutputsChanged()
4125+
void OBSBasicSettings::OutputsChanged(QObject *widget)
41194126
{
41204127
if (!loading) {
41214128
outputsChanged = true;
4122-
sender()->setProperty("changed", QVariant(true));
4129+
MarkChangedWidget(widget);
41234130
EnableApplyButton(true);
41244131

41254132
UpdateMultitrackVideo();
41264133
}
41274134
}
41284135

4129-
void OBSBasicSettings::AudioChanged()
4136+
void OBSBasicSettings::AudioChanged(QObject *widget)
41304137
{
41314138
if (!loading) {
41324139
audioChanged = true;
4133-
sender()->setProperty("changed", QVariant(true));
4140+
MarkChangedWidget(widget);
41344141
EnableApplyButton(true);
41354142
}
41364143
}
41374144

4138-
void OBSBasicSettings::AudioChangedRestart()
4145+
void OBSBasicSettings::AudioChangedRestart(QObject *widget)
41394146
{
41404147
ui->audioMsg->setVisible(false);
41414148

@@ -4153,7 +4160,7 @@ void OBSBasicSettings::AudioChangedRestart()
41534160
}
41544161

41554162
audioChanged = true;
4156-
sender()->setProperty("changed", QVariant(true));
4163+
MarkChangedWidget(widget);
41574164
EnableApplyButton(true);
41584165
}
41594166
}
@@ -4253,33 +4260,33 @@ void RestrictResetBitrates(initializer_list<QComboBox *> boxes, int maxbitrate)
42534260
}
42544261
}
42554262

4256-
void OBSBasicSettings::AdvancedChangedRestart()
4263+
void OBSBasicSettings::AdvancedChangedRestart(QObject *widget)
42574264
{
42584265
ui->advancedMsg->setVisible(false);
42594266

42604267
if (!loading) {
42614268
advancedChanged = true;
42624269
ui->advancedMsg->setText(QTStr("Basic.Settings.ProgramRestart"));
42634270
ui->advancedMsg->setVisible(true);
4264-
sender()->setProperty("changed", QVariant(true));
4271+
MarkChangedWidget(widget);
42654272
EnableApplyButton(true);
42664273
}
42674274
}
42684275

4269-
void OBSBasicSettings::VideoChangedResolution()
4276+
void OBSBasicSettings::VideoChangedResolution(QObject *widget)
42704277
{
42714278
if (!loading && ValidResolutions(ui.get())) {
42724279
videoChanged = true;
4273-
sender()->setProperty("changed", QVariant(true));
4280+
MarkChangedWidget(widget);
42744281
EnableApplyButton(true);
42754282
}
42764283
}
42774284

4278-
void OBSBasicSettings::VideoChanged()
4285+
void OBSBasicSettings::VideoChanged(QObject *widget)
42794286
{
42804287
if (!loading) {
42814288
videoChanged = true;
4282-
sender()->setProperty("changed", QVariant(true));
4289+
MarkChangedWidget(widget);
42834290
EnableApplyButton(true);
42844291
}
42854292
}
@@ -4436,29 +4443,29 @@ void OBSBasicSettings::ReloadHotkeys(obs_hotkey_id ignoreKey)
44364443
LoadHotkeySettings(ignoreKey);
44374444
}
44384445

4439-
void OBSBasicSettings::A11yChanged()
4446+
void OBSBasicSettings::A11yChanged(QObject *widget)
44404447
{
44414448
if (!loading) {
44424449
a11yChanged = true;
4443-
sender()->setProperty("changed", QVariant(true));
4450+
MarkChangedWidget(widget);
44444451
EnableApplyButton(true);
44454452
}
44464453
}
44474454

4448-
void OBSBasicSettings::AppearanceChanged()
4455+
void OBSBasicSettings::AppearanceChanged(QObject *widget)
44494456
{
44504457
if (!loading) {
44514458
appearanceChanged = true;
4452-
sender()->setProperty("changed", QVariant(true));
4459+
MarkChangedWidget(widget);
44534460
EnableApplyButton(true);
44544461
}
44554462
}
44564463

4457-
void OBSBasicSettings::AdvancedChanged()
4464+
void OBSBasicSettings::AdvancedChanged(QObject *widget)
44584465
{
44594466
if (!loading) {
44604467
advancedChanged = true;
4461-
sender()->setProperty("changed", QVariant(true));
4468+
MarkChangedWidget(widget);
44624469
EnableApplyButton(true);
44634470
}
44644471
}
@@ -5360,7 +5367,8 @@ void OBSBasicSettings::LowLatencyBufferingChanged(bool checked)
53605367
}
53615368

53625369
QMetaObject::invokeMethod(this, "UpdateAudioWarnings", Qt::QueuedConnection);
5363-
QMetaObject::invokeMethod(this, "AudioChangedRestart");
5370+
QMetaObject::invokeMethod(
5371+
this, [this]() { AudioChangedRestart(ui->lowLatencyBuffering); }, Qt::QueuedConnection);
53645372
}
53655373

53665374
void OBSBasicSettings::SimpleRecordingQualityLosslessWarning(int idx)

frontend/settings/OBSBasicSettings.hpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,11 @@ class OBSBasicSettings : public QDialog {
163163
EnableApplyButton(false);
164164
}
165165

166-
template<typename Widget, typename WidgetParent, typename... SignalArgs, typename... SlotArgs>
166+
template<typename Widget, typename WidgetParent, typename... SignalArgs>
167167
void HookWidget(Widget *widget, void (WidgetParent::*signal)(SignalArgs...),
168-
void (OBSBasicSettings::*slot)(SlotArgs...))
168+
void (OBSBasicSettings::*slot)(QObject *))
169169
{
170-
QObject::connect(widget, signal, this, slot);
170+
QObject::connect(widget, signal, this, [this, widget, slot](SignalArgs...) { (this->*slot)(widget); });
171171
widget->setProperty("changed", QVariant(false));
172172
}
173173

@@ -386,31 +386,31 @@ private slots:
386386
void on_choose9_clicked();
387387
void on_colorPreset_currentIndexChanged(int idx);
388388

389-
void GeneralChanged();
389+
void GeneralChanged(QObject *widget);
390390

391391
#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
392392
void HideOBSWindowWarning(Qt::CheckState state);
393393
#else
394394
void HideOBSWindowWarning(int state);
395395
#endif
396-
void AudioChanged();
397-
void AudioChangedRestart();
396+
void AudioChanged(QObject *widget);
397+
void AudioChangedRestart(QObject *widget);
398398
void ReloadAudioSources();
399399
void SurroundWarning(int idx);
400400
void SpeakerLayoutChanged(int idx);
401401
void LowLatencyBufferingChanged(bool checked);
402402
void UpdateAudioWarnings();
403-
void OutputsChanged();
404-
void Stream1Changed();
405-
void VideoChanged();
406-
void VideoChangedResolution();
403+
void OutputsChanged(QObject *widget);
404+
void Stream1Changed(QObject *widget);
405+
void VideoChanged(QObject *widget);
406+
void VideoChangedResolution(QObject *widget);
407407
void HotkeysChanged();
408408
bool ScanDuplicateHotkeys(QFormLayout *layout);
409409
void ReloadHotkeys(obs_hotkey_id ignoreKey = OBS_INVALID_HOTKEY_ID);
410-
void A11yChanged();
411-
void AppearanceChanged();
412-
void AdvancedChanged();
413-
void AdvancedChangedRestart();
410+
void A11yChanged(QObject *widget);
411+
void AppearanceChanged(QObject *widget);
412+
void AdvancedChanged(QObject *widget);
413+
void AdvancedChangedRestart(QObject *widget);
414414

415415
void UpdateStreamDelayEstimate();
416416

frontend/settings/OBSBasicSettings_A11y.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ void OBSBasicSettings::on_choose1_clicked()
191191
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
192192
ui->colorPreset->blockSignals(block);
193193

194-
A11yChanged();
194+
A11yChanged(nullptr);
195195

196196
UpdateA11yColors();
197197
}
@@ -210,7 +210,7 @@ void OBSBasicSettings::on_choose2_clicked()
210210
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
211211
ui->colorPreset->blockSignals(block);
212212

213-
A11yChanged();
213+
A11yChanged(nullptr);
214214

215215
UpdateA11yColors();
216216
}
@@ -229,7 +229,7 @@ void OBSBasicSettings::on_choose3_clicked()
229229
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
230230
ui->colorPreset->blockSignals(block);
231231

232-
A11yChanged();
232+
A11yChanged(nullptr);
233233

234234
UpdateA11yColors();
235235
}
@@ -248,7 +248,7 @@ void OBSBasicSettings::on_choose4_clicked()
248248
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
249249
ui->colorPreset->blockSignals(block);
250250

251-
A11yChanged();
251+
A11yChanged(nullptr);
252252

253253
UpdateA11yColors();
254254
}
@@ -267,7 +267,7 @@ void OBSBasicSettings::on_choose5_clicked()
267267
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
268268
ui->colorPreset->blockSignals(block);
269269

270-
A11yChanged();
270+
A11yChanged(nullptr);
271271

272272
UpdateA11yColors();
273273
}
@@ -286,7 +286,7 @@ void OBSBasicSettings::on_choose6_clicked()
286286
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
287287
ui->colorPreset->blockSignals(block);
288288

289-
A11yChanged();
289+
A11yChanged(nullptr);
290290

291291
UpdateA11yColors();
292292
}
@@ -306,7 +306,7 @@ void OBSBasicSettings::on_choose7_clicked()
306306
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
307307
ui->colorPreset->blockSignals(block);
308308

309-
A11yChanged();
309+
A11yChanged(nullptr);
310310

311311
UpdateA11yColors();
312312
}
@@ -326,7 +326,7 @@ void OBSBasicSettings::on_choose8_clicked()
326326
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
327327
ui->colorPreset->blockSignals(block);
328328

329-
A11yChanged();
329+
A11yChanged(nullptr);
330330

331331
UpdateA11yColors();
332332
}
@@ -345,7 +345,7 @@ void OBSBasicSettings::on_choose9_clicked()
345345
ui->colorPreset->setCurrentIndex(ui->colorPreset->count() - 1);
346346
ui->colorPreset->blockSignals(block);
347347

348-
A11yChanged();
348+
A11yChanged(nullptr);
349349

350350
UpdateA11yColors();
351351
}

frontend/settings/OBSBasicSettings_Stream.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1744,7 +1744,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
17441744
if (idx == -1) {
17451745
lastAdvVideoEnc = get_adv_fallback(lastAdvVideoEnc);
17461746
ui->advOutEncoder->setProperty("changed", QVariant(true));
1747-
OutputsChanged();
1747+
OutputsChanged(nullptr);
17481748
}
17491749

17501750
idx = ui->advOutEncoder->findData(lastAdvVideoEnc);
@@ -1757,7 +1757,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
17571757
if (idx == -1) {
17581758
lastAdvAudioEnc = get_adv_audio_fallback(lastAdvAudioEnc);
17591759
ui->advOutAEncoder->setProperty("changed", QVariant(true));
1760-
OutputsChanged();
1760+
OutputsChanged(nullptr);
17611761
}
17621762

17631763
idx = ui->advOutAEncoder->findData(lastAdvAudioEnc);
@@ -1770,7 +1770,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
17701770
if (idx == -1) {
17711771
lastVideoEnc = get_simple_fallback(lastVideoEnc);
17721772
ui->simpleOutStrEncoder->setProperty("changed", QVariant(true));
1773-
OutputsChanged();
1773+
OutputsChanged(nullptr);
17741774
}
17751775

17761776
idx = ui->simpleOutStrEncoder->findData(lastVideoEnc);
@@ -1783,7 +1783,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
17831783
if (idx == -1) {
17841784
lastAudioEnc = (lastAudioEnc == "opus") ? "aac" : "opus";
17851785
ui->simpleOutStrAEncoder->setProperty("changed", QVariant(true));
1786-
OutputsChanged();
1786+
OutputsChanged(nullptr);
17871787
}
17881788

17891789
idx = ui->simpleOutStrAEncoder->findData(lastAudioEnc);

frontend/utility/ExtraBrowsersModel.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void ExtraBrowsersModel::AddDeleteButton(int idx)
100100
del->setProperty("class", "icon-trash");
101101
del->setObjectName("extraPanelDelete");
102102
del->setMinimumSize(QSize(20, 20));
103-
connect(del, &QPushButton::clicked, this, &ExtraBrowsersModel::DeleteItem);
103+
connect(del, &QPushButton::clicked, this, [this, del, index]() { DeleteItem(del, index); });
104104

105105
widget->setIndexWidget(index, del);
106106
widget->setRowHeight(idx, 20);
@@ -150,18 +150,17 @@ void ExtraBrowsersModel::UpdateItem(Item &item)
150150
}
151151
}
152152

153-
void ExtraBrowsersModel::DeleteItem()
153+
void ExtraBrowsersModel::DeleteItem(QPushButton *button, const QModelIndex &index)
154154
{
155155
QTableView *widget = reinterpret_cast<QTableView *>(parent());
156156

157-
DelButton *del = reinterpret_cast<DelButton *>(sender());
158-
int row = del->index.row();
157+
int row = index.row();
159158

160159
/* there's some sort of internal bug in Qt and deleting certain index
161160
* widgets or "editors" that can cause a crash inside Qt if the widget
162161
* is not manually removed, at least on 5.7 */
163-
widget->setIndexWidget(del->index, nullptr);
164-
del->deleteLater();
162+
widget->setIndexWidget(index, nullptr);
163+
button->deleteLater();
165164

166165
/* --------- */
167166

frontend/utility/ExtraBrowsersModel.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <QAbstractTableModel>
44
#include <QUuid>
55

6+
class QPushButton;
7+
68
enum class Column : int {
79
Title,
810
Url,
@@ -41,7 +43,7 @@ class ExtraBrowsersModel : public QAbstractTableModel {
4143
void Reset();
4244
void CheckToAdd();
4345
void UpdateItem(Item &item);
44-
void DeleteItem();
46+
void DeleteItem(QPushButton *button, const QModelIndex &index);
4547
void Apply();
4648

4749
QVector<Item> items;

0 commit comments

Comments
 (0)