From edee91409339c4eabd57b485f2fe9eb96bf10562 Mon Sep 17 00:00:00 2001 From: lanmonster Date: Fri, 6 Oct 2023 15:10:15 -0700 Subject: [PATCH] Calendar: Update day range when the month changes Previously it was possible to create an event on Feb 31(!) --- .../Applications/Calendar/AddEventDialog.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Userland/Applications/Calendar/AddEventDialog.cpp b/Userland/Applications/Calendar/AddEventDialog.cpp index d97f5d1d6c..79b83d5398 100644 --- a/Userland/Applications/Calendar/AddEventDialog.cpp +++ b/Userland/Applications/Calendar/AddEventDialog.cpp @@ -67,16 +67,13 @@ AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_man done(ExecResult::OK); }; - auto update_starting_day_range = [&starting_day_combo, &starting_year_combo, &starting_month_combo]() { + auto update_starting_day_range = [=]() { auto year = starting_year_combo->value(); auto month = starting_month_combo->selected_index(); starting_day_combo->set_range(1, days_in_month(year, month + 1)); }; - starting_year_combo->on_change = [update_starting_day_range](auto) { update_starting_day_range(); }; - starting_month_combo->on_change = [update_starting_day_range](auto, auto) { update_starting_day_range(); }; - - auto update_combo_values = [&]() { + auto update_combo_values = [=, this]() { auto year = starting_year_combo->value(); auto month = starting_month_combo->selected_index() + 1; auto day = starting_day_combo->value(); @@ -85,8 +82,14 @@ AddEventDialog::AddEventDialog(Core::DateTime date_time, EventManager& event_man m_date_time = Core::DateTime::create(year, month, day, hour, minute); }; - starting_year_combo->on_change = [update_combo_values](auto) { update_combo_values(); }; - starting_month_combo->on_change = [update_combo_values](auto, auto) { update_combo_values(); }; + starting_year_combo->on_change = [update_combo_values, update_starting_day_range](auto) { + update_combo_values(); + update_starting_day_range(); + }; + starting_month_combo->on_change = [update_combo_values, update_starting_day_range](auto, auto) { + update_combo_values(); + update_starting_day_range(); + }; starting_day_combo->on_change = [update_combo_values](auto) { update_combo_values(); }; starting_hour_combo->on_change = [update_combo_values](auto) { update_combo_values(); }; starting_minute_combo->on_change = [update_combo_values](auto) { update_combo_values(); };