mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
UI: Include duration when copy/pasting scene item transitions
This commit is contained in:
@@ -1088,7 +1088,7 @@ void OBSBasic::HideTransitionProperties()
|
||||
}
|
||||
|
||||
void OBSBasic::PasteShowHideTransition(obs_sceneitem_t *item, bool show,
|
||||
obs_source_t *tr)
|
||||
obs_source_t *tr, int duration)
|
||||
{
|
||||
int64_t sceneItemId = obs_sceneitem_get_id(item);
|
||||
std::string sceneUUID = obs_source_get_uuid(
|
||||
@@ -1114,6 +1114,7 @@ void OBSBasic::PasteShowHideTransition(obs_sceneitem_t *item, bool show,
|
||||
OBSSourceAutoRelease dup =
|
||||
obs_source_duplicate(tr, obs_source_get_name(tr), true);
|
||||
obs_sceneitem_set_transition(item, show, dup);
|
||||
obs_sceneitem_set_transition_duration(item, show, duration);
|
||||
|
||||
OBSDataAutoRelease transitionData =
|
||||
obs_sceneitem_transition_save(item, show);
|
||||
@@ -1273,7 +1274,10 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSSceneItem item = main->GetCurrentSceneItem();
|
||||
obs_source_t *tr = obs_sceneitem_get_transition(item, visible);
|
||||
int trDur =
|
||||
obs_sceneitem_get_transition_duration(item, visible);
|
||||
main->copySourceTransition = obs_source_get_weak_source(tr);
|
||||
main->copySourceTransitionDuration = trDur;
|
||||
};
|
||||
menu->addSeparator();
|
||||
action = menu->addAction(QT_UTF8(Str("Copy")));
|
||||
@@ -1285,6 +1289,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
OBSBasic *main =
|
||||
reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSSource tr = OBSGetStrongRef(main->copySourceTransition);
|
||||
int trDuration = main->copySourceTransitionDuration;
|
||||
if (!tr)
|
||||
return;
|
||||
|
||||
@@ -1294,7 +1299,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
if (!item)
|
||||
continue;
|
||||
|
||||
PasteShowHideTransition(item, show, tr);
|
||||
PasteShowHideTransition(item, show, tr, trDuration);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user