mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-20 13:18:06 +00:00
111 lines
3.8 KiB
QML
111 lines
3.8 KiB
QML
import QtQuick 2.7
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import Common 1.0
|
|
import Linphone 1.0
|
|
import Linphone.Styles 1.0
|
|
import UtilsCpp 1.0
|
|
import Units 1.0
|
|
|
|
import 'qrc:/ui/scripts/Utils/utils.js' as Utils
|
|
|
|
// =============================================================================
|
|
|
|
Notification {
|
|
id: notification
|
|
|
|
icon: 'message_sign'
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
readonly property TimelineModel timelineModel: notificationData && notificationData.timelineModel
|
|
readonly property string peerAddress: notificationData && notificationData.peerAddress || ''
|
|
readonly property string localAddress: notificationData && notificationData.localAddress || ''
|
|
readonly property string fullPeerAddress: notificationData && notificationData.fullPeerAddress || ''
|
|
readonly property string fullLocalAddress: notificationData && notificationData.fullLocalAddress || ''
|
|
readonly property string messageId: notificationData && notificationData.messageId || ''
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
Loader {
|
|
active: timelineModel//Boolean(notification.peerAddress) && Boolean(notification.localAddress)
|
|
anchors {
|
|
fill: parent
|
|
|
|
leftMargin: NotificationReceivedMessageStyle.leftMargin
|
|
rightMargin: NotificationReceivedMessageStyle.rightMargin
|
|
bottomMargin: NotificationReceivedMessageStyle.bottomMargin
|
|
}
|
|
|
|
sourceComponent: ColumnLayout {
|
|
spacing: NotificationReceivedMessageStyle.spacing
|
|
|
|
Contact {
|
|
Layout.fillWidth: true
|
|
property ChatRoomModel chatRoomModel : notification.timelineModel.getChatRoomModel()
|
|
property var sipObserver: SipAddressesModel.getSipAddressObserver(notification.fullPeerAddress, notification.fullLocalAddress)
|
|
subtitle: chatRoomModel.isOneToOne
|
|
? UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(notification.fullPeerAddress), SettingsModel.sipDisplayMode)
|
|
: UtilsCpp.getDisplayName(notification.fullPeerAddress)
|
|
entry: chatRoomModel ? chatRoomModel : sipObserver
|
|
Component.onDestruction: sipObserver=null// Need to set it to null because of not calling destructor if not.
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
|
|
color: NotificationReceivedMessageStyle.messageContainer.colorModel.color
|
|
radius: NotificationReceivedMessageStyle.messageContainer.radius
|
|
|
|
TextEdit {
|
|
id: messageText
|
|
property font customFont : SettingsModel.textMessageFont
|
|
property string fullText: notification.notificationData.message
|
|
anchors {
|
|
fill: parent
|
|
margins: NotificationReceivedMessageStyle.messageContainer.margins
|
|
}
|
|
|
|
color: NotificationReceivedMessageStyle.messageContainer.text.colorModel.color
|
|
|
|
|
|
font {
|
|
italic: true
|
|
family: customFont.family
|
|
pointSize: Units.dp * (customFont.pointSize - 1)
|
|
}
|
|
|
|
verticalAlignment: Text.AlignVCenter
|
|
text: UtilsCpp.encodeTextToQmlRichFormat(metrics.elidedText)
|
|
textFormat: Text.RichText
|
|
wrapMode: Text.Wrap
|
|
|
|
TextMetrics {
|
|
id: metrics
|
|
font: messageText.font
|
|
text: messageText.fullText
|
|
elideWidth: messageText.width
|
|
elide: Qt.ElideRight
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
|
|
onClicked: notification._close(function () {
|
|
AccountSettingsModel.setDefaultAccountFromSipAddress(notification.localAddress)
|
|
App.smartShowWindow(notification.notificationData.window)
|
|
notification.notificationData.window.setView('Conversations')
|
|
var chatroom = notification.timelineModel.getChatRoomModel()
|
|
console.debug("Load conversation from notification: "+chatroom)
|
|
if(!notification.timelineModel.selected)// Check to avoid reloading
|
|
notification.timelineModel.selected = true
|
|
if(chatroom && notification.messageId)
|
|
chatroom.displayMessageIdRequested(notification.messageId)
|
|
})
|
|
}
|
|
}
|