2023-09-13 09:12:47 +00:00
|
|
|
|
import QtQuick 2.15
|
|
|
|
|
import QtQuick.Controls 2.15
|
|
|
|
|
import QtQuick.Layouts 1.15
|
|
|
|
|
import shared.views.chat 1.0
|
|
|
|
|
|
|
|
|
|
SplitView {
|
2023-10-13 13:36:07 +00:00
|
|
|
|
|
|
|
|
|
ListModel {
|
|
|
|
|
id: mockedLinkPreviewModel
|
|
|
|
|
|
|
|
|
|
// Create the model dynamically, because `ListElement` doesnt suppport nested elements
|
|
|
|
|
Component.onCompleted: {
|
|
|
|
|
const emptyObject = {
|
|
|
|
|
"unfurled": true,
|
|
|
|
|
"immutable": false,
|
|
|
|
|
"empty": false,
|
|
|
|
|
"url": "https://www.youtube.com/watch?v=9bZkp7q19f0",
|
|
|
|
|
"previewType": 1,
|
|
|
|
|
"standardPreview": {
|
|
|
|
|
"hostname": "www.youtube.com",
|
|
|
|
|
"title": "PSY - GANGNAM STYLE(강남스타일) M/V",
|
|
|
|
|
"description": "PSY - ‘I LUV IT’ M/V @ https://youtu.be/Xvjnoagk6GU PSY - ‘New Face’ M/V @https://youtu.be/OwJPPaEyqhI PSY - 8TH ALBUM '4X2=8' on iTunes @ https://smarturl.it/PSY_8thAlbum PSY - GANGNAM STYLE(강남스타일) on iTunes @ http://smarturl.it/PsyGangnam #PSY #싸이 #GANGNAMSTYLE #강남스타일 More about PSY@ http://www.psyp...",
|
|
|
|
|
"linkType": 0,
|
|
|
|
|
},
|
|
|
|
|
"standardPreviewThumbnail": {
|
|
|
|
|
"width": 480,
|
|
|
|
|
"height": 360,
|
|
|
|
|
"url": "https://i.ytimg.com/vi/9bZkp7q19f0/hqdefault.jpg",
|
|
|
|
|
"dataUri": "https://i.ytimg.com/vi/9bZkp7q19f0/hqdefault.jpg",
|
|
|
|
|
},
|
|
|
|
|
"statusContactPreview": {},
|
|
|
|
|
"statusContactPreviewThumbnail": {},
|
|
|
|
|
"statusCommunityPreview": {},
|
|
|
|
|
"statusCommunityPreviewIcon": {},
|
|
|
|
|
"statusCommunityPreviewBanner": {},
|
|
|
|
|
"statusCommunityChannelPreview": {},
|
|
|
|
|
"statusCommunityChannelCommunityPreview": {},
|
|
|
|
|
"statusCommunityChannelCommunityPreviewIcon": {},
|
|
|
|
|
"statusCommunityChannelCommunityPreviewBanner": {},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const preview1 = Object.assign({}, emptyObject)
|
|
|
|
|
preview1.url = "https://www.youtube.com/watch?v=9bZkp7q19f0"
|
|
|
|
|
preview1.previewType = 1
|
|
|
|
|
preview1.standardPreview = {}
|
|
|
|
|
preview1.standardPreviewThumbnail = {}
|
|
|
|
|
preview1.standardPreview.hostname = "www.youtube.com"
|
|
|
|
|
preview1.standardPreview.title = "PSY - GANGNAM STYLE(강남스타일) M/V"
|
|
|
|
|
preview1.standardPreview.description = "PSY - ‘I LUV IT’ M/V @ https://youtu.be/Xvjnoagk6GU PSY - ‘New Face’ M/V @https://youtu.be/OwJPPaEyqhI PSY - 8TH ALBUM '4X2=8' on iTunes @ https://smarturl.it/PSY_8thAlbum PSY - GANGNAM STYLE(강남스타일) on iTunes @ http://smarturl.it/PsyGangnam #PSY #싸이 #GANGNAMSTYLE #강남스타일 More about PSY@ http://www.psyp..."
|
|
|
|
|
preview1.standardPreview.standardLinkType = 0
|
|
|
|
|
preview1.standardPreviewThumbnail.width = 480
|
|
|
|
|
preview1.standardPreviewThumbnail.height = 360
|
|
|
|
|
preview1.standardPreviewThumbnail.url = "https://i.ytimg.com/vi/9bZkp7q19f0/hqdefault.jpg"
|
|
|
|
|
preview1.standardPreviewThumbnail.dataUri = ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const preview2 = Object.assign({}, emptyObject)
|
|
|
|
|
preview2.url = "https://status.app/u/Ow==#zQ3shgmVJjmwwhkfAemjDizYJtv9nzot7QD4iRJ52ZkgdU6Ci"
|
|
|
|
|
preview2.previewType = 2
|
|
|
|
|
preview2.statusContactPreview = {}
|
|
|
|
|
preview2.statusContactPreview.publicKey = "zQ3shgmVJjmwwhkfAemjDizYJtv9nzot7QD4iRJ52ZkgdU6Ci"
|
|
|
|
|
preview2.statusContactPreview.displayName = "Test contact display name"
|
|
|
|
|
preview2.statusContactPreview.description = "Test description"
|
|
|
|
|
preview2.statusContactPreviewThumbnail = {}
|
|
|
|
|
preview2.statusContactPreviewThumbnail.width = 64
|
|
|
|
|
preview2.statusContactPreviewThumbnail.height = 64
|
|
|
|
|
preview2.statusContactPreviewThumbnail.url = "https://placehold.co/64x64"
|
|
|
|
|
preview2.statusContactPreviewThumbnail.dataUri = ""
|
|
|
|
|
|
|
|
|
|
const preview3 = Object.assign({}, emptyObject)
|
|
|
|
|
preview3.url = "https://status.app/c/ixiACjAKDlRlc3QgQ29tbXVuaXR5Eg9PcGVuIGZvciBhbnlvbmUYdiIHI0ZGMDAwMCoCHwkD#zQ3shnd55dNx9yTihuL6XMbmyM6UNjzU6jk77h5Js31jxcT5V"
|
|
|
|
|
preview3.previewType = 3
|
|
|
|
|
preview3.statusCommunityPreview = {}
|
|
|
|
|
preview3.statusCommunityPreview.communityId = "zQ3shnd55dNx9yTihuL6XMbmyM6UNjzU6jk77h5Js31jxcT5V"
|
|
|
|
|
preview3.statusCommunityPreview.displayName = "Test community display name"
|
|
|
|
|
preview3.statusCommunityPreview.description = "Test community description"
|
|
|
|
|
preview3.statusCommunityPreview.membersCount = 10
|
|
|
|
|
preview3.statusCommunityPreview.color = "#123456"
|
|
|
|
|
preview3.statusCommunityPreviewIcon = {}
|
|
|
|
|
preview3.statusCommunityPreviewIcon.width = 64
|
|
|
|
|
preview3.statusCommunityPreviewIcon.height = 64
|
|
|
|
|
preview3.statusCommunityPreviewIcon.url = "https://placehold.co/64x64"
|
|
|
|
|
preview3.statusCommunityPreviewIcon.dataUri = ""
|
|
|
|
|
preview3.statusCommunityPreviewBanner = {}
|
|
|
|
|
preview3.statusCommunityPreviewBanner.width = 320
|
|
|
|
|
preview3.statusCommunityPreviewBanner.height = 180
|
|
|
|
|
preview3.statusCommunityPreviewBanner.url = "https://placehold.co/320x180"
|
|
|
|
|
preview3.statusCommunityPreviewBanner.dataUri = ""
|
|
|
|
|
|
|
|
|
|
mockedLinkPreviewModel.append(preview1)
|
|
|
|
|
mockedLinkPreviewModel.append(preview2)
|
|
|
|
|
mockedLinkPreviewModel.append(preview3)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-13 09:12:47 +00:00
|
|
|
|
Pane {
|
|
|
|
|
id: messageViewWrapper
|
|
|
|
|
SplitView.fillWidth: true
|
|
|
|
|
SplitView.fillHeight: true
|
|
|
|
|
|
2023-10-13 13:36:07 +00:00
|
|
|
|
component LinkPreviewObject: QtObject {
|
|
|
|
|
required property string url
|
|
|
|
|
required property bool unfurled
|
|
|
|
|
required property bool empty
|
|
|
|
|
required property int previewType
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
component StandardPreviewObject: QtObject {
|
|
|
|
|
required property string hostname
|
|
|
|
|
required property string title
|
|
|
|
|
required property string description
|
|
|
|
|
required property int linkType // 0 = link, 1 = image
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
component ThumbnailObject: QtObject {
|
|
|
|
|
required property int width
|
|
|
|
|
required property int height
|
|
|
|
|
required property string url
|
|
|
|
|
required property string dataUri
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-13 09:12:47 +00:00
|
|
|
|
LinksMessageView {
|
|
|
|
|
id: linksMessageView
|
|
|
|
|
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
|
|
|
|
|
store: {}
|
|
|
|
|
messageStore: {}
|
2023-10-13 13:36:07 +00:00
|
|
|
|
linkPreviewModel: mockedLinkPreviewModel
|
2023-09-13 09:12:47 +00:00
|
|
|
|
localUnfurlLinks: {}
|
|
|
|
|
isCurrentUser: true
|
|
|
|
|
|
|
|
|
|
onImageClicked: {
|
|
|
|
|
console.log("image clicked")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Pane {
|
|
|
|
|
SplitView.minimumWidth: 300
|
|
|
|
|
SplitView.preferredWidth: 300
|
|
|
|
|
|
|
|
|
|
ColumnLayout {
|
|
|
|
|
spacing: 25
|
|
|
|
|
ColumnLayout {
|
|
|
|
|
Label {
|
|
|
|
|
text: qsTr("Sender")
|
|
|
|
|
}
|
|
|
|
|
CheckBox {
|
|
|
|
|
text: qsTr("Current user")
|
|
|
|
|
checked: linksMessageView.isCurrentUser
|
|
|
|
|
onToggled: linksMessageView.isCurrentUser = !linksMessageView.isCurrentUser
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-10-13 13:36:07 +00:00
|
|
|
|
}
|