|
@@ -130,6 +130,7 @@ void SourceTreeItem::DisconnectSignals()
|
|
itemRemoveSignal.Disconnect();
|
|
itemRemoveSignal.Disconnect();
|
|
deselectSignal.Disconnect();
|
|
deselectSignal.Disconnect();
|
|
visibleSignal.Disconnect();
|
|
visibleSignal.Disconnect();
|
|
|
|
+ lockedSignal.Disconnect();
|
|
renameSignal.Disconnect();
|
|
renameSignal.Disconnect();
|
|
removeSignal.Disconnect();
|
|
removeSignal.Disconnect();
|
|
}
|
|
}
|
|
@@ -177,6 +178,18 @@ void SourceTreeItem::ReconnectSignals()
|
|
Q_ARG(bool, visible));
|
|
Q_ARG(bool, visible));
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ auto itemLocked = [] (void *data, calldata_t *cd)
|
|
|
|
+ {
|
|
|
|
+ SourceTreeItem *this_ = reinterpret_cast<SourceTreeItem*>(data);
|
|
|
|
+ obs_sceneitem_t *curItem =
|
|
|
|
+ (obs_sceneitem_t*)calldata_ptr(cd, "item");
|
|
|
|
+ bool locked = calldata_bool(cd, "locked");
|
|
|
|
+
|
|
|
|
+ if (curItem == this_->sceneitem)
|
|
|
|
+ QMetaObject::invokeMethod(this_, "LockedChanged",
|
|
|
|
+ Q_ARG(bool, locked));
|
|
|
|
+ };
|
|
|
|
+
|
|
auto itemDeselect = [] (void *data, calldata_t *cd)
|
|
auto itemDeselect = [] (void *data, calldata_t *cd)
|
|
{
|
|
{
|
|
SourceTreeItem *this_ = reinterpret_cast<SourceTreeItem*>(data);
|
|
SourceTreeItem *this_ = reinterpret_cast<SourceTreeItem*>(data);
|
|
@@ -200,6 +213,7 @@ void SourceTreeItem::ReconnectSignals()
|
|
sceneRemoveSignal.Connect(signal, "remove", removeItem, this);
|
|
sceneRemoveSignal.Connect(signal, "remove", removeItem, this);
|
|
itemRemoveSignal.Connect(signal, "item_remove", removeItem, this);
|
|
itemRemoveSignal.Connect(signal, "item_remove", removeItem, this);
|
|
visibleSignal.Connect(signal, "item_visible", itemVisible, this);
|
|
visibleSignal.Connect(signal, "item_visible", itemVisible, this);
|
|
|
|
+ lockedSignal.Connect(signal, "item_locked", itemLocked, this);
|
|
|
|
|
|
if (obs_sceneitem_is_group(sceneitem)) {
|
|
if (obs_sceneitem_is_group(sceneitem)) {
|
|
obs_source_t *source = obs_sceneitem_get_source(sceneitem);
|
|
obs_source_t *source = obs_sceneitem_get_source(sceneitem);
|
|
@@ -368,6 +382,11 @@ void SourceTreeItem::VisibilityChanged(bool visible)
|
|
vis->setChecked(visible);
|
|
vis->setChecked(visible);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void SourceTreeItem::LockedChanged(bool locked)
|
|
|
|
+{
|
|
|
|
+ lock->setChecked(locked);
|
|
|
|
+}
|
|
|
|
+
|
|
void SourceTreeItem::Renamed(const QString &name)
|
|
void SourceTreeItem::Renamed(const QString &name)
|
|
{
|
|
{
|
|
label->setText(name);
|
|
label->setText(name);
|