e2e encrypted header chat message list
translations update update sdk fix #LINQT-1772
This commit is contained in:
parent
75e71be14d
commit
ac7164fb0b
11 changed files with 1258 additions and 975 deletions
|
|
@ -90,6 +90,7 @@ ChatCore::ChatCore(const std::shared_ptr<linphone::ChatRoom> &chatRoom) : QObjec
|
||||||
resetChatMessageList(messageList);
|
resetChatMessageList(messageList);
|
||||||
mIdentifier = Utils::coreStringToAppString(chatRoom->getIdentifier());
|
mIdentifier = Utils::coreStringToAppString(chatRoom->getIdentifier());
|
||||||
mChatRoomState = LinphoneEnums::fromLinphone(chatRoom->getState());
|
mChatRoomState = LinphoneEnums::fromLinphone(chatRoom->getState());
|
||||||
|
mIsEncrypted = chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Encrypted);
|
||||||
connect(this, &ChatCore::messageListChanged, this, &ChatCore::lUpdateLastMessage);
|
connect(this, &ChatCore::messageListChanged, this, &ChatCore::lUpdateLastMessage);
|
||||||
connect(this, &ChatCore::messagesInserted, this, &ChatCore::lUpdateLastMessage);
|
connect(this, &ChatCore::messagesInserted, this, &ChatCore::lUpdateLastMessage);
|
||||||
connect(this, &ChatCore::messageRemoved, this, &ChatCore::lUpdateLastMessage);
|
connect(this, &ChatCore::messageRemoved, this, &ChatCore::lUpdateLastMessage);
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ public:
|
||||||
Q_PROPERTY(QString composingName READ getComposingName WRITE setComposingName NOTIFY composingUserChanged)
|
Q_PROPERTY(QString composingName READ getComposingName WRITE setComposingName NOTIFY composingUserChanged)
|
||||||
Q_PROPERTY(QString composingAddress READ getComposingAddress WRITE setComposingAddress NOTIFY composingUserChanged)
|
Q_PROPERTY(QString composingAddress READ getComposingAddress WRITE setComposingAddress NOTIFY composingUserChanged)
|
||||||
Q_PROPERTY(bool isGroupChat READ isGroupChat CONSTANT)
|
Q_PROPERTY(bool isGroupChat READ isGroupChat CONSTANT)
|
||||||
|
Q_PROPERTY(bool isEncrypted MEMBER mIsEncrypted)
|
||||||
|
|
||||||
// Should be call from model Thread. Will be automatically in App thread after initialization
|
// Should be call from model Thread. Will be automatically in App thread after initialization
|
||||||
static QSharedPointer<ChatCore> create(const std::shared_ptr<linphone::ChatRoom> &chatRoom);
|
static QSharedPointer<ChatCore> create(const std::shared_ptr<linphone::ChatRoom> &chatRoom);
|
||||||
|
|
@ -137,6 +138,7 @@ private:
|
||||||
QString mComposingName;
|
QString mComposingName;
|
||||||
QString mComposingAddress;
|
QString mComposingAddress;
|
||||||
bool mIsGroupChat = false;
|
bool mIsGroupChat = false;
|
||||||
|
bool mIsEncrypted = false;
|
||||||
LinphoneEnums::ChatRoomState mChatRoomState;
|
LinphoneEnums::ChatRoomState mChatRoomState;
|
||||||
std::shared_ptr<ChatModel> mChatModel;
|
std::shared_ptr<ChatModel> mChatModel;
|
||||||
QSharedPointer<ChatMessageCore> mLastMessage;
|
QSharedPointer<ChatMessageCore> mLastMessage;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -68,7 +68,7 @@ FocusScope {
|
||||||
font.pixelSize: Typography.p2.pixelSize
|
font.pixelSize: Typography.p2.pixelSize
|
||||||
font.weight: Typography.p2.weight
|
font.weight: Typography.p2.weight
|
||||||
//: "Nom du groupe"
|
//: "Nom du groupe"
|
||||||
text: qsTr("history_group_call_start_dialog_subject_hint")
|
text: qsTr("group_start_dialog_subject_hint")
|
||||||
}
|
}
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,24 @@ ColumnLayout {
|
||||||
property alias header: rightPanelHeader
|
property alias header: rightPanelHeader
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
Rectangle {
|
Item {
|
||||||
id: rightPanelHeader
|
Layout.preferredHeight: Math.round(57 * DefaultStyle.dp)
|
||||||
color: DefaultStyle.grey_0
|
|
||||||
Layout.preferredHeight: Math.round(57 * DefaultStyle.dp)
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
z: 1
|
z: rightPanelContent.z + 1
|
||||||
|
Rectangle {
|
||||||
|
id: rightPanelHeader
|
||||||
|
anchors.fill: parent
|
||||||
|
color: DefaultStyle.grey_0
|
||||||
|
}
|
||||||
|
MultiEffect {
|
||||||
|
anchors.fill: rightPanelHeader
|
||||||
|
source: rightPanelHeader
|
||||||
|
shadowEnabled: true
|
||||||
|
shadowColor: DefaultStyle.grey_1000
|
||||||
|
shadowBlur: 1
|
||||||
|
shadowOpacity: 0.05
|
||||||
|
shadowVerticalOffset: Math.round(10 * DefaultStyle.dp)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: rightPanelContent
|
id: rightPanelContent
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,52 @@ ListView {
|
||||||
}
|
}
|
||||||
|
|
||||||
header: Item {
|
header: Item {
|
||||||
height: Math.round(18 * DefaultStyle.dp)
|
height: headerMessage.height + Math.round(50 * DefaultStyle.dp)
|
||||||
|
width: headerMessage.width
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
Control.Control {
|
||||||
|
id: headerMessage
|
||||||
|
anchors.topMargin: Math.round(30 * DefaultStyle.dp)
|
||||||
|
anchors.top: parent.top
|
||||||
|
padding: Math.round(10 * DefaultStyle.dp)
|
||||||
|
background: Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
border.color: DefaultStyle.main2_200
|
||||||
|
border.width: Math.round(2 * DefaultStyle.dp)
|
||||||
|
radius: Math.round(10 * DefaultStyle.dp)
|
||||||
|
}
|
||||||
|
contentItem: RowLayout {
|
||||||
|
EffectImage {
|
||||||
|
Layout.preferredWidth: Math.round(23 * DefaultStyle.dp)
|
||||||
|
Layout.preferredHeight: Math.round(23 * DefaultStyle.dp)
|
||||||
|
imageSource: AppIcons.lockSimple
|
||||||
|
colorizationColor: DefaultStyle.info_500_main
|
||||||
|
}
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Math.round(2 * DefaultStyle.dp)
|
||||||
|
Text {
|
||||||
|
//: End to end encrypted chat
|
||||||
|
text: qsTr("chat_message_list_encrypted_header_title")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: DefaultStyle.info_500_main
|
||||||
|
font {
|
||||||
|
pixelSize: Typography.p2.pixelSize
|
||||||
|
weight: Typography.p2.weight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
//: Les messages de cette conversation sont chiffrés de bout \n en bout. Seul votre correspondant peut les déchiffrer.
|
||||||
|
text: qsTr("chat_message_list_encrypted_header_message")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: DefaultStyle.grey_400
|
||||||
|
font {
|
||||||
|
pixelSize: Typography.p3.pixelSize
|
||||||
|
weight: Typography.p3.weight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ChatMessage {
|
delegate: ChatMessage {
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ Control.Control{
|
||||||
popup.contentItem: Rectangle {
|
popup.contentItem: Rectangle {
|
||||||
implicitWidth: 280 * DefaultStyle.dp
|
implicitWidth: 280 * DefaultStyle.dp
|
||||||
implicitHeight: 20 * DefaultStyle.dp + (setCustomStatus.visible ? 240 * DefaultStyle.dp : setPresence.implicitHeight)
|
implicitHeight: 20 * DefaultStyle.dp + (setCustomStatus.visible ? 240 * DefaultStyle.dp : setPresence.implicitHeight)
|
||||||
|
MouseArea{anchors.fill: parent}
|
||||||
Presence {
|
Presence {
|
||||||
id: setPresence
|
id: setPresence
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import Linphone
|
||||||
import SettingsCpp
|
import SettingsCpp
|
||||||
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
|
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
|
||||||
|
|
||||||
Column {
|
ColumnLayout {
|
||||||
id: mainItem
|
id: mainItem
|
||||||
spacing: 20 * DefaultStyle.dp
|
spacing: 20 * DefaultStyle.dp
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
|
|
||||||
2
external/linphone-sdk
vendored
2
external/linphone-sdk
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 83685e63b08c5e5eaf74b6a8ee0ba27802ea30ff
|
Subproject commit fe690e75c6ab33804c36079763c90d8e0cb84c08
|
||||||
Loading…
Reference in a new issue