1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:57:43 +00:00

Userland: Use Core::Timer::create_foo() factory functions where possible

This commit is contained in:
Sam Atkins 2023-01-11 20:00:46 +00:00 committed by Andreas Kling
parent 6edc0cf5ab
commit e181b1cb82
12 changed files with 37 additions and 51 deletions

View file

@ -41,26 +41,28 @@ DemoWizardDialog::DemoWizardDialog(GUI::Window* parent_window)
.release_value_but_fixme_should_propagate_errors();
m_page_2->body_widget().load_from_gml(demo_wizard_page_2_gml).release_value_but_fixme_should_propagate_errors();
m_page_2_progressbar = m_page_2->body_widget().find_descendant_of_type_named<GUI::Progressbar>("page_2_progressbar");
m_page_2_timer = Core::Timer::try_create(this).release_value_but_fixme_should_propagate_errors();
m_page_2_timer = Core::Timer::create_repeating(
100, [&]() {
if (m_page_2_progress_value < 100)
m_page_2_progress_value++;
m_page_2_progressbar->set_value(m_page_2_progress_value);
// Go to final page on progress completion
if (m_page_2_progress_value == 100) {
m_page_2_progress_value = 0;
replace_page(*m_back_page);
}
},
this)
.release_value_but_fixme_should_propagate_errors();
m_page_2->on_page_enter = [&]() {
m_page_2_progress_value = 0;
m_page_2_timer->restart(100);
m_page_2_timer->restart();
};
m_page_2->on_page_leave = [&]() {
m_page_2_progress_value = 0;
m_page_2_timer->stop();
};
m_page_2_timer->on_timeout = [&]() {
if (m_page_2_progress_value < 100)
m_page_2_progress_value++;
m_page_2_progressbar->set_value(m_page_2_progress_value);
// Go to final page on progress completion
if (m_page_2_progress_value == 100) {
m_page_2_progress_value = 0;
replace_page(*m_back_page);
}
};
// Don't set a on_next_page handler for page 2 as we automatically navigate to the final page on progress completion
// Create the back cover