Skip to content

Commit fe947fd

Browse files
committed
TO SQUASH: Set the transition when setting the current transition
1 parent 084f8f0 commit fe947fd

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

frontend/widgets/OBSBasic.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1531,7 +1531,7 @@ private slots:
15311531

15321532
void PasteShowHideTransition(obs_sceneitem_t *item, bool show, obs_source_t *tr, int duration);
15331533

1534-
void SetCurrentTransition(const std::string &uuid);
1534+
void SetCurrentTransition(const std::string &uuid, bool setTransition);
15351535

15361536
public slots:
15371537
void SetCurrentScene(OBSSource scene, bool force = false);

frontend/widgets/OBSBasic_Transitions.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void OBSBasic::InitDefaultTransitions()
8080
emit TransitionAdded(QT_UTF8(obs_source_get_name(tr)), QString::fromStdString(uuid));
8181
}
8282

83-
SetCurrentTransition(transitionUuids.back());
83+
SetCurrentTransition(transitionUuids.back(), true);
8484
}
8585

8686
void OBSBasic::AddQuickTransitionHotkey(QuickTransition *qt)
@@ -390,8 +390,8 @@ void OBSBasic::SetTransition(OBSSource transition)
390390
if (oldTransition && transition) {
391391
std::string uuid = obs_source_get_uuid(transition);
392392
obs_transition_swap_begin(transition, oldTransition);
393-
if (transitions.find(uuid) != transitions.end())
394-
SetCurrentTransition(uuid);
393+
if (currentTransitionUuid != uuid)
394+
SetCurrentTransition(uuid, false);
395395
obs_set_output_source(0, transition);
396396
obs_transition_swap_end(transition, oldTransition);
397397
} else {
@@ -461,7 +461,7 @@ void OBSBasic::AddTransition(const char *id)
461461

462462
emit TransitionAdded(QString::fromStdString(name), QString::fromStdString(uuid));
463463

464-
SetCurrentTransition(uuid);
464+
SetCurrentTransition(uuid, true);
465465

466466
CreatePropertiesWindow(source);
467467
obs_source_release(source);
@@ -526,7 +526,7 @@ void OBSBasic::on_transitionRemove_clicked()
526526

527527
transitionUuids.erase(std::find(transitionUuids.begin(), transitionUuids.end(), currentTransitionUuid));
528528
transitions.erase(currentTransitionUuid);
529-
SetCurrentTransition(transitionUuids.back());
529+
SetCurrentTransition(transitionUuids.back(), true);
530530

531531
OnEvent(OBS_FRONTEND_EVENT_TRANSITION_LIST_CHANGED);
532532

@@ -1378,7 +1378,7 @@ void OBSBasic::LoadTransitions(obs_data_array_t *transitionsData, obs_load_sourc
13781378
}
13791379
}
13801380

1381-
SetCurrentTransition(transitionUuids.back());
1381+
SetCurrentTransition(transitionUuids.back(), true);
13821382
}
13831383

13841384
OBSSource OBSBasic::GetOverrideTransition(OBSSource source)
@@ -1414,21 +1414,31 @@ int OBSBasic::GetTransitionDuration()
14141414
return transitionDuration;
14151415
}
14161416

1417-
void OBSBasic::SetCurrentTransition(const std::string &uuid)
1417+
void OBSBasic::SetCurrentTransition(const std::string &uuid, bool setTransition)
14181418
{
1419-
if (transitions.find(uuid) == transitions.end())
1419+
auto transitionIter = transitions.find(uuid);
1420+
1421+
if (currentTransitionUuid == uuid || transitionIter == transitions.end())
14201422
return;
14211423

14221424
currentTransitionUuid = uuid;
1425+
1426+
if (setTransition)
1427+
SetTransition(transitionIter->second);
1428+
14231429
emit CurrentTranstionChanged(QString::fromStdString(uuid));
14241430
}
14251431

14261432
void OBSBasic::SetCurrentTransition(const QString &uuid)
14271433
{
1428-
if (transitions.find(uuid.toStdString()) == transitions.end())
1434+
auto transitionIter = transitions.find(uuid.toStdString());
1435+
1436+
if (currentTransitionUuid == uuid.toStdString() || transitionIter == transitions.end())
14291437
return;
14301438

14311439
currentTransitionUuid = uuid.toStdString();
1440+
SetTransition(transitionIter->second);
1441+
14321442
emit CurrentTranstionChanged(uuid);
14331443
}
14341444

0 commit comments

Comments
 (0)