/* * SPDX-FileCopyrightText: 2025 Felix Morgner * SPDX-License-Identifier: LGPL-2.1-only */ #include "messages.hpp" #include "tracker.hpp" #include #include #include #include #include #include #include namespace Turns::gui { auto Tracker::on_load_content_done(Glib::RefPtr result) -> void { static_cast(result); // set_sensitive(); // char * data{}; // auto size = std::size_t{}; // try // { // if (!m_file->load_contents_finish(result, data, size, m_file_etag)) // { // m_file.reset(); // m_file_etag.clear(); // return; // } // m_turn_order->load(nlohmann::json::parse(std::string_view{data, size})); // } // catch (std::exception const & e) // { // return show_error(e); // } // auto name = m_file->get_basename(); // show_toast(std::vformat(_(lang::successfully_opened_format), std::make_format_args(name))); // set_title(std::format("{} - {}", _(lang::turns), name)); } auto Tracker::on_replace_content_done(Glib::RefPtr result) -> void { set_sensitive(); try { m_file->replace_contents_finish(result, m_file_etag); } catch (Gio::Error const & e) { return show_error(e); } auto name = m_file->get_basename(); show_toast(std::vformat(_(message::successfully_saved_format), std::make_format_args(name))); set_title(std::format("{} - {}", _(message::turns), name)); } auto Tracker::on_open_response(Glib::RefPtr result, Glib::RefPtr dialog) -> void { try { m_file = dialog->open_finish(result); } catch (std::exception const & e) { return show_error(e); } m_file->load_contents_async(sigc::mem_fun(*this, &Tracker::on_load_content_done)); set_sensitive(false); } auto Tracker::on_save_response(Glib::RefPtr result, Glib::RefPtr dialog) -> void { try { m_file = dialog->save_finish(result); } catch (std::exception const & e) { show_error(e); } start_replace_content(); set_sensitive(false); } auto Tracker::on_settings_changed(Glib::ustring) -> void { update_colors(); } } // namespace turns::ui