/* * Copyright (c) 2022, kleines Filmröllchen * * SPDX-License-Identifier: BSD-2-Clause */ #include "ExportProgressWindow.h" #include #include #include #include #include #include ExportProgressWindow::ExportProgressWindow(GUI::Window& parent_window, Atomic& wav_percent_written) : GUI::Dialog(&parent_window) , m_wav_percent_written(wav_percent_written) { } ErrorOr ExportProgressWindow::initialize() { auto main_widget = set_main_widget(); TRY(main_widget->load_from_gml(export_progress_widget)); set_resizable(false); set_closeable(false); set_title("Rendering Audio"); set_icon(GUI::Icon::default_icon("app-piano"sv).bitmap_for_size(16)); m_progress_bar = *main_widget->find_descendant_of_type_named("progress_bar"); m_label = *main_widget->find_descendant_of_type_named("export_message"); start_timer(250); return {}; } void ExportProgressWindow::set_filename(StringView filename) { m_label->set_text(String::formatted("Rendering audio to {}…", filename).release_value_but_fixme_should_propagate_errors()); update(); } void ExportProgressWindow::timer_event(Core::TimerEvent&) { m_progress_bar->set_value(m_wav_percent_written.load()); if (window_id() != 0) set_progress(m_wav_percent_written.load()); if (m_wav_percent_written.load() == 100) { m_wav_percent_written.store(0); close(); } }