For now everything should look identical. However this moves to using a model for the content of the message and is intended to lay the foundation for improved message content representation, e.g. splitting up a text message in multiple sections and using different delegates for things like code and quotes.
56 lines
1.1 KiB
QML
56 lines
1.1 KiB
QML
// SPDX-FileCopyrightText: 2021 Tobias Fella <tobias.fella@kde.org>
|
|
// SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
|
|
import Qt.labs.qmlmodels
|
|
|
|
import org.kde.neochat
|
|
|
|
DelegateChooser {
|
|
id: root
|
|
|
|
/**
|
|
* @brief The NeoChatRoom the delegate is being displayed in.
|
|
*/
|
|
required property NeoChatRoom room
|
|
|
|
role: "delegateType"
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.State
|
|
delegate: StateDelegate {}
|
|
}
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.Message
|
|
delegate: MessageDelegate {
|
|
room: root.room
|
|
}
|
|
}
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.ReadMarker
|
|
delegate: ReadMarkerDelegate {}
|
|
}
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.Loading
|
|
delegate: LoadingDelegate {}
|
|
}
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.TimelineEnd
|
|
delegate: TimelineEndDelegate {
|
|
room: root.room
|
|
}
|
|
}
|
|
|
|
DelegateChoice {
|
|
roleValue: DelegateType.Other
|
|
delegate: Item {}
|
|
}
|
|
}
|