From 5bc82b0d4f14a2e8cfa8c346c8ad1d2d37fd650c Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Fri, 31 May 2024 10:35:58 -0500 Subject: [PATCH] restore accurate slide bookending --- src/courtroom.cpp | 12 ++++++++---- src/courtroom.h | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index f8becec..c9c22f1 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -514,7 +514,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) connect(ui_vp_evidence_display, &AOEvidenceDisplay::show_evidence_details, this, &Courtroom::show_evidence); - connect(transition_animation_group, &QParallelAnimationGroup::finished, this, &Courtroom::post_transition_cleanup); + connect(transition_animation_group, &QParallelAnimationGroup::finished, this, &Courtroom::finish_transition); set_widgets(); @@ -3110,13 +3110,17 @@ void Courtroom::do_transition(QString p_desk_mod, QString oldPosId, QString newP ui_vp_sideplayer_char->hide(); } - transition_animation_group->start(); + QTimer::singleShot(TRANSITION_BOOKEND_DELAY, transition_animation_group, SLOT(start())); +} + +void Courtroom::finish_transition() +{ + transition_animation_group->clear(); + QTimer::singleShot(TRANSITION_BOOKEND_DELAY, this, SLOT(post_transition_cleanup())); } void Courtroom::post_transition_cleanup() { - transition_animation_group->clear(); - for (kal::CharacterAnimationLayer *layer : qAsConst(ui_vp_char_list)) { bool is_visible = layer->isVisible(); diff --git a/src/courtroom.h b/src/courtroom.h index a7ca235..b3b34c6 100644 --- a/src/courtroom.h +++ b/src/courtroom.h @@ -983,5 +983,6 @@ private Q_SLOTS: // After attempting to play a transition animation, clean up the viewport // objects for everyone else and continue the IC processing callstack + void finish_transition(); void post_transition_cleanup(); };