From 307182dbe420db5b5307776a91decd0043457f63 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Fri, 15 Sep 2023 11:51:42 +0200 Subject: [PATCH] Fix on enabling Ephemeral on chat room creation. It wasn't enabled if the creation comes from remote user. Fix crash with new Conference models. Fix duration to 1 hour and if a ICS was selected, display the correct duration. Fix margins on date in conference creation and on Date picker. Change admin english text event in chats. Remove secure icon in conference contact search. Display one star security icon if ZRTP was not verified. On authentication popup, remove Realm if username is only displayed. Adapt Identity text. Fix forward selection in search bar. --- linphone-app/assets/languages/cs.ts | 2 +- linphone-app/assets/languages/da.ts | 2 +- linphone-app/assets/languages/de.ts | 2 +- linphone-app/assets/languages/en.ts | 4 ++-- linphone-app/assets/languages/es.ts | 2 +- linphone-app/assets/languages/fr_FR.ts | 2 +- linphone-app/assets/languages/hu.ts | 2 +- linphone-app/assets/languages/it.ts | 2 +- linphone-app/assets/languages/ja.ts | 2 +- linphone-app/assets/languages/lt.ts | 2 +- linphone-app/assets/languages/pt_BR.ts | 2 +- linphone-app/assets/languages/ru.ts | 2 +- linphone-app/assets/languages/sv.ts | 2 +- linphone-app/assets/languages/tr.ts | 2 +- linphone-app/assets/languages/uk.ts | 2 +- linphone-app/assets/languages/zh_CN.ts | 2 +- .../src/components/calls/CallsListModel.cpp | 7 ------- .../conferenceInfo/ConferenceInfoModel.cpp | 2 +- .../src/components/timeline/TimelineListModel.cpp | 9 ++++++++- .../ui/modules/Common/Dialog/DateTimeDialog.qml | 2 +- .../ui/modules/Common/Picker/DatePicker.qml | 2 +- linphone-app/ui/modules/Linphone/Chat/Notice.qml | 2 +- linphone-app/ui/views/App/Calls/Incall.qml | 2 +- .../ui/views/App/Dialog/NewConference.qml | 13 ++++++++++--- linphone-app/ui/views/App/Main/Conversation.qml | 2 +- .../App/Main/Dialogs/AuthenticationRequest.qml | 9 ++++++--- .../ui/views/App/Styles/Calls/IncallStyle.qml | 15 +++++++++++++++ 27 files changed, 62 insertions(+), 37 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index 6b0db5d0a..9d2143775 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -2342,7 +2342,7 @@ Klikněte zde: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 již není admin diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 24301a149..6a0b7f585 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -2329,7 +2329,7 @@ Klik her: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index 210c15e89..7524b0c9d 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -2329,7 +2329,7 @@ Klicken Sie hier: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 ist nicht mehr Administrator diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 5733aab65..3bb5e6cf3 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -2329,8 +2329,8 @@ Click here: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody - %1 is no more an admin + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + %1 is no longer an admin conferenceSecurityEvent diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 1ad520d1b..ba796c072 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -2329,7 +2329,7 @@ Haga clic aquí: <a href="%1">%1 </a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 9c57bd959..53b396e9a 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -2329,7 +2329,7 @@ Cliquez ici : <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 n'est plus admin diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 61f530149..4a7779a80 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -2316,7 +2316,7 @@ Kattintson ide: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 most rendszergazdai jogosultság eltávolított diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 27dfec799..9f2e06479 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -2329,7 +2329,7 @@ Clicca: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 non è più un amministratore diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index 235cd0fa8..268e8095d 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -2316,7 +2316,7 @@ conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 は現在管理者ではありません diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index a301e989d..9be653458 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -2342,7 +2342,7 @@ Spustelėkite čia: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 29291f267..efaec80b8 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -2329,7 +2329,7 @@ Clique aqui: <a href="%1">%1 </a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 não é mais um administrador diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index e10331049..f88f1e83b 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -2342,7 +2342,7 @@ conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 больше не администратор diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 4982024dc..829c53d6f 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -2329,7 +2329,7 @@ Klicka här: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 3a8b1d716..6f96fcb51 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -2316,7 +2316,7 @@ Buraya tıklayın: <a href="%1">%1</a> conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 artık yönetici değil diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index d3d4d9f8c..9a087d2f7 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -2342,7 +2342,7 @@ conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 501579c33..2e23fa952 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -2316,7 +2316,7 @@ conferencePArticipantUnsetAdminEvent - '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody %1 不再是管理员 diff --git a/linphone-app/src/components/calls/CallsListModel.cpp b/linphone-app/src/components/calls/CallsListModel.cpp index 73cde0908..fb069d5fd 100644 --- a/linphone-app/src/components/calls/CallsListModel.cpp +++ b/linphone-app/src/components/calls/CallsListModel.cpp @@ -268,13 +268,6 @@ 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) { - int ephemeralTime = CoreManager::getInstance()->getSettingsModel()->getCreateEphemeralChatRooms(); - if( ephemeralTime>0){ - chatRoom->setEphemeralLifetime(ephemeralTime); - chatRoom->enableEphemeral(true); - } - } // Still needed? // if( chatRoom != nullptr){ // auto timelineList = CoreManager::getInstance()->getTimelineListModel(); diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp index fe0238636..712b605eb 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp @@ -136,7 +136,7 @@ void ConferenceInfoModel::initDateTime(){ setDateTime(QDateTime::fromMSecsSinceEpoch(0)); setDuration(0); }else{ - setDateTime(QDateTime::currentDateTime()); + setDateTime(QDateTime::currentDateTimeUtc()); setDuration(60); } } diff --git a/linphone-app/src/components/timeline/TimelineListModel.cpp b/linphone-app/src/components/timeline/TimelineListModel.cpp index d7de2616a..8c567d03b 100644 --- a/linphone-app/src/components/timeline/TimelineListModel.cpp +++ b/linphone-app/src/components/timeline/TimelineListModel.cpp @@ -403,10 +403,17 @@ void TimelineListModel::onChatRoomRead(const std::shared_ptr void TimelineListModel::onChatRoomStateChanged(const std::shared_ptr &chatRoom,linphone::ChatRoom::State state){ if( state == linphone::ChatRoom::State::Created && !getTimeline(chatRoom, false)){// Create a new Timeline if needed + if( chatRoom->hasCapability((int)linphone::ChatRoomCapabilities::Conference) && !chatRoom->ephemeralEnabled()) { + int ephemeralTime = CoreManager::getInstance()->getSettingsModel()->getCreateEphemeralChatRooms(); + if( ephemeralTime>0){ + chatRoom->setEphemeralLifetime(ephemeralTime); + chatRoom->enableEphemeral(true); + } + } QSharedPointer model = TimelineModel::create(this, chatRoom); if(model){ connect(model.get(), SIGNAL(selectedChanged(bool)), this, SLOT(onSelectedHasChanged(bool))); - add(model); + add(model); } }else if(state == linphone::ChatRoom::State::Deleted || state == linphone::ChatRoom::State::Terminated){ auto timeline = getTimeline(chatRoom, false); diff --git a/linphone-app/ui/modules/Common/Dialog/DateTimeDialog.qml b/linphone-app/ui/modules/Common/Dialog/DateTimeDialog.qml index 4fff38c18..2845c4198 100644 --- a/linphone-app/ui/modules/Common/Dialog/DateTimeDialog.qml +++ b/linphone-app/ui/modules/Common/Dialog/DateTimeDialog.qml @@ -13,7 +13,7 @@ import Utils 1.0 DialogPlus { id: mainItem height: timePicker.visible ? 575 : 500 - width: 500 + width: 550 property alias hideOldDates: datePicker.hideOldDates diff --git a/linphone-app/ui/modules/Common/Picker/DatePicker.qml b/linphone-app/ui/modules/Common/Picker/DatePicker.qml index b8ca62322..3f1948b49 100644 --- a/linphone-app/ui/modules/Common/Picker/DatePicker.qml +++ b/linphone-app/ui/modules/Common/Picker/DatePicker.qml @@ -124,7 +124,7 @@ Item{ Rectangle { // index is 0 to 48 anchors.centerIn: parent - width: Math.max(text.implicitWidth, text.implicitHeight) + 20 + width: Math.min(parent.width, Math.max(text.implicitWidth, text.implicitHeight) + 20) height: width //border.width: 0.3 * radius border.width: 2 diff --git a/linphone-app/ui/modules/Linphone/Chat/Notice.qml b/linphone-app/ui/modules/Linphone/Chat/Notice.qml index d3a48080f..8fbfb485e 100644 --- a/linphone-app/ui/modules/Linphone/Chat/Notice.qml +++ b/linphone-app/ui/modules/Linphone/Chat/Notice.qml @@ -52,7 +52,7 @@ RowLayout{ return qsTr('conferenceParticipantSetAdminEvent'); } if (status == LinphoneEnums.EventLogTypeConferenceParticipantUnsetAdmin) { - //: '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody + //: '%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody return qsTr('conferencePArticipantUnsetAdminEvent'); } if (status == LinphoneEnums.EventLogTypeConferenceParticipantDeviceAdded) { diff --git a/linphone-app/ui/views/App/Calls/Incall.qml b/linphone-app/ui/views/App/Calls/Incall.qml index 1ca815521..504aa8261 100644 --- a/linphone-app/ui/views/App/Calls/Incall.qml +++ b/linphone-app/ui/views/App/Calls/Incall.qml @@ -448,7 +448,7 @@ Rectangle { height: IncallStyle.buttons.secure.buttonSize width: height isCustom: true - iconIsCustom: ! (callModel.isSecured && SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp) + iconIsCustom: ! (callModel.isSecured) backgroundRadius: width/2 colorSet: !callModel || callModel.encryption === CallModel.CallEncryptionNone diff --git a/linphone-app/ui/views/App/Dialog/NewConference.qml b/linphone-app/ui/views/App/Dialog/NewConference.qml index 24b477fe5..b5b33ac0e 100644 --- a/linphone-app/ui/views/App/Dialog/NewConference.qml +++ b/linphone-app/ui/views/App/Dialog/NewConference.qml @@ -179,7 +179,7 @@ DialogPlus { : qsTr('updateConferenceTitle') height: window.height - 100 - width: window.width - 100 + width: window.width - 50 expandHeight: true Component.onDestruction: gc() // Free DateModels from memory // --------------------------------------------------------------------------- @@ -346,7 +346,13 @@ DialogPlus { ComboBox{ id: durationField Layout.preferredWidth: parent.cellWidth; - currentIndex: conferenceManager.conferenceInfoModel && conferenceManager.conferenceInfoModel.duration >= 1800 ? conferenceManager.conferenceInfoModel.duration / 1800 - 1 : 1 + currentIndex: !conferenceManager.conferenceInfoModel + ? 1 + : conferenceManager.conferenceInfoModel.duration >= 240 + ? 3 + : Number(Utils.findIndex(model, function (duration) { + return duration.value === conferenceManager.conferenceInfoModel.duration + })) model: [{text:Utils.formatDuration(30*60), value:30} ,{text:Utils.formatDuration(60*60), value:60} ,{text:Utils.formatDuration(120*60), value:120} @@ -475,7 +481,8 @@ DialogPlus { secure: SettingsModel.secureChatEnabled, visible: true, secureIconVisibleHandler : function(entry) { - return entry && entry.sipAddress ? UtilsCpp.hasCapability(entry.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh, true) : false + return false; + //return entry && entry.sipAddress ? UtilsCpp.hasCapability(entry.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh, true) : false }, handler: function (entry) { if(entry){ diff --git a/linphone-app/ui/views/App/Main/Conversation.qml b/linphone-app/ui/views/App/Main/Conversation.qml index 97ae32f1a..fd47271f1 100644 --- a/linphone-app/ui/views/App/Main/Conversation.qml +++ b/linphone-app/ui/views/App/Main/Conversation.qml @@ -36,7 +36,7 @@ ColumnLayout { property int securityLevel : chatRoomModel ? chatRoomModel.securityLevel : 1 - property SipAddressObserver _sipAddressObserver: SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), (fullLocalAddress?fullLocalAddress:localAddress)) + property SipAddressObserver _sipAddressObserver: SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:defaultPeerAddress), (fullLocalAddress?fullLocalAddress:localAddress)) property bool haveMoreThanOneParticipants: chatRoomModel ? chatRoomModel.participants.count > 2 : false property bool haveLessThanMinParticipantsForCall: chatRoomModel ? chatRoomModel.participants.count <= 5 : false diff --git a/linphone-app/ui/views/App/Main/Dialogs/AuthenticationRequest.qml b/linphone-app/ui/views/App/Main/Dialogs/AuthenticationRequest.qml index 2b68a3685..0a9608e5c 100644 --- a/linphone-app/ui/views/App/Main/Dialogs/AuthenticationRequest.qml +++ b/linphone-app/ui/views/App/Main/Dialogs/AuthenticationRequest.qml @@ -1,7 +1,8 @@ import QtQuick 2.7 import Common 1.0 - +import Linphone 1.0 +import UtilsCpp 1.0 import App.Styles 1.0 import 'AuthenticationRequest.js' as Logic @@ -12,7 +13,7 @@ DialogPlus { id: dialog property alias realm: realm.text - property alias sipAddress: identity.text + property alias sipAddress: identity.hiddenText property alias userId: userId.text property var authInfo @@ -52,13 +53,15 @@ DialogPlus { TextField { id: identity - + property string hiddenText + text: UtilsCpp.toDisplayString(identity.hiddenText, SettingsModel.sipDisplayMode) readOnly: true } } } FormLine { + visible: SettingsModel.sipDisplayMode == UtilsCpp.SIP_DISPLAY_ALL FormGroup { label: qsTr('realmLabel') diff --git a/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml b/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml index 4071a3e6b..21a2e0077 100644 --- a/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml @@ -292,6 +292,21 @@ QtObject { property var foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's') property var foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's') } + property QtObject secure2: QtObject { + property int buttonSize: 40 + property int iconSize: 20 + property string icon : 'secure_level_2' + property string name : 'secure2' + + property var backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, '', '', '#66727B') + property var backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, '', '', '#66727B') + property var backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, '', '', '#66727B') + property var backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_c', icon, '', '', '#66727B') + property var foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's') + property var foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's') + property var foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's') + property var foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's') + } property QtObject postQuantumSecure: QtObject { property int buttonSize: 40 property int iconSize: 20