Warning, /plasma-mobile/raven/src/contents/ui/FolderView.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org> 0002 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org> 0003 // SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0004 0005 import QtQuick 2.15 0006 import QtQuick.Layouts 1.15 0007 import QtQuick.Controls 2.15 as QQC2 0008 0009 import org.kde.raven 1.0 0010 import org.kde.kirigami 2.19 as Kirigami 0011 import org.kde.kitemmodels 1.0 as KItemModels 0012 0013 Kirigami.ScrollablePage { 0014 id: folderView 0015 title: MailManager.selectedFolderName 0016 0017 Component { 0018 id: contextMenu 0019 QQC2.Menu { 0020 property int row 0021 property var status 0022 0023 QQC2.Menu { 0024 title: i18nc("@action:menu", "Mark Message") 0025 QQC2.MenuItem { 0026 text: i18n("Mark Message as Read") 0027 } 0028 QQC2.MenuItem { 0029 text: i18n("Mark Message as Unread") 0030 } 0031 0032 QQC2.MenuSeparator {} 0033 0034 QQC2.MenuItem { 0035 text: status.isImportant ? i18n("Don't Mark as Important") : i18n("Mark as Important") 0036 } 0037 } 0038 0039 QQC2.MenuItem { 0040 icon.name: 'delete' 0041 text: i18n("Move to trash") 0042 } 0043 0044 QQC2.MenuItem { 0045 icon.name: 'edit-move' 0046 text: i18n("Move Message to...") 0047 } 0048 0049 QQC2.MenuItem { 0050 icon.name: 'edit-copy' 0051 text: i18n("Copy Message to...") 0052 } 0053 0054 QQC2.MenuItem { 0055 icon.name: 'edit-copy' 0056 text: i18n("Add Followup Reminder") 0057 } 0058 } 0059 } 0060 0061 ListView { 0062 id: mails 0063 model: MailManager.folderModel 0064 currentIndex: -1 0065 0066 Connections { 0067 target: MailManager 0068 0069 function onFolderModelChanged() { 0070 mails.currentIndex = -1; 0071 } 0072 } 0073 0074 Kirigami.PlaceholderMessage { 0075 id: mailboxSelected 0076 anchors.centerIn: parent 0077 visible: MailManager.selectedFolderName === "" 0078 text: i18n("No mailbox selected") 0079 explanation: i18n("Select a mailbox from the sidebar.") 0080 icon.name: "mail-unread" 0081 } 0082 0083 Kirigami.PlaceholderMessage { 0084 anchors.centerIn: parent 0085 visible: mails.count === 0 && !mailboxSelected.visible 0086 text: i18n("Mailbox is empty") 0087 icon.name: "mail-folder-inbox" 0088 } 0089 0090 delegate: MailDelegate { 0091 showSeparator: model.index !== folderView.count - 1 0092 0093 datetime: model.datetime.toLocaleTimeString(Qt.locale(), Locale.ShortFormat) // TODO this is not showing date ! 0094 author: model.from 0095 title: model.title 0096 contentPreview: "This is a test of the message content........." // model.content 0097 0098 isRead: !model.status || model.status.isRead 0099 0100 onOpenMailRequested: { 0101 applicationWindow().pageStack.push(Qt.resolvedUrl('ConversationViewer.qml'), { 0102 item: model.item, 0103 props: model, 0104 }); 0105 0106 if (!model.status.isRead) { 0107 const status = MailManager.folderModel.copyMessageStatus(model.status); 0108 status.isRead = true; 0109 MailManager.folderModel.updateMessageStatus(index, status) 0110 } 0111 } 0112 0113 onStarMailRequested: { 0114 const status = MailManager.folderModel.copyMessageStatus(model.status); 0115 status.isImportant = !status.isImportant; 0116 MailManager.folderModel.updateMessageStatus(index, status) 0117 } 0118 0119 onContextMenuRequested: { 0120 const menu = contextMenu.createObject(folderView, { 0121 row: index, 0122 status: MailManager.folderModel.copyMessageStatus(model.status), 0123 }); 0124 menu.popup(); 0125 } 0126 } 0127 } 0128 } 0129