UI: Use vector for signals in source tree/transform

Cleans up signal code.
This commit is contained in:
cg2121
2024-01-30 18:09:20 -06:00
committed by Lain
parent a0e666d8e3
commit b6e2face96
4 changed files with 23 additions and 50 deletions

View File

@@ -182,17 +182,7 @@ void SourceTreeItem::paintEvent(QPaintEvent *event)
void SourceTreeItem::DisconnectSignals()
{
sceneRemoveSignal.Disconnect();
itemRemoveSignal.Disconnect();
selectSignal.Disconnect();
deselectSignal.Disconnect();
visibleSignal.Disconnect();
lockedSignal.Disconnect();
renameSignal.Disconnect();
removeSignal.Disconnect();
if (obs_sceneitem_is_group(sceneitem))
groupReorderSignal.Disconnect();
sigs.clear();
}
void SourceTreeItem::Clear()
@@ -279,19 +269,18 @@ void SourceTreeItem::ReconnectSignals()
obs_source_t *sceneSource = obs_scene_get_source(scene);
signal_handler_t *signal = obs_source_get_signal_handler(sceneSource);
sceneRemoveSignal.Connect(signal, "remove", removeItem, this);
itemRemoveSignal.Connect(signal, "item_remove", removeItem, this);
visibleSignal.Connect(signal, "item_visible", itemVisible, this);
lockedSignal.Connect(signal, "item_locked", itemLocked, this);
selectSignal.Connect(signal, "item_select", itemSelect, this);
deselectSignal.Connect(signal, "item_deselect", itemDeselect, this);
sigs.emplace_back(signal, "remove", removeItem, this);
sigs.emplace_back(signal, "item_remove", removeItem, this);
sigs.emplace_back(signal, "item_visible", itemVisible, this);
sigs.emplace_back(signal, "item_locked", itemLocked, this);
sigs.emplace_back(signal, "item_select", itemSelect, this);
sigs.emplace_back(signal, "item_deselect", itemDeselect, this);
if (obs_sceneitem_is_group(sceneitem)) {
obs_source_t *source = obs_sceneitem_get_source(sceneitem);
signal = obs_source_get_signal_handler(source);
groupReorderSignal.Connect(signal, "reorder", reorderGroup,
this);
sigs.emplace_back(signal, "reorder", reorderGroup, this);
}
/* --------------------------------------------------------- */
@@ -315,8 +304,8 @@ void SourceTreeItem::ReconnectSignals()
obs_source_t *source = obs_sceneitem_get_source(sceneitem);
signal = obs_source_get_signal_handler(source);
renameSignal.Connect(signal, "rename", renamed, this);
removeSignal.Connect(signal, "remove", removeSource, this);
sigs.emplace_back(signal, "rename", renamed, this);
sigs.emplace_back(signal, "remove", removeSource, this);
}
void SourceTreeItem::mouseDoubleClickEvent(QMouseEvent *event)