UI: Add rename signal to adv audio dialog

The names wouldn't be updated in the advanced audio dialog
when the source is renamed.
This commit is contained in:
cg2121 2022-05-13 01:57:43 -05:00 committed by Jim
parent 252918a7c4
commit 8dc91ce5e1
2 changed files with 20 additions and 1 deletions

View file

@ -68,6 +68,7 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
this);
balChangedSignal.Connect(handler, "audio_balance",
OBSSourceBalanceChanged, this);
renameSignal.Connect(handler, "rename", OBSSourceRenamed, this);
hlayout = new QHBoxLayout();
hlayout->setContentsMargins(0, 0, 0, 0);
@ -95,7 +96,7 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
iconLabel->setFixedSize(16, 16);
iconLabel->setStyleSheet("background: none");
nameLabel->setText(sourceName);
SetSourceName(sourceName);
nameLabel->setAlignment(Qt::AlignVCenter);
bool isActive = obs_source_active(source);
@ -360,6 +361,15 @@ void OBSAdvAudioCtrl::OBSSourceBalanceChanged(void *param, calldata_t *calldata)
"SourceBalanceChanged", Q_ARG(int, balance));
}
void OBSAdvAudioCtrl::OBSSourceRenamed(void *param, calldata_t *calldata)
{
QString newName = QT_UTF8(calldata_string(calldata, "new_name"));
QMetaObject::invokeMethod(reinterpret_cast<OBSAdvAudioCtrl *>(param),
"SetSourceName",
Q_ARG(const QString &, newName));
}
/* ------------------------------------------------------------------------- */
/* Qt event queue source callbacks */
@ -689,3 +699,9 @@ void OBSAdvAudioCtrl::SetIconVisible(bool visible)
{
visible ? iconLabel->show() : iconLabel->hide();
}
void OBSAdvAudioCtrl::SetSourceName(const QString &newName)
{
if (nameLabel->text() != newName)
nameLabel->setText(newName);
}

View file

@ -56,6 +56,7 @@ private:
OBSSignal activateSignal;
OBSSignal deactivateSignal;
OBSSignal balChangedSignal;
OBSSignal renameSignal;
static void OBSSourceActivated(void *param, calldata_t *calldata);
static void OBSSourceDeactivated(void *param, calldata_t *calldata);
@ -66,6 +67,7 @@ private:
calldata_t *calldata);
static void OBSSourceMixersChanged(void *param, calldata_t *calldata);
static void OBSSourceBalanceChanged(void *param, calldata_t *calldata);
static void OBSSourceRenamed(void *param, calldata_t *calldata);
public:
OBSAdvAudioCtrl(QGridLayout *layout, obs_source_t *source_);
@ -85,6 +87,7 @@ public slots:
void SourceMonitoringTypeChanged(int type);
void SourceMixersChanged(uint32_t mixers);
void SourceBalanceChanged(int balance);
void SetSourceName(const QString &newNamw);
void volumeChanged(double db);
void percentChanged(int percent);