aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorin1tiate <32779090+in1tiate@users.noreply.github.com>2024-05-31 10:35:58 -0500
committerin1tiate <32779090+in1tiate@users.noreply.github.com>2024-05-31 10:35:58 -0500
commit5bc82b0d4f14a2e8cfa8c346c8ad1d2d37fd650c (patch)
tree49c7d665bb287507a97a3315931bedfe76b983fb
parent37f103e2c27015dc311371d621097f0b3b523b70 (diff)
restore accurate slide bookending
-rw-r--r--src/courtroom.cpp10
-rw-r--r--src/courtroom.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index f8bececa..c9c22f18 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::post_transition_cleanup()
+void Courtroom::finish_transition()
{
transition_animation_group->clear();
+ QTimer::singleShot(TRANSITION_BOOKEND_DELAY, this, SLOT(post_transition_cleanup()));
+}
+void Courtroom::post_transition_cleanup()
+{
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 a7ca2354..b3b34c6a 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();
};