linphone-desktop/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml

78 lines
2.1 KiB
QML

import Common 1.0
import Linphone 1.0
import Linphone.Styles 1.0
// =============================================================================
SearchBox {
id: searchBox
// ---------------------------------------------------------------------------
readonly property alias isOpen: searchBox._isOpen
// ---------------------------------------------------------------------------
signal addContact (string sipAddress)
signal launchChat (string sipAddress)
signal launchCall (string sipAddress)
signal launchVideoCall (string sipAddress)
signal entryClicked (var entry)
// ---------------------------------------------------------------------------
entryHeight: SipAddressesViewStyle.entry.height
// ---------------------------------------------------------------------------
onEnterPressed: {
var sipAddress = view.interpretableSipAddress
return sipAddress.length > 0 && SettingsModel.outgoingCallsEnabled && searchBox.launchCall(sipAddress)
}
// ---------------------------------------------------------------------------
SipAddressesView {
id: view
actions: [{
icon: 'video_call',
handler: function (entry) {
searchBox.closeMenu()
searchBox.launchVideoCall(entry.sipAddress)
},
visible: SettingsModel.videoSupported && SettingsModel.outgoingCallsEnabled
}, {
icon: 'call',
handler: function (entry) {
searchBox.closeMenu()
searchBox.launchCall(entry.sipAddress)
},
visible: SettingsModel.outgoingCallsEnabled
}, {
icon: SettingsModel.chatEnabled ? 'chat' : 'history',
handler: function (entry) {
searchBox.closeMenu()
searchBox.launchChat(entry.sipAddress)
}
}]
headerButtonDescription: qsTr('addContact')
headerButtonIcon: 'contact_add'
headerButtonAction: SettingsModel.contactsEnabled && (function (sipAddress) {
searchBox.closeMenu()
searchBox.addContact(sipAddress)
})
genSipAddress: searchBox.filter
model: SipAddressesProxyModel {}
onEntryClicked: {
searchBox.closeMenu()
searchBox.entryClicked(entry)
}
}
}