|
@@ -158,6 +158,7 @@ inline OBSSource OBSBasicFilters::GetFilter(int row, bool async)
|
|
void OBSBasicFilters::UpdatePropertiesView(int row, bool async)
|
|
void OBSBasicFilters::UpdatePropertiesView(int row, bool async)
|
|
{
|
|
{
|
|
if (view) {
|
|
if (view) {
|
|
|
|
+ updatePropertiesSignal.Disconnect();
|
|
ui->rightLayout->removeWidget(view);
|
|
ui->rightLayout->removeWidget(view);
|
|
view->deleteLater();
|
|
view->deleteLater();
|
|
view = nullptr;
|
|
view = nullptr;
|
|
@@ -173,6 +174,11 @@ void OBSBasicFilters::UpdatePropertiesView(int row, bool async)
|
|
(PropertiesReloadCallback)obs_source_properties,
|
|
(PropertiesReloadCallback)obs_source_properties,
|
|
(PropertiesUpdateCallback)obs_source_update);
|
|
(PropertiesUpdateCallback)obs_source_update);
|
|
|
|
|
|
|
|
+ updatePropertiesSignal.Connect(obs_source_get_signal_handler(filter),
|
|
|
|
+ "update_properties",
|
|
|
|
+ OBSBasicFilters::UpdateProperties,
|
|
|
|
+ this);
|
|
|
|
+
|
|
obs_data_release(settings);
|
|
obs_data_release(settings);
|
|
|
|
|
|
view->setMaximumHeight(250);
|
|
view->setMaximumHeight(250);
|
|
@@ -181,6 +187,12 @@ void OBSBasicFilters::UpdatePropertiesView(int row, bool async)
|
|
view->show();
|
|
view->show();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void OBSBasicFilters::UpdateProperties(void *data, calldata_t *)
|
|
|
|
+{
|
|
|
|
+ QMetaObject::invokeMethod(static_cast<OBSBasicFilters*>(data)->view,
|
|
|
|
+ "ReloadProperties");
|
|
|
|
+}
|
|
|
|
+
|
|
void OBSBasicFilters::AddFilter(OBSSource filter)
|
|
void OBSBasicFilters::AddFilter(OBSSource filter)
|
|
{
|
|
{
|
|
uint32_t flags = obs_source_get_output_flags(filter);
|
|
uint32_t flags = obs_source_get_output_flags(filter);
|