diff options
Diffstat (limited to 'Userland/Applications/Mail/InboxModel.cpp')
-rw-r--r-- | Userland/Applications/Mail/InboxModel.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Userland/Applications/Mail/InboxModel.cpp b/Userland/Applications/Mail/InboxModel.cpp new file mode 100644 index 0000000000..bfac9a94e3 --- /dev/null +++ b/Userland/Applications/Mail/InboxModel.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2021, Luke Wilde <lukew@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "InboxModel.h" + +InboxModel::InboxModel(Vector<InboxEntry> entries) + : m_entries(move(entries)) +{ +} + +InboxModel::~InboxModel() +{ +} + +int InboxModel::row_count(GUI::ModelIndex const&) const +{ + return m_entries.size(); +} + +String InboxModel::column_name(int column_index) const +{ + switch (column_index) { + case Column::From: + return "From"; + case Subject: + return "Subject"; + default: + VERIFY_NOT_REACHED(); + } +} + +GUI::Variant InboxModel::data(GUI::ModelIndex const& index, GUI::ModelRole role) const +{ + auto& value = m_entries[index.row()]; + if (role == GUI::ModelRole::Display) { + if (index.column() == Column::From) + return value.from; + if (index.column() == Column::Subject) + return value.subject; + } + return {}; +} + +void InboxModel::update() +{ + did_update(); +} |