diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts
index cb0e3f845..cbcac7010 100644
--- a/linphone-app/assets/languages/cs.ts
+++ b/linphone-app/assets/languages/cs.ts
@@ -1008,6 +1008,11 @@
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts
index e2a07bd4b..cc3cffce7 100644
--- a/linphone-app/assets/languages/da.ts
+++ b/linphone-app/assets/languages/da.ts
@@ -1003,6 +1003,11 @@ Server url ikke konfigureret.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts
index 767580fcb..c05a5e760 100644
--- a/linphone-app/assets/languages/de.ts
+++ b/linphone-app/assets/languages/de.ts
@@ -625,7 +625,7 @@ Server URL ist nicht konfiguriert.
icsCancelledMeetingInvite
'Meeting has been cancelled' : ICS title for a cancelled invitation.
-
+ Das Treffen wurde storniert
@@ -1003,6 +1003,11 @@ Server URL ist nicht konfiguriert.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts
index fa04c0f46..84619a2c7 100644
--- a/linphone-app/assets/languages/en.ts
+++ b/linphone-app/assets/languages/en.ts
@@ -1003,6 +1003,11 @@ Server URL not configured.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
USERNAME(S)
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+ Display Name
+
Contacts
diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts
index 36182ccea..42702c9b2 100644
--- a/linphone-app/assets/languages/es.ts
+++ b/linphone-app/assets/languages/es.ts
@@ -1003,6 +1003,11 @@ URL del servidor no configurada.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts
index 9a77aa04a..79682359f 100644
--- a/linphone-app/assets/languages/fr_FR.ts
+++ b/linphone-app/assets/languages/fr_FR.ts
@@ -1003,6 +1003,11 @@ URL du serveur non configurée.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
Nom(s) d'utilisateur
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+ Nom d'affichage
+
Contacts
diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts
index cc3b1fd78..ba3537cab 100644
--- a/linphone-app/assets/languages/hu.ts
+++ b/linphone-app/assets/languages/hu.ts
@@ -997,6 +997,11 @@ A kiszolgáló URL-je nincs konfigurálva.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts
index 98039e43d..5173999c4 100644
--- a/linphone-app/assets/languages/it.ts
+++ b/linphone-app/assets/languages/it.ts
@@ -1003,6 +1003,11 @@ URL del server non configurato.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts
index a9fbe1212..7825a1c1e 100644
--- a/linphone-app/assets/languages/ja.ts
+++ b/linphone-app/assets/languages/ja.ts
@@ -997,6 +997,11 @@
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts
index 5d5184fb5..f015fd728 100644
--- a/linphone-app/assets/languages/lt.ts
+++ b/linphone-app/assets/languages/lt.ts
@@ -1009,6 +1009,11 @@ Nesukonfigūruotas serverio url.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts
index c6948365b..fd9f3e1e9 100644
--- a/linphone-app/assets/languages/pt_BR.ts
+++ b/linphone-app/assets/languages/pt_BR.ts
@@ -1003,6 +1003,11 @@ URL do servidor não configurado.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts
index 4de374f52..24a89a2d3 100644
--- a/linphone-app/assets/languages/ru.ts
+++ b/linphone-app/assets/languages/ru.ts
@@ -1009,6 +1009,11 @@
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts
index 7afff6c73..916df6c6a 100644
--- a/linphone-app/assets/languages/sv.ts
+++ b/linphone-app/assets/languages/sv.ts
@@ -1003,6 +1003,11 @@ Serverwebbadressen är inte konfigurerad.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts
index 432d87649..dc8a0e5f2 100644
--- a/linphone-app/assets/languages/tr.ts
+++ b/linphone-app/assets/languages/tr.ts
@@ -997,6 +997,11 @@ Sunucu url'si yapılandırılmadı.
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts
index be6b43132..442a6cb2e 100644
--- a/linphone-app/assets/languages/uk.ts
+++ b/linphone-app/assets/languages/uk.ts
@@ -1009,6 +1009,11 @@
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts
index 1de29a6ac..553bef147 100644
--- a/linphone-app/assets/languages/zh_CN.ts
+++ b/linphone-app/assets/languages/zh_CN.ts
@@ -997,6 +997,11 @@
'USERNAME(S)' : label for sip accounts when only username is displayed n contact
+
+ displayName
+ 'Display Name' : placeholder for setting display name on a contact
+
+
Contacts
diff --git a/linphone-app/src/components/calls/CallsListModel.cpp b/linphone-app/src/components/calls/CallsListModel.cpp
index 93663e1a7..d7d1437be 100644
--- a/linphone-app/src/components/calls/CallsListModel.cpp
+++ b/linphone-app/src/components/calls/CallsListModel.cpp
@@ -260,6 +260,9 @@ bool CallsListModel::createSecureChat (const QString& subject, const QString &pa
std::list > participants;
std::shared_ptr localAddress;
participants.push_back(address);
+ int ephemeralTime = CoreManager::getInstance()->getSettingsModel()->getCreateEphemeralChatRooms();
+ if(ephemeralTime>0)
+ params->setEphemeralLifetime(ephemeralTime);
params->enableEncryption(true);
params->setSubject(Utils::appStringToCoreString(subject));
@@ -268,6 +271,8 @@ bool CallsListModel::createSecureChat (const QString& subject, const QString &pa
qInfo() << "Create secure ChatRoom: " << subject << ", from " << QString::fromStdString(localAddress->asString()) << " and with " < chatRoom = core->createChatRoom(params, localAddress, participants);
+ if(chatRoom)
+ chatRoom->enableEphemeral(ephemeralTime>0);
// Still needed?
// if( chatRoom != nullptr){
// auto timelineList = CoreManager::getInstance()->getTimelineListModel();
@@ -318,6 +323,9 @@ QVariantMap CallsListModel::createChatRoom(const QString& subject, const int& se
qWarning() << "Failed to add participant to conference, bad address : " << (participant ? participant->getSipAddress() : p.toString());
}
params->enableEncryption(securityLevel>0);
+ int ephemeralTime = CoreManager::getInstance()->getSettingsModel()->getCreateEphemeralChatRooms();
+ if(securityLevel > 0 && ephemeralTime>0)
+ params->setEphemeralLifetime(ephemeralTime);
if( securityLevel<=0)
params->setBackend(linphone::ChatRoomBackend::Basic);
@@ -365,6 +373,8 @@ QVariantMap CallsListModel::createChatRoom(const QString& subject, const int& se
}
if( !chatRoom)
qWarning() << "Chat room cannot be created";
+ else if(securityLevel > 0)
+ chatRoom->enableEphemeral(ephemeralTime>0);
result["created"] = (chatRoom != nullptr);
return result;
diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp
index 966a140c5..3779cba43 100644
--- a/linphone-app/src/components/settings/SettingsModel.cpp
+++ b/linphone-app/src/components/settings/SettingsModel.cpp
@@ -1140,6 +1140,17 @@ void SettingsModel::setContactsEnabled (bool status) {
int SettingsModel::getIncomingCallTimeout() const {
return CoreManager::getInstance()->getCore()->getIncTimeout();
}
+
+int SettingsModel::getCreateEphemeralChatRooms() const{
+ return mConfig->getInt(UiSection, "create_ephemeral_chat_rooms", 0);
+}
+
+void SettingsModel::setCreateEphemeralChatRooms(int seconds) {
+ if(!isReadOnly(UiSection, "create_ephemeral_chat_rooms"))
+ mConfig->setInt(UiSection, "create_ephemeral_chat_rooms", seconds);
+ emit createEphemeralsChatRoomsChanged();
+}
+
// =============================================================================
// Network.
// =============================================================================
diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp
index 2b13f3039..e26bb5f47 100644
--- a/linphone-app/src/components/settings/SettingsModel.hpp
+++ b/linphone-app/src/components/settings/SettingsModel.hpp
@@ -501,6 +501,9 @@ public:
int getIncomingCallTimeout() const;
+ int getCreateEphemeralChatRooms() const;
+ void setCreateEphemeralChatRooms(int seconds);// <=0 deactivate
+
// Network. ------------------------------------------------------------------
bool getShowNetworkSettings () const;
@@ -594,7 +597,7 @@ public:
void setDownloadFolder (const QString &folder);
QString getRemoteProvisioningRootUrl() const;
- QString getRemoteProvisioning () const;
+ Q_INVOKABLE QString getRemoteProvisioning () const;
void setRemoteProvisioning (const QString &remoteProvisioning);
Q_INVOKABLE bool isQRCodeAvailable() const;
@@ -804,6 +807,8 @@ signals:
void contactsEnabledChanged (bool status);
+ void createEphemeralsChatRoomsChanged();
+
// Network. ------------------------------------------------------------------
void showNetworkSettingsChanged (bool status);
diff --git a/linphone-app/ui/modules/Common/Form/TransparentTextInput.qml b/linphone-app/ui/modules/Common/Form/TransparentTextInput.qml
index f9f9903c8..8af7f8bf5 100644
--- a/linphone-app/ui/modules/Common/Form/TransparentTextInput.qml
+++ b/linphone-app/ui/modules/Common/Form/TransparentTextInput.qml
@@ -40,7 +40,7 @@ Item {
'transparent'
height: parent.height
width: {
- var width = textInput.contentWidth + parent.padding * 2
+ var width = Math.max(textInput.contentWidth, placeholder.contentWidth) + parent.padding * 2
return width < parent.width ? width : parent.width
}
diff --git a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml
index b0cbb373e..770e65124 100644
--- a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml
+++ b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml
@@ -70,7 +70,7 @@ Item {
Text {
id:username
Layout.fillWidth: true
- Layout.preferredHeight: accountStatus.noAccountConfigured ? -1 : parent.height / 2
+ Layout.preferredHeight: accountStatus.noAccountConfigured ? -1 : subtitle.visible ? parent.height / 2 : parent.height
Layout.alignment: !subtitle.visible ? Qt.AlignVCenter | Qt.AlignLeft : Qt.AlignBottom | Qt.AlignLeft
color: AccountStatusStyle.username.colorModel.color
elide: Text.ElideRight
@@ -78,7 +78,7 @@ Item {
font.pointSize: AccountStatusStyle.username.pointSize
//: 'No account configured' : Status text when there is no configured account.
text: accountStatus.noAccountConfigured ? qsTr('noAccount'): AccountSettingsModel.username
- verticalAlignment: Text.AlignBottom
+ verticalAlignment: subtitle.visible ? Text.AlignBottom : Text.AlignVCenter
wrapMode: Text.WordWrap
maximumLineCount: 3
}
@@ -106,7 +106,7 @@ Item {
Text {
id: subtitle
- Layout.preferredHeight:parent.height / 2
+ Layout.preferredHeight: visible ? parent.height / 2 : 0
Layout.preferredWidth:parent.width
visible: !accountStatus.noAccountConfigured && text != username.text
color: AccountStatusStyle.sipAddress.colorModel.color
diff --git a/linphone-app/ui/views/App/Main/ContactEdit.qml b/linphone-app/ui/views/App/Main/ContactEdit.qml
index cd2fa8fb4..a372d8bc3 100644
--- a/linphone-app/ui/views/App/Main/ContactEdit.qml
+++ b/linphone-app/ui/views/App/Main/ContactEdit.qml
@@ -133,6 +133,8 @@ ColumnLayout {
forceFocus: true
readOnly: !_edition
text: avatar.username
+ //: 'Display Name' : placeholder for setting display name on a contact
+ placeholder: qsTr('displayName')
font.family: SettingsModel.textMessageFont.family
onEditingFinished: Logic.setUsername(text)
diff --git a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml
index e974df614..b1195fd69 100644
--- a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml
+++ b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml
@@ -57,7 +57,7 @@ Item {
Shortcut {
id: recordingsShortcut
- onActivated: menuParent.displayRecordings()
+ onActivated: if(SettingsModel.callRecorderEnabled) menuParent.displayRecordings()
}
// ---------------------------------------------------------------------------
@@ -75,6 +75,7 @@ Item {
}
MenuItem{
+ visible: SettingsModel.callRecorderEnabled
//: 'Recordings' : Label for the recordings menu.
text: qsTr('recordings')
onTriggered: recordingsShortcut.onActivated()
diff --git a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml
index ed4ae1d25..28a52612f 100644
--- a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml
+++ b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml
@@ -28,6 +28,7 @@ MenuBar {
}
MenuItem {
+ visible: SettingsModel.callRecorderEnabled
//: 'Recordings' : Label for the recordings menu.
text: qsTr('recordings')
role: MenuItem.ApplicationSpecificRole