UI: Force current scene when using undo/redo

The undo/redo functions are setting the current scene. Everytime
it would do this, it would actually transition to the scene.
This forces the current scene, so it fixes a bug where the
transition would be grayed out when undoing/redoing.
master
Clayton Groeneveld 2021-04-03 22:38:06 -05:00 committed by Jim
parent c370692773
commit 7dfd36f9e8
8 changed files with 17 additions and 17 deletions

View File

@ -62,7 +62,7 @@ void SourceToolbar::SetUndoProperties(obs_source_t *source)
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
main->SetCurrentScene(scene_source);
main->SetCurrentScene(scene_source, true);
obs_source_release(scene_source);
obs_data_release(settings);

View File

@ -413,7 +413,7 @@ void SourceTreeItem::ExitEditMode(bool save)
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
main->SetCurrentScene(scene_source);
main->SetCurrentScene(scene_source, true);
obs_source_release(scene_source);
};
@ -424,7 +424,7 @@ void SourceTreeItem::ExitEditMode(bool save)
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
main->SetCurrentScene(scene_source);
main->SetCurrentScene(scene_source, true);
obs_source_release(scene_source);
};

View File

@ -575,7 +575,7 @@ void OBSBasicFilters::AddNewFilter(const char *id)
obs_source_t *ssource =
obs_get_source_by_name(scene_name.c_str());
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_data_t *dat =
@ -599,7 +599,7 @@ void OBSBasicFilters::AddNewFilter(const char *id)
obs_source_t *ssource =
obs_get_source_by_name(scene_name.c_str());
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_data_t *dat =
@ -829,7 +829,7 @@ void OBSBasicFilters::on_removeEffectFilter_clicked()
scene_name.c_str());
reinterpret_cast<OBSBasic *>(
App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_data_t *dat =
@ -854,7 +854,7 @@ void OBSBasicFilters::on_removeEffectFilter_clicked()
scene_name.c_str());
reinterpret_cast<OBSBasic *>(
App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_data_t *dat =
@ -1134,7 +1134,7 @@ void OBSBasicFilters::FilterNameEdited(QWidget *editor, QListWidget *list)
obs_source_t *ssource =
obs_get_source_by_name(scene_name.c_str());
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_source_t *source =
@ -1151,7 +1151,7 @@ void OBSBasicFilters::FilterNameEdited(QWidget *editor, QListWidget *list)
obs_source_t *ssource =
obs_get_source_by_name(scene_name.c_str());
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(ssource);
->SetCurrentScene(ssource, true);
obs_source_release(ssource);
obs_source_t *source =

View File

@ -3739,7 +3739,7 @@ void OBSBasic::RemoveSelectedScene()
obs_source_t *scene_source = sources.back();
OBSScene scene = obs_scene_from_source(scene_source);
SetCurrentScene(scene);
SetCurrentScene(scene, true);
/* set original index in list box */
ui->scenes->blockSignals(true);
@ -4927,7 +4927,7 @@ void OBSBasic::on_actionAddScene_triggered()
auto redo_fn = [this](const std::string &data) {
obs_scene_t *scene = obs_scene_create(data.c_str());
obs_source_t *source = obs_scene_get_source(scene);
SetCurrentScene(source);
SetCurrentScene(source, true);
obs_scene_release(scene);
};
undo_s.add_action(QTStr("Undo.Add").arg(QString(name.c_str())),
@ -7155,7 +7155,7 @@ void undo_redo(const std::string &data)
obs_source_t *source =
obs_get_source_by_name(obs_data_get_string(dat, "scene_name"));
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(source);
->SetCurrentScene(source, true);
obs_source_release(source);
obs_data_release(dat);

View File

@ -730,7 +730,7 @@ void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event)
obs_source_t *source = obs_get_source_by_name(
obs_data_get_string(dat, "scene_name"));
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(source);
->SetCurrentScene(source, true);
obs_source_release(source);
obs_data_release(dat);

View File

@ -375,7 +375,7 @@ void OBSBasicProperties::on_buttonBox_clicked(QAbstractButton *button)
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
OBSBasic::Get()->SetCurrentScene(source);
OBSBasic::Get()->SetCurrentScene(source, true);
obs_source_release(scene_source);

View File

@ -252,7 +252,7 @@ void OBSBasicSourceSelect::on_buttonBox_accepted()
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
main->SetCurrentScene(scene_source);
main->SetCurrentScene(scene_source, true);
obs_source_release(scene_source);
main->RefreshSources(main->GetCurrentScene());
@ -282,7 +282,7 @@ void OBSBasicSourceSelect::on_buttonBox_accepted()
obs_source_t *scene_source =
obs_get_source_by_name(scene_name.c_str());
main->SetCurrentScene(scene_source);
main->SetCurrentScene(scene_source, true);
obs_source_release(scene_source);
main->RefreshSources(main->GetCurrentScene());

View File

@ -92,7 +92,7 @@ OBSBasicTransform::~OBSBasicTransform()
obs_source_t *source = obs_get_source_by_name(
obs_data_get_string(dat, "scene_name"));
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())
->SetCurrentScene(source);
->SetCurrentScene(source, true);
obs_source_release(source);
obs_data_release(dat);
obs_scene_load_transform_states(data.c_str());