From 724690d77e842263349798bf49c965841806b03c Mon Sep 17 00:00:00 2001 From: Palana Date: Tue, 24 Mar 2015 14:48:10 +0100 Subject: [PATCH] UI: Update window titles on source name change --- obs/window-basic-interaction.cpp | 11 +++++++++++ obs/window-basic-interaction.hpp | 2 ++ obs/window-basic-properties.cpp | 12 ++++++++++++ obs/window-basic-properties.hpp | 2 ++ 4 files changed, 27 insertions(+) diff --git a/obs/window-basic-interaction.cpp b/obs/window-basic-interaction.cpp index 1f5403fa3..59e9b345d 100644 --- a/obs/window-basic-interaction.cpp +++ b/obs/window-basic-interaction.cpp @@ -35,6 +35,8 @@ OBSBasicInteraction::OBSBasicInteraction(QWidget *parent, OBSSource source_) source (source_), removedSignal (obs_source_get_signal_handler(source), "remove", OBSBasicInteraction::SourceRemoved, this), + renamedSignal (obs_source_get_signal_handler(source), "rename", + OBSBasicInteraction::SourceRenamed, this), eventFilter (BuildEventFilter()) { int cx = (int)config_get_int(App()->GlobalConfig(), "InteractionWindow", @@ -115,6 +117,15 @@ void OBSBasicInteraction::SourceRemoved(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +void OBSBasicInteraction::SourceRenamed(void *data, calldata_t *params) +{ + const char *name = calldata_string(params, "new_name"); + QString title = QTStr("Basic.InteractionWindow").arg(QT_UTF8(name)); + + QMetaObject::invokeMethod(static_cast(data), + "setWindowTitle", Q_ARG(QString, title)); +} + void OBSBasicInteraction::DrawPreview(void *data, uint32_t cx, uint32_t cy) { OBSBasicInteraction *window = static_cast(data); diff --git a/obs/window-basic-interaction.hpp b/obs/window-basic-interaction.hpp index a6453f936..27ec5422e 100644 --- a/obs/window-basic-interaction.hpp +++ b/obs/window-basic-interaction.hpp @@ -42,9 +42,11 @@ private: OBSSource source; OBSDisplay display; OBSSignal removedSignal; + OBSSignal renamedSignal; std::unique_ptr eventFilter; static void SourceRemoved(void *data, calldata_t *params); + static void SourceRenamed(void *data, calldata_t *params); static void DrawPreview(void *data, uint32_t cx, uint32_t cy); bool GetSourceRelativeXY(int mouseX, int mouseY, int &x, int &y); diff --git a/obs/window-basic-properties.cpp b/obs/window-basic-properties.cpp index 0bf903cda..dd68df2cb 100644 --- a/obs/window-basic-properties.cpp +++ b/obs/window-basic-properties.cpp @@ -38,6 +38,9 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_) removedSignal (obs_source_get_signal_handler(source), "remove", OBSBasicProperties::SourceRemoved, this), + renamedSignal (obs_source_get_signal_handler(source), + "rename", OBSBasicProperties::SourceRenamed, + this), oldSettings (obs_data_create()), buttonBox (new QDialogButtonBox(this)) { @@ -107,6 +110,15 @@ void OBSBasicProperties::SourceRemoved(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +void OBSBasicProperties::SourceRenamed(void *data, calldata_t *params) +{ + const char *name = calldata_string(params, "new_name"); + QString title = QTStr("Basic.PropertiesWindow").arg(QT_UTF8(name)); + + QMetaObject::invokeMethod(static_cast(data), + "setWindowTitle", Q_ARG(QString, title)); +} + void OBSBasicProperties::UpdateProperties(void *data, calldata_t *) { QMetaObject::invokeMethod(static_cast(data)->view, diff --git a/obs/window-basic-properties.hpp b/obs/window-basic-properties.hpp index 4d191030e..31e431591 100644 --- a/obs/window-basic-properties.hpp +++ b/obs/window-basic-properties.hpp @@ -40,12 +40,14 @@ private: OBSSource source; OBSDisplay display; OBSSignal removedSignal; + OBSSignal renamedSignal; OBSSignal updatePropertiesSignal; OBSData oldSettings; OBSPropertiesView *view; QDialogButtonBox *buttonBox; static void SourceRemoved(void *data, calldata_t *params); + static void SourceRenamed(void *data, calldata_t *params); static void UpdateProperties(void *data, calldata_t *params); static void DrawPreview(void *data, uint32_t cx, uint32_t cy); bool ConfirmQuit();