summaryrefslogtreecommitdiff
path: root/Userland/Applications/Mail/InboxModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Applications/Mail/InboxModel.cpp')
-rw-r--r--Userland/Applications/Mail/InboxModel.cpp50
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();
+}