From cc239ab9636e168ef92aa7f5ab0a515fadd02158 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 4 Nov 2020 15:42:28 +0100 Subject: Show loading animation for initial login --- include/QuickMedia.hpp | 1 + src/QuickMedia.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/QuickMedia.hpp b/include/QuickMedia.hpp index 0d4b384..90e24bc 100644 --- a/include/QuickMedia.hpp +++ b/include/QuickMedia.hpp @@ -107,6 +107,7 @@ namespace QuickMedia { Display *disp; sf::RenderWindow window; Matrix *matrix = nullptr; + bool is_login_sync = false; int monitor_hz; sf::Vector2f window_size; const char *plugin_name = nullptr; diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 373970a..ff1769b 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -1365,6 +1365,11 @@ namespace QuickMedia { } if(matrix && !matrix->is_initial_sync_finished()) { + if(is_login_sync) { + load_sprite.setPosition(body_pos.x + body_size.x * 0.5f, body_pos.y + body_size.y * 0.5f); + load_sprite.setRotation(load_sprite_timer.getElapsedTime().asSeconds() * 400.0); + window.draw(load_sprite); + } std::string err_msg; if(matrix->did_initial_sync_fail(err_msg)) { show_notification("QuickMedia", "Initial matrix sync failed, error: " + err_msg, Urgency::CRITICAL); @@ -3005,6 +3010,8 @@ namespace QuickMedia { window.draw(status_text); window.display(); } + + is_login_sync = true; } struct ChatTab { @@ -4235,6 +4242,11 @@ namespace QuickMedia { } if(matrix && !matrix->is_initial_sync_finished()) { + if(is_login_sync) { + load_sprite.setPosition(body_pos.x + body_size.x * 0.5f, body_pos.y + body_size.y * 0.5f); + load_sprite.setRotation(load_sprite_timer.getElapsedTime().asSeconds() * 400.0); + window.draw(load_sprite); + } std::string err_msg; if(matrix->did_initial_sync_fail(err_msg)) { show_notification("QuickMedia", "Initial matrix sync failed, error: " + err_msg, Urgency::CRITICAL); -- cgit v1.2.3