1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:17:35 +00:00

Calendar: Move MonthListModel into Calendar.h

Previously, we had two versions of MonthListModel for the AddEventDialog
and the DatePickerDialog. Now, a unified version is in the Calendar.h
file, which can be used easily by anyone. Since that model and the
MeridiemListModel weren't used anymore in the AddEventDialog, I have
also removed them from there.
This commit is contained in:
david072 2023-11-17 21:10:13 +01:00 committed by Andrew Kaster
parent 5ed334e13a
commit 039114b728
5 changed files with 91 additions and 55 deletions

View file

@ -2,6 +2,7 @@
* Copyright (c) 2019-2020, Ryan Grieb <ryan.m.grieb@gmail.com>
* Copyright (c) 2020-2022, the SerenityOS developers.
* Copyright (c) 2022, Tobias Christiansen <tobyase@serenityos.org>
* Copyright (c) 2023, David Ganz <david.g.ganz@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -13,6 +14,7 @@
#include <LibCore/DateTime.h>
#include <LibGUI/AbstractScrollableWidget.h>
#include <LibGUI/Frame.h>
#include <LibGUI/Model.h>
#include <LibGUI/Widget.h>
namespace GUI {
@ -165,4 +167,33 @@ private:
int m_weekend_length { 2 };
};
class MonthListModel final : public GUI::Model {
public:
enum DisplayMode {
Short,
Long,
};
enum Column {
Month,
__Count,
};
static NonnullRefPtr<MonthListModel> create(DisplayMode mode = DisplayMode::Short) { return adopt_ref(*new MonthListModel(mode)); }
virtual ~MonthListModel() override = default;
virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return 12; }
virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return Column::__Count; }
virtual ErrorOr<String> column_name(int) const override;
virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
private:
MonthListModel(DisplayMode mode)
: m_mode(mode)
{
}
DisplayMode m_mode;
};
}