From 257beaf772f2eca9039fe9d8339f231918c2cec6 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 15 Sep 2016 15:54:56 +0200 Subject: [PATCH] Unstable. --- tests/languages/en.ts | 7 +++ tests/languages/fr.ts | 7 +++ tests/linphone.pro | 3 ++ tests/resources.qrc | 4 ++ tests/ui/components/chat/Chat.qml | 51 ++++++++++++++++++++ tests/ui/components/chat/IncomingMessage.qml | 9 ++++ tests/ui/components/chat/Message.qml | 29 +++++++++++ tests/ui/components/chat/OutgoingMessage.qml | 1 + tests/ui/views/mainWindow/conversation.qml | 9 ++-- 9 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 tests/ui/components/chat/Chat.qml create mode 100644 tests/ui/components/chat/IncomingMessage.qml create mode 100644 tests/ui/components/chat/Message.qml create mode 100644 tests/ui/components/chat/OutgoingMessage.qml diff --git a/tests/languages/en.ts b/tests/languages/en.ts index 32656388c..5f0101707 100644 --- a/tests/languages/en.ts +++ b/tests/languages/en.ts @@ -26,6 +26,13 @@ Search contact or enter SIP address + + Timeline + + timelineTitle + Previously + + contacts diff --git a/tests/languages/fr.ts b/tests/languages/fr.ts index 52a2d811b..13f4eaae1 100644 --- a/tests/languages/fr.ts +++ b/tests/languages/fr.ts @@ -26,6 +26,13 @@ Rechercher un contact ou entrer une adresse SIP + + Timeline + + timelineTitle + Précédemment + + contacts diff --git a/tests/linphone.pro b/tests/linphone.pro index a17dda657..59f427563 100644 --- a/tests/linphone.pro +++ b/tests/linphone.pro @@ -21,12 +21,15 @@ TRANSLATIONS = \ lupdate_only{ # Each component folder must be added explicitly. SOURCES = \ + ui/components/chat/*.qml \ ui/components/collapse/*.qml \ ui/components/contact/*.qml \ ui/components/dialog/*.qml \ ui/components/form/*.qml \ ui/components/misc/*.qml \ + ui/components/scrollBar/*.qml \ ui/components/select/*.qml \ + ui/components/timeline/*.qml \ ui/views/*.qml \ ui/views/mainWindow/*.qml } diff --git a/tests/resources.qrc b/tests/resources.qrc index e717cb695..2164cbe29 100644 --- a/tests/resources.qrc +++ b/tests/resources.qrc @@ -7,6 +7,10 @@ ui/components/timeline/Timeline.qml ui/components/select/SelectContact.qml ui/components/collapse/Collapse.qml + ui/components/chat/IncomingMessage.qml + ui/components/chat/Chat.qml + ui/components/chat/OutgoingMessage.qml + ui/components/chat/Message.qml ui/components/contact/Contact.qml ui/components/contact/ShortContactDescription.qml ui/components/contact/Avatar.qml diff --git a/tests/ui/components/chat/Chat.qml b/tests/ui/components/chat/Chat.qml new file mode 100644 index 000000000..67608af02 --- /dev/null +++ b/tests/ui/components/chat/Chat.qml @@ -0,0 +1,51 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.3 + +import 'qrc:/ui/components/scrollBar' + +ListView { + ScrollBar.vertical: ForceScrollBar { } + boundsBehavior: Flickable.StopAtBounds + clip: true + highlightRangeMode: ListView.ApplyRange + spacing: 10 + + model: ListModel { + ListElement { $timestamp: 1465389121; $type: 'message'; $message: 'This is it: fefe efzzzzzzzzzz aaaaaaaaa erfeezffeefzfzefzefzezfefez wfef efef e efeffefe fee efefefeefef fefefefefe eff fefefe fefeffww.linphone.org' } + ListElement { $type: 'message'; $message: 'Perfect!' } + } + + delegate: Rectangle { + anchors.left: parent.left + anchors.leftMargin: 18 + anchors.right: parent.right + anchors.rightMargin: 18 + + // Unable to use `height` property. + // The height is given by message height. + implicitHeight: layout.height + width: parent.width + + RowLayout { + id: layout + + // The height is computed with the message height. + // Unable to use `height` and `implicitHeight` property. + width: parent.width + + Rectangle { + Layout.alignment: Qt.AlignTop + Layout.preferredHeight: 15 + Layout.preferredWidth: 42 + color: 'blue' + } + + Loader { + Layout.fillWidth: true + id: loader + source: 'qrc:/ui/components/chat/IncomingMessage.qml' + } + } + } +} diff --git a/tests/ui/components/chat/IncomingMessage.qml b/tests/ui/components/chat/IncomingMessage.qml new file mode 100644 index 000000000..9b529e9f9 --- /dev/null +++ b/tests/ui/components/chat/IncomingMessage.qml @@ -0,0 +1,9 @@ +import QtQuick 2.7 +import QtQuick.Layouts 1.3 + +import 'qrc:/ui/components/contact' + +Message { + backgroundColor: '#BFBFBF' + Layout.fillWidth: true +} diff --git a/tests/ui/components/chat/Message.qml b/tests/ui/components/chat/Message.qml new file mode 100644 index 000000000..40336a23c --- /dev/null +++ b/tests/ui/components/chat/Message.qml @@ -0,0 +1,29 @@ +import QtQuick 2.7 + +Item { + property alias backgroundColor: rectangle.color + + id: container + implicitHeight: text.contentHeight + text.padding * 2 + width: parent.width - text.padding * 2 + + Rectangle { + id: rectangle + height: parent.height + radius: 4 + width: ( + text.contentWidth < parent.width + ? text.contentWidth + : parent.width + ) + text.padding * 2 + } + + Text { + anchors.left: container.left + anchors.right: container.right + padding: 8 + id: text + text: $message + wrapMode: Text.Wrap + } +} diff --git a/tests/ui/components/chat/OutgoingMessage.qml b/tests/ui/components/chat/OutgoingMessage.qml new file mode 100644 index 000000000..f7a90bbd3 --- /dev/null +++ b/tests/ui/components/chat/OutgoingMessage.qml @@ -0,0 +1 @@ +import QtQuick 2.7 diff --git a/tests/ui/views/mainWindow/conversation.qml b/tests/ui/views/mainWindow/conversation.qml index 9e77ab93d..68d8cd89a 100644 --- a/tests/ui/views/mainWindow/conversation.qml +++ b/tests/ui/views/mainWindow/conversation.qml @@ -5,6 +5,7 @@ import QtQuick.Layouts 1.3 import 'qrc:/ui/components/contact' import 'qrc:/ui/components/form' import 'qrc:/ui/components/scrollBar' +import 'qrc:/ui/components/chat' ColumnLayout { spacing: 0 @@ -112,15 +113,11 @@ ColumnLayout { border.width: 1 id: messagesArea - ListView { + Chat { ScrollBar.vertical: ForceScrollBar { } - anchors.fill: parent anchors.bottomMargin: messagesArea.border.width + anchors.fill: parent anchors.topMargin: messagesArea.border.width - boundsBehavior: Flickable.StopAtBounds - clip: true - highlightRangeMode: ListView.ApplyRange - spacing: 1 } }