linphone-desktop/linphone-app/ui/views/App/Main/HistoryView.qml
Julien Wadel 384bd0675a Add OpenLDAP supports
- set defaults for LDAP
- add unsaving a server
- adapt design for LDAP (placement, debug and verifications options)

- Add hidden options in linphonerc to hide local sip account, start video call button and start chat button
2021-04-28 20:06:20 +02:00

150 lines
4.1 KiB
QML

import QtQuick 2.7
import QtQuick.Layouts 1.3
import Common 1.0
import Linphone 1.0
import App.Styles 1.0
import 'HistoryView.js' as Logic
// =============================================================================
ColumnLayout {
id: historyView
property string peerAddress
property string fullPeerAddress
readonly property var _sipAddressObserver: peerAddress?SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), ''):null
// ---------------------------------------------------------------------------
spacing: 0
// ---------------------------------------------------------------------------
// Contact bar.
// ---------------------------------------------------------------------------
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: peerAddress?HistoryViewStyle.bar.height:HistoryViewStyle.bar.height/2
color: HistoryViewStyle.bar.backgroundColor
RowLayout {
anchors {
fill: parent
leftMargin: HistoryViewStyle.bar.leftMargin
rightMargin: HistoryViewStyle.bar.rightMargin
}
spacing: HistoryViewStyle.bar.spacing
layoutDirection: peerAddress?Qt.LeftToRight :Qt.RightToLeft
Avatar {
id: avatar
Layout.preferredHeight: HistoryViewStyle.bar.avatarSize
Layout.preferredWidth: HistoryViewStyle.bar.avatarSize
image: peerAddress?Logic.getAvatar():null
presenceLevel: historyView._sipAddressObserver?Presence.getPresenceLevel(
historyView._sipAddressObserver.presenceStatus
):null
username: peerAddress?Logic.getUsername():null
visible:peerAddress
}
ContactDescription {
Layout.fillHeight: true
Layout.fillWidth: true
sipAddress: historyView.peerAddress
sipAddressColor: HistoryViewStyle.bar.description.sipAddressColor
username: avatar.username
usernameColor: HistoryViewStyle.bar.description.usernameColor
visible:peerAddress
}
Row {
Layout.fillHeight: true
spacing: HistoryViewStyle.bar.actions.spacing
ActionBar {
anchors.verticalCenter: parent.verticalCenter
iconSize: HistoryViewStyle.bar.actions.call.iconSize
ActionButton {
icon: 'video_call'
visible: peerAddress && SettingsModel.videoSupported && SettingsModel.outgoingCallsEnabled && SettingsModel.showStartVideoCallButton
onClicked: CallsListModel.launchVideoCall(historyView.peerAddress)
}
ActionButton {
icon: 'call'
visible: peerAddress && SettingsModel.outgoingCallsEnabled
onClicked: CallsListModel.launchAudioCall(historyView.peerAddress)
}
}
ActionBar {
anchors.verticalCenter: parent.verticalCenter
ActionButton {
icon: Logic.getEditIcon()
iconSize: HistoryViewStyle.bar.actions.edit.iconSize
visible: peerAddress && SettingsModel.contactsEnabled
onClicked: window.setView('ContactEdit', { sipAddress: historyView.peerAddress })
TooltipArea {
text: peerAddress?Logic.getEditTooltipText():''
}
}
ActionButton {
icon: 'delete'
iconSize: HistoryViewStyle.bar.actions.edit.iconSize
onClicked: Logic.removeAllEntries()
TooltipArea {
text: qsTr('cleanHistory')
}
}
}
}
}
}
// ---------------------------------------------------------------------------
// History.
// ---------------------------------------------------------------------------
History {
Layout.fillHeight: true
Layout.fillWidth: true
onEntryClicked:{
historyView.fullPeerAddress=sipAddress
historyView.peerAddress=sipAddress
historyProxyModel.resetMessageCount()
}
proxyModel: HistoryProxyModel {
id: historyProxyModel
Component.onCompleted: {
setEntryTypeFilter()
resetMessageCount()
}
}
}
}