0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

UI: Update window titles on source name change

This commit is contained in:
Palana 2015-03-24 14:48:10 +01:00
parent 946b9d01e3
commit 724690d77e
4 changed files with 27 additions and 0 deletions

View File

@ -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<OBSBasicProperties*>(data),
"setWindowTitle", Q_ARG(QString, title));
}
void OBSBasicInteraction::DrawPreview(void *data, uint32_t cx, uint32_t cy)
{
OBSBasicInteraction *window = static_cast<OBSBasicInteraction*>(data);

View File

@ -42,9 +42,11 @@ private:
OBSSource source;
OBSDisplay display;
OBSSignal removedSignal;
OBSSignal renamedSignal;
std::unique_ptr<OBSEventFilter> 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);

View File

@ -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<OBSBasicProperties*>(data),
"setWindowTitle", Q_ARG(QString, title));
}
void OBSBasicProperties::UpdateProperties(void *data, calldata_t *)
{
QMetaObject::invokeMethod(static_cast<OBSBasicProperties*>(data)->view,

View File

@ -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();