2026-05-17 02:28:15 +02:00
import QtQuick 2.15
import QtQuick . Controls 2.15
import QtQuick . Layouts 1.15
import QtWebEngine 1.15
Item {
id: readerPage
anchors.fill: parent
// Property to hold the email ID to display
property int emailId: - 1
// Called when the page is activated
Component.onCompleted: {
if ( emailId !== - 1 ) {
loadEmail ( emailId )
}
}
2026-05-17 03:08:16 +02:00
// Function to load email by ID (placeholder implementation)
2026-05-17 02:28:15 +02:00
function loadEmail ( id ) {
emailId = id
2026-05-17 03:08:16 +02:00
// Placeholder: show a fixed email. In the future, we will fetch the actual email from the database
// and convert the .eml file to HTML.
webView . html = "<html><body style='font-family: sans-serif;'>" +
"<h2>Test Email Subject</h2>" +
"<p><strong>From:</strong> sender@example.com</p>" +
"<p><strong>To:</strong> recipient@example.com</p>" +
"<p><strong>Date:</strong> May 17, 2026</p>" +
"<hr/>" +
"<p>This is a placeholder for the email body. In a real implementation, we would load the email content from the .eml file and convert it to HTML.</p>" +
"</body></html>" ;
2026-05-17 02:28:15 +02:00
}
// Back button
Rectangle {
anchors {
top: parent . top
left: parent . left
margins: 10
}
width: 40
height: 40
color: "#e0e0e0"
radius: 5
MouseArea {
anchors.fill: parent
onClicked: {
StackView . view . pop ( )
}
}
Text {
text: "←"
anchors.centerIn: parent
font.pointSize: 20
color: "#333"
}
}
// Main content: WebEngineView to display email
WebEngineView {
id: webView
anchors {
top: backButton . bottom
bottom: parent . bottom
left: parent . left
right: parent . right
margins: 0
}
// Settings to enable local content loading
settings.javascriptEnabled: true
settings.localContentCanAccessRemoteUrls: true
settings.localContentCanAccessFileUrls: true
}
}