mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:28:12 +00:00
Calendar: Add end date/time to events
This commit is contained in:
parent
4984faa108
commit
a7c3d39bab
2 changed files with 18 additions and 2 deletions
|
@ -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<GUI::Widget>();
|
||||
|
@ -97,12 +101,23 @@ AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_man
|
|||
|
||||
ErrorOr<void> AddEventDialog::add_event_to_calendar()
|
||||
{
|
||||
auto to_date_string = [](Core::DateTime date_time) -> ErrorOr<String> {
|
||||
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<String> {
|
||||
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<GUI::TextBox>("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);
|
||||
|
|
|
@ -70,6 +70,7 @@ private:
|
|||
};
|
||||
|
||||
Core::DateTime m_start_date_time;
|
||||
Core::DateTime m_end_date_time;
|
||||
EventManager& m_event_manager;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue