diff --git a/Userland/Libraries/LibGUI/Calendar.cpp b/Userland/Libraries/LibGUI/Calendar.cpp index 696aba447e7..7c5a8d1fd97 100644 --- a/Userland/Libraries/LibGUI/Calendar.cpp +++ b/Userland/Libraries/LibGUI/Calendar.cpp @@ -64,6 +64,10 @@ Calendar::Calendar(Core::DateTime date_time, Mode mode) } update_tiles(m_selected_date.year(), m_selected_date.month()); + + REGISTER_ENUM_PROPERTY("mode", this->mode, this->set_mode, Calendar::Mode, + { Calendar::Mode::Month, "Month" }, + { Calendar::Mode::Year, "Year" }); } void Calendar::set_grid(bool show) @@ -85,6 +89,13 @@ void Calendar::toggle_mode() invalidate_layout(); } +void Calendar::set_mode(Mode mode) +{ + if (mode != m_mode) { + toggle_mode(); + } +} + void Calendar::show_previous_date() { unsigned view_month = m_view_month; diff --git a/Userland/Libraries/LibGUI/Calendar.h b/Userland/Libraries/LibGUI/Calendar.h index c98bae6985f..17675abd146 100644 --- a/Userland/Libraries/LibGUI/Calendar.h +++ b/Userland/Libraries/LibGUI/Calendar.h @@ -66,6 +66,7 @@ public: ErrorOr formatted_date(Format format = LongMonthYear); Mode mode() const { return m_mode; } + void set_mode(Mode); void toggle_mode(); void update_tiles(unsigned year, unsigned month); diff --git a/Userland/Libraries/LibGUI/DatePickerDialog.gml b/Userland/Libraries/LibGUI/DatePickerDialog.gml index 100aad5ede8..681266efb37 100644 --- a/Userland/Libraries/LibGUI/DatePickerDialog.gml +++ b/Userland/Libraries/LibGUI/DatePickerDialog.gml @@ -30,6 +30,7 @@ @GUI::Calendar { name: "calendar_view" + mode: "Month" } }