Skip to content
Snippets Groups Projects
Commit 8483401e authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Simplify message/event delegates

parent 28bcd83d
No related branches found
No related tags found
No related merge requests found
......@@ -82,34 +82,44 @@ Page {
delegate: ListItem {
id: messageItem
contentHeight: loader.item.height
contentHeight: loader.item.height + ts.height
property int yoff: Math.round(messageItem.y - chatView.contentY - 1)
property bool isFullyVisible: yoff + messageItem.height < chatView.height
property int index: model.index
Loader {
id: loader
source: switch(model.Type) {
case EventType.Aliases: return "delegates/Aliases.qml"
case EventType.Avatar: return "delegates/Avatar.qml"
case EventType.CanonicalAlias: return "delegates/CanonicalAlias.qml"
case EventType.Create: return "delegates/Create.qml"
case EventType.GuestAccess: return "delegates/GuestAccess.qml"
case EventType.HistoryVisibility: return "delegates/HistoryVisibility.qml"
case EventType.JoinRules: return "delegates/JoinRules.qml"
case EventType.Member: return "delegates/Member.qml"
case EventType.Name: return "delegates/Name.qml"
case EventType.PowerLevels: return "delegates/PowerLevels.qml"
case EventType.Topic: return "delegates/Topic.qml"
case EventType.NoticeMessage: return "delegates/NoticeMessage.qml"
case EventType.TextMessage: return "delegates/TextMessage.qml"
case EventType.ImageMessage: return "delegates/ImageMessage.qml"
case EventType.VideoMessage: return "delegates/VideoMessage.qml"
default: return "delegates/placeholder.qml"
Loader {
id: loader
height: item.height
source: switch(model.Type) {
case EventType.Aliases: return "delegates/Aliases.qml"
case EventType.Avatar: return "delegates/Avatar.qml"
case EventType.CanonicalAlias: return "delegates/CanonicalAlias.qml"
case EventType.Create: return "delegates/Create.qml"
case EventType.GuestAccess: return "delegates/GuestAccess.qml"
case EventType.HistoryVisibility: return "delegates/HistoryVisibility.qml"
case EventType.JoinRules: return "delegates/JoinRules.qml"
case EventType.Member: return "delegates/Member.qml"
case EventType.Name: return "delegates/Name.qml"
case EventType.PowerLevels: return "delegates/PowerLevels.qml"
case EventType.Topic: return "delegates/Topic.qml"
case EventType.NoticeMessage: return "delegates/NoticeMessage.qml"
case EventType.TextMessage: return "delegates/TextMessage.qml"
case EventType.ImageMessage: return "delegates/ImageMessage.qml"
case EventType.VideoMessage: return "delegates/VideoMessage.qml"
default: return "delegates/placeholder.qml"
}
property variant modelData: model
}
Text {
id: ts
anchors.top: loader.bottom
anchors.right: parent.right
text: model.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
property variant modelData: model
}
}
section.property: "UserId"
......
......@@ -30,13 +30,5 @@ Rectangle {
width: chatView.width
font.pixelSize: Theme.fontSizeTiny
}
Text {
id: ts
anchors.right: col.right
text: modelData.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
}
}
......@@ -2,24 +2,13 @@ import QtQuick 2.0
import Sailfish.Silica 1.0
Item {
height: col.height
Column {
id: col
Text {
id: textItem
text: qsTr("Changed room name to: ") + modelData.Body
color: Theme.secondaryColor
wrapMode: Text.Wrap
width: chatView.width
}
Text {
anchors.right: col.right
text: modelData.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
height: textItem.contentHeight
Text {
id: textItem
text: qsTr("Changed room name to: ") + modelData.Body
color: Theme.secondaryColor
wrapMode: Text.Wrap
width: chatView.width
}
}
import QtQuick 2.0
import Sailfish.Silica 1.0
Rectangle {
height: col.height
Column {
id: col
Text {
id: messageText
text: modelData.FormattedBody
color: Theme.secondaryColor
wrapMode: Text.Wrap
width: chatView.width
}
Text {
anchors.right: col.right
text: modelData.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
Item {
height: messageText.contentHeight
Text {
id: messageText
text: modelData.FormattedBody
color: Theme.secondaryColor
wrapMode: Text.Wrap
width: chatView.width
}
}
......@@ -2,24 +2,14 @@ import QtQuick 2.0
import Sailfish.Silica 1.0
Rectangle {
height: col.height
Column {
id: col
Text {
id: messageText
text: modelData.FormattedBody
color: Theme.primaryColor
linkColor: Theme.highlightColor
wrapMode: Text.Wrap
width: chatView.width
}
Text {
anchors.right: col.right
text: modelData.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
height: messageText.contentHeight
Text {
id: messageText
text: modelData.FormattedBody
textFormat: Text.RichText
color: Theme.primaryColor
linkColor: Theme.highlightColor
wrapMode: Text.Wrap
width: chatView.width
}
}
......@@ -128,13 +128,5 @@ Rectangle {
width: chatView.width
font.pixelSize: Theme.fontSizeTiny
}
Text {
id: ts
anchors.right: col.right
text: modelData.Timestamp.toLocaleTimeString()
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeTiny
horizontalAlignment: Text.AlignRight
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment