diff --git a/tests/assets/images/lost_incoming_call.svg b/tests/assets/images/declined_incoming_call.svg similarity index 100% rename from tests/assets/images/lost_incoming_call.svg rename to tests/assets/images/declined_incoming_call.svg diff --git a/tests/assets/images/lost_outgoing_call.svg b/tests/assets/images/declined_outgoing_call.svg similarity index 100% rename from tests/assets/images/lost_outgoing_call.svg rename to tests/assets/images/declined_outgoing_call.svg diff --git a/tests/assets/images/missed_incoming_call.svg b/tests/assets/images/missed_incoming_call.svg new file mode 100644 index 000000000..ee5fd365a --- /dev/null +++ b/tests/assets/images/missed_incoming_call.svg @@ -0,0 +1,13 @@ + + + + call_lost + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/tests/assets/images/missed_outgoing_call.svg b/tests/assets/images/missed_outgoing_call.svg new file mode 100644 index 000000000..ee5fd365a --- /dev/null +++ b/tests/assets/images/missed_outgoing_call.svg @@ -0,0 +1,13 @@ + + + + call_lost + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/tests/assets/languages/en.ts b/tests/assets/languages/en.ts index e9e137d57..cddf5a3e4 100644 --- a/tests/assets/languages/en.ts +++ b/tests/assets/languages/en.ts @@ -191,11 +191,27 @@ Lost outgoing call - endCall + outgoingCall - outgoingCall + declinedIncomingCall + + + + declinedOutgoingCall + + + + endedCall + + + + missedIncomingCall + + + + missedOutgoingCall diff --git a/tests/assets/languages/fr.ts b/tests/assets/languages/fr.ts index dbd28d575..c14ddf558 100644 --- a/tests/assets/languages/fr.ts +++ b/tests/assets/languages/fr.ts @@ -191,11 +191,27 @@ Appel sortant manqué - endCall + outgoingCall - outgoingCall + declinedIncomingCall + + + + declinedOutgoingCall + + + + endedCall + + + + missedIncomingCall + + + + missedOutgoingCall diff --git a/tests/resources.qrc b/tests/resources.qrc index 7937a92e6..e190e2408 100644 --- a/tests/resources.qrc +++ b/tests/resources.qrc @@ -22,6 +22,8 @@ assets/images/contact_edit_pressed.svg assets/images/contact_normal.svg assets/images/contact_selected.svg + assets/images/declined_incoming_call.svg + assets/images/declined_outgoing_call.svg assets/images/delete_hovered.svg assets/images/delete_normal.svg assets/images/delete_pressed.svg @@ -36,8 +38,8 @@ assets/images/led_red.svg assets/images/led_white.svg assets/images/linphone.png - assets/images/lost_incoming_call.svg - assets/images/lost_outgoing_call.svg + assets/images/missed_incoming_call.svg + assets/images/missed_outgoing_call.svg assets/images/outgoing_call.svg assets/images/search.svg assets/images/tooltip_arrow_bottom.svg diff --git a/tests/src/components/chat/ChatModel.cpp b/tests/src/components/chat/ChatModel.cpp index 0671e7457..ec48223c4 100644 --- a/tests/src/components/chat/ChatModel.cpp +++ b/tests/src/components/chat/ChatModel.cpp @@ -60,14 +60,15 @@ bool ChatModel::removeRows (int row, int count, const QModelIndex &parent) { // ------------------------------------------------------------------- void ChatModel::removeEntry (int id) { - qInfo() << "Removing chat entry:" << id << "of:" << getSipAddress(); + qInfo() << QStringLiteral("Removing chat entry: %1 of %2.") + .arg(id).arg(getSipAddress()); if (!removeRow(id)) - qWarning() << "Unable to remove chat entry:" << id; + qWarning() << QStringLiteral("Unable to remove chat entry: %1").arg(id); } void ChatModel::removeAllEntries () { - qInfo() << "Removing all chat entries of:" << getSipAddress(); + qInfo() << QStringLiteral("Removing all chat entries of: %1.").arg(getSipAddress()); beginResetModel(); @@ -165,7 +166,12 @@ void ChatModel::setSipAddress (const QString &sip_address) { // Get calls. for (auto &call_log : core->getCallHistoryForAddress(m_chat_room->getPeerAddress())) { - QVariantMap start, end; + // Ignore aborted calls. + if (call_log->getStatus() == linphone::CallStatusAborted) + continue; + + // Add start call. + QVariantMap start; fillCallStartEntry(start, call_log); ChatEntryData pair = qMakePair(start, static_pointer_cast(call_log)); @@ -178,14 +184,12 @@ void ChatModel::setSipAddress (const QString &sip_address) { ); m_entries.insert(it, pair); + + // Add end call. (if necessary) + } endResetModel(); emit sipAddressChanged(sip_address); } - - // QT_TR_NOOP('endCall'), - // QT_TR_NOOP('incomingCall'), - // QT_TR_NOOP('lostIncomingCall'), - // QT_TR_NOOP('lostOutgoingCall') diff --git a/tests/src/components/chat/ChatProxyModel.cpp b/tests/src/components/chat/ChatProxyModel.cpp index c33a8ae35..6d4e77777 100644 --- a/tests/src/components/chat/ChatProxyModel.cpp +++ b/tests/src/components/chat/ChatProxyModel.cpp @@ -5,7 +5,6 @@ ChatProxyModel::ChatProxyModel (QObject *parent) : QSortFilterProxyModel(parent) { m_chat_model.setParent(this); setSourceModel(&m_chat_model); - setFilterCaseSensitivity(Qt::CaseInsensitive); } void ChatProxyModel::removeEntry (int id) { @@ -23,5 +22,5 @@ bool ChatProxyModel::filterAcceptsRow (int source_row, const QModelIndex &source index.data() ); - return (data["type"].toInt() == m_entry_type_filter); + return data["type"].toInt() == m_entry_type_filter; } diff --git a/tests/ui/modules/Linphone/Chat/Event.qml b/tests/ui/modules/Linphone/Chat/Event.qml index 06722836e..f36bc75f7 100644 --- a/tests/ui/modules/Linphone/Chat/Event.qml +++ b/tests/ui/modules/Linphone/Chat/Event.qml @@ -9,11 +9,21 @@ import Utils 1.0 Row { property string _type: { + var status = $chatEntry.status + if ($chatEntry.status === ChatModel.CallStatusSuccess) { return $chatEntry.isOutgoing ? 'outgoing_call' : 'incoming_call' } - return '' + if ($chatEntry.status === ChatModel.CallStatusDeclined) { + return $chatEntry.isOutgoing ? 'declined_outgoing_call' : 'declined_incoming_call' + } + + if ($chatEntry.status === ChatModel.CallStatusMissed) { + return $chatEntry.isOutgoing ? 'missed_outgoing_call' : 'missed_incoming_call' + } + + return 'ended_call' } height: ChatStyle.entry.lineHeight @@ -32,8 +42,12 @@ Row { // Private data for `lupdate`. Item { property var i18n: [ - QT_TR_NOOP('endCall'), + QT_TR_NOOP('declinedIncomingCall'), + QT_TR_NOOP('declinedOutgoingCall'), + QT_TR_NOOP('endedCall'), QT_TR_NOOP('incomingCall'), + QT_TR_NOOP('missedIncomingCall'), + QT_TR_NOOP('missedOutgoingCall'), QT_TR_NOOP('outgoingCall') ] }