|
|
@@ -1095,7 +1095,7 @@ QMenu *OBSBasic::CreatePerSceneTransitionMenu()
|
|
|
void OBSBasic::on_actionShowTransitionProperties_triggered()
|
|
|
{
|
|
|
OBSSceneItem item = GetCurrentSceneItem();
|
|
|
- OBSSource source = obs_sceneitem_get_show_transition(item);
|
|
|
+ OBSSource source = obs_sceneitem_get_transition(item, true);
|
|
|
|
|
|
if (source)
|
|
|
CreatePropertiesWindow(source);
|
|
|
@@ -1104,7 +1104,7 @@ void OBSBasic::on_actionShowTransitionProperties_triggered()
|
|
|
void OBSBasic::on_actionHideTransitionProperties_triggered()
|
|
|
{
|
|
|
OBSSceneItem item = GetCurrentSceneItem();
|
|
|
- OBSSource source = obs_sceneitem_get_hide_transition(item);
|
|
|
+ OBSSource source = obs_sceneitem_get_transition(item, false);
|
|
|
|
|
|
if (source)
|
|
|
CreatePropertiesWindow(source);
|
|
|
@@ -1118,14 +1118,11 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
|
|
new QMenu(QTStr(visible ? "ShowTransition" : "HideTransition"));
|
|
|
QAction *action;
|
|
|
|
|
|
- OBSSource curTransition =
|
|
|
- visible ? obs_sceneitem_get_show_transition(si)
|
|
|
- : obs_sceneitem_get_hide_transition(si);
|
|
|
+ OBSSource curTransition = obs_sceneitem_get_transition(si, visible);
|
|
|
const char *curId = curTransition ? obs_source_get_id(curTransition)
|
|
|
: nullptr;
|
|
|
int curDuration =
|
|
|
- (int)(visible ? obs_sceneitem_get_show_transition_duration(si)
|
|
|
- : obs_sceneitem_get_hide_transition_duration(si));
|
|
|
+ (int)obs_sceneitem_get_transition_duration(si, visible);
|
|
|
|
|
|
if (curDuration <= 0)
|
|
|
curDuration = obs_frontend_get_transition_duration();
|
|
|
@@ -1164,18 +1161,11 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
|
|
OBSDataAutoRelease oldTransitionData =
|
|
|
obs_sceneitem_transition_save(sceneItem, visible);
|
|
|
if (id.isNull() || id.isEmpty()) {
|
|
|
- if (visible)
|
|
|
- obs_sceneitem_set_show_transition(sceneItem,
|
|
|
- nullptr);
|
|
|
- else
|
|
|
- obs_sceneitem_set_hide_transition(sceneItem,
|
|
|
- nullptr);
|
|
|
+ obs_sceneitem_set_transition(sceneItem, visible,
|
|
|
+ nullptr);
|
|
|
} else {
|
|
|
- OBSSource tr =
|
|
|
- visible ? obs_sceneitem_get_show_transition(
|
|
|
- sceneItem)
|
|
|
- : obs_sceneitem_get_hide_transition(
|
|
|
- sceneItem);
|
|
|
+ OBSSource tr = obs_sceneitem_get_transition(sceneItem,
|
|
|
+ visible);
|
|
|
|
|
|
if (!tr || strcmp(QT_TO_UTF8(id),
|
|
|
obs_source_get_id(tr)) != 0) {
|
|
|
@@ -1187,28 +1177,18 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
|
|
tr = obs_source_create_private(QT_TO_UTF8(id),
|
|
|
QT_TO_UTF8(name),
|
|
|
nullptr);
|
|
|
- if (visible)
|
|
|
- obs_sceneitem_set_show_transition(
|
|
|
- sceneItem, tr);
|
|
|
- else
|
|
|
- obs_sceneitem_set_hide_transition(
|
|
|
- sceneItem, tr);
|
|
|
+ obs_sceneitem_set_transition(sceneItem, visible,
|
|
|
+ tr);
|
|
|
obs_source_release(tr);
|
|
|
|
|
|
- int duration =
|
|
|
- (int)(visible ? obs_sceneitem_get_show_transition_duration(
|
|
|
- sceneItem)
|
|
|
- : obs_sceneitem_get_hide_transition_duration(
|
|
|
- sceneItem));
|
|
|
+ int duration = (int)
|
|
|
+ obs_sceneitem_get_transition_duration(
|
|
|
+ sceneItem, visible);
|
|
|
if (duration <= 0) {
|
|
|
duration =
|
|
|
obs_frontend_get_transition_duration();
|
|
|
- if (visible)
|
|
|
- obs_sceneitem_set_show_transition_duration(
|
|
|
- sceneItem, duration);
|
|
|
- else
|
|
|
- obs_sceneitem_set_hide_transition_duration(
|
|
|
- sceneItem, duration);
|
|
|
+ obs_sceneitem_set_transition_duration(
|
|
|
+ sceneItem, visible, duration);
|
|
|
}
|
|
|
}
|
|
|
if (obs_source_configurable(tr))
|
|
|
@@ -1227,31 +1207,15 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
|
|
sceneItem))),
|
|
|
undo_redo, undo_redo, undo_data, redo_data);
|
|
|
};
|
|
|
- if (visible) {
|
|
|
- auto setDuration = [](int duration) {
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(
|
|
|
- App()->GetMainWindow());
|
|
|
-
|
|
|
- OBSSceneItem item = main->GetCurrentSceneItem();
|
|
|
- obs_sceneitem_set_show_transition_duration(item,
|
|
|
- duration);
|
|
|
- };
|
|
|
- connect(duration,
|
|
|
- (void (QSpinBox::*)(int)) & QSpinBox::valueChanged,
|
|
|
- setDuration);
|
|
|
- } else {
|
|
|
- auto setDuration = [](int duration) {
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(
|
|
|
- App()->GetMainWindow());
|
|
|
+ auto setDuration = [visible](int duration) {
|
|
|
+ OBSBasic *main =
|
|
|
+ reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
- OBSSceneItem item = main->GetCurrentSceneItem();
|
|
|
- obs_sceneitem_set_hide_transition_duration(item,
|
|
|
- duration);
|
|
|
- };
|
|
|
- connect(duration,
|
|
|
- (void (QSpinBox::*)(int)) & QSpinBox::valueChanged,
|
|
|
- setDuration);
|
|
|
- }
|
|
|
+ OBSSceneItem item = main->GetCurrentSceneItem();
|
|
|
+ obs_sceneitem_set_transition_duration(item, visible, duration);
|
|
|
+ };
|
|
|
+ connect(duration, (void (QSpinBox::*)(int)) & QSpinBox::valueChanged,
|
|
|
+ setDuration);
|
|
|
|
|
|
action = menu->addAction(QT_UTF8(Str("None")));
|
|
|
action->setProperty("transition_id", QT_UTF8(""));
|