From a7c3d39babb5fcdc4bd32c5fed2acf5ccda5fed5 Mon Sep 17 00:00:00 2001 From: lanmonster Date: Fri, 6 Oct 2023 15:45:18 -0700 Subject: [PATCH] Calendar: Add end date/time to events --- .../Applications/Calendar/AddEventDialog.cpp | 19 +++++++++++++++++-- .../Applications/Calendar/AddEventDialog.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Userland/Applications/Calendar/AddEventDialog.cpp b/Userland/Applications/Calendar/AddEventDialog.cpp index c42b909245..487b600bd2 100644 --- a/Userland/Applications/Calendar/AddEventDialog.cpp +++ b/Userland/Applications/Calendar/AddEventDialog.cpp @@ -25,6 +25,7 @@ namespace Calendar { AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_manager, Window* parent_window) : Dialog(parent_window) , m_start_date_time(date_time) + , m_end_date_time(Core::DateTime::from_timestamp(date_time.timestamp() + (15 * 60))) , m_event_manager(event_manager) { resize(158, 130); @@ -32,6 +33,9 @@ AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_man set_resizable(false); set_icon(parent_window->icon()); + dbgln("start time: {}", m_start_date_time.to_string().release_value_but_fixme_should_propagate_errors()); + dbgln("end time: {}", m_end_date_time.to_string().release_value_but_fixme_should_propagate_errors()); + m_start_date_time = Core::DateTime::create(m_start_date_time.year(), m_start_date_time.month(), m_start_date_time.day(), 12, 0); auto widget = set_main_widget(); @@ -97,12 +101,23 @@ AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_man ErrorOr AddEventDialog::add_event_to_calendar() { + auto to_date_string = [](Core::DateTime date_time) -> ErrorOr { + return String::formatted("{}-{:0>2d}-{:0>2d}", date_time.year(), date_time.month(), date_time.day()); + }; + auto to_time_string = [](Core::DateTime date_time) -> ErrorOr { + return String::formatted("{}:{:0>2d}", date_time.hour(), date_time.minute()); + }; + JsonObject event; - auto start_date = TRY(String::formatted("{}-{:0>2d}-{:0>2d}", m_start_date_time.year(), m_start_date_time.month(), m_start_date_time.day())); - auto start_time = TRY(String::formatted("{}:{:0>2d}", m_start_date_time.hour(), m_start_date_time.minute())); + auto start_date = TRY(to_date_string(m_start_date_time)); + auto start_time = TRY(to_time_string(m_start_date_time)); + auto end_date = TRY(to_date_string(m_end_date_time)); + auto end_time = TRY(to_time_string(m_end_date_time)); auto summary = find_descendant_of_type_named("event_title_textbox")->get_text(); event.set("start_date", JsonValue(start_date)); event.set("start_time", JsonValue(start_time)); + event.set("end_date", JsonValue(end_date)); + event.set("end_time", JsonValue(end_time)); event.set("summary", JsonValue(summary)); TRY(m_event_manager.add_event(event)); m_event_manager.set_dirty(true); diff --git a/Userland/Applications/Calendar/AddEventDialog.h b/Userland/Applications/Calendar/AddEventDialog.h index f56cae8bed..3af042f865 100644 --- a/Userland/Applications/Calendar/AddEventDialog.h +++ b/Userland/Applications/Calendar/AddEventDialog.h @@ -70,6 +70,7 @@ private: }; Core::DateTime m_start_date_time; + Core::DateTime m_end_date_time; EventManager& m_event_manager; };