Depends on https://github.com/quotient-im/libQuotient/pull/695 Currently basic just to show a working implementation using RoomMember. Currently only the room event and search models are moved over. Will change everything else over once the dependent pr is complete.
86 lines
2.6 KiB
QML
86 lines
2.6 KiB
QML
// SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
|
|
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import QtQuick
|
|
import QtQuick.Controls as QQC2
|
|
import QtQuick.Layouts
|
|
import org.kde.kirigami as Kirigami
|
|
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
|
|
|
|
import org.kde.neochat
|
|
|
|
ColumnLayout {
|
|
id: root
|
|
|
|
/**
|
|
* @brief The current room that user is viewing.
|
|
*/
|
|
required property NeoChatRoom room
|
|
|
|
Layout.fillWidth: true
|
|
Layout.alignment: Qt.AlignVCenter
|
|
spacing: 0
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: Kirigami.Units.largeSpacing * 2
|
|
}
|
|
|
|
QQC2.AbstractButton {
|
|
Layout.preferredWidth: Math.round(Kirigami.Units.gridUnit * 3.5)
|
|
Layout.preferredHeight: Math.round(Kirigami.Units.gridUnit * 3.5)
|
|
Layout.alignment: Qt.AlignHCenter
|
|
|
|
onClicked: {
|
|
RoomManager.resolveResource(root.room.directChatRemoteMember.uri)
|
|
}
|
|
|
|
contentItem: KirigamiComponents.Avatar {
|
|
name: root.room ? root.room.displayName : ""
|
|
source: root.room ? root.room.connection.makeMediaUrl("mxc://" + root.room.avatarMediaId) : ""
|
|
|
|
Rectangle {
|
|
visible: root.room.usesEncryption
|
|
color: Kirigami.Theme.backgroundColor
|
|
|
|
width: Kirigami.Units.gridUnit
|
|
height: Kirigami.Units.gridUnit
|
|
anchors.bottom: parent.bottom
|
|
anchors.right: parent.right
|
|
|
|
radius: Math.round(width / 2)
|
|
|
|
Kirigami.Icon {
|
|
source: "channel-secure-symbolic"
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Layout.alignment: Qt.AlignHCenter
|
|
Kirigami.Icon {
|
|
id: securityIcon
|
|
//TODO figure out how to make this update
|
|
source: room.connection.isUserVerified(root.room.directChatRemoteMember.id) ?
|
|
(room.connection.allSessionsSelfVerified(root.room.directChatRemoteMember.id) ? "security-high" : "security-medium")
|
|
: "security-low"
|
|
|
|
}
|
|
Kirigami.Heading {
|
|
type: Kirigami.Heading.Type.Primary
|
|
wrapMode: QQC2.Label.Wrap
|
|
text: root.room.displayName
|
|
textFormat: Text.PlainText
|
|
horizontalAlignment: Text.AlignHCenter
|
|
}
|
|
Item {
|
|
Layout.preferredWidth: visible ? securityIcon.width : 0
|
|
visible: securityIcon.visible
|
|
}
|
|
}
|
|
}
|