From 59f2a6ac5a6911a9c3300ce432cc269cb8e18b1c Mon Sep 17 00:00:00 2001 From: Palana Date: Tue, 30 Sep 2014 15:43:41 +0200 Subject: [PATCH] Handle 'update_properties' signal in window-basic-properties --- obs/window-basic-properties.cpp | 26 +++++++++++++++++++------- obs/window-basic-properties.hpp | 2 ++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/obs/window-basic-properties.cpp b/obs/window-basic-properties.cpp index a5beaa75e..d866fa4ec 100644 --- a/obs/window-basic-properties.cpp +++ b/obs/window-basic-properties.cpp @@ -28,13 +28,19 @@ using namespace std; OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_) - : QDialog (parent), - main (qobject_cast(parent)), - resizeTimer (0), - ui (new Ui::OBSBasicProperties), - source (source_), - removedSignal (obs_source_get_signal_handler(source), "remove", - OBSBasicProperties::SourceRemoved, this) + : QDialog (parent), + main (qobject_cast(parent)), + resizeTimer (0), + ui (new Ui::OBSBasicProperties), + source (source_), + removedSignal (obs_source_get_signal_handler(source), + "remove", OBSBasicProperties::SourceRemoved, + this), + updatePropertiesSignal (obs_source_get_signal_handler(source), + "update_properties", + OBSBasicProperties::UpdateProperties, + this) + { int cx = (int)config_get_int(App()->GlobalConfig(), "PropertiesWindow", "cx"); @@ -79,6 +85,12 @@ void OBSBasicProperties::SourceRemoved(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +void OBSBasicProperties::UpdateProperties(void *data, calldata_t *) +{ + QMetaObject::invokeMethod(static_cast(data)->view, + "ReloadProperties"); +} + void OBSBasicProperties::DrawPreview(void *data, uint32_t cx, uint32_t cy) { OBSBasicProperties *window = static_cast(data); diff --git a/obs/window-basic-properties.hpp b/obs/window-basic-properties.hpp index 324b5e684..6a92fb45e 100644 --- a/obs/window-basic-properties.hpp +++ b/obs/window-basic-properties.hpp @@ -39,9 +39,11 @@ private: OBSSource source; OBSDisplay display; OBSSignal removedSignal; + OBSSignal updatePropertiesSignal; OBSPropertiesView *view; static void SourceRemoved(void *data, calldata_t *params); + static void UpdateProperties(void *data, calldata_t *params); static void DrawPreview(void *data, uint32_t cx, uint32_t cy); private slots: