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.
This commit is contained in:
Julien Wadel 2023-09-15 11:51:42 +02:00
parent 31011b2b4c
commit 307182dbe4
27 changed files with 62 additions and 37 deletions

View file

@ -2342,7 +2342,7 @@ Klikněte zde: <a href="%1">%1</a>
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 již není admin</translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation type="unfinished"></translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 ist nicht mehr Administrator</translation>
</message>
<message>

View file

@ -2329,8 +2329,8 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 is no more an admin</translation>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 is no longer an admin</translation>
</message>
<message>
<source>conferenceSecurityEvent</source>

View file

@ -2329,7 +2329,7 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation type="unfinished"></translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 n&apos;est plus admin</translation>
</message>
<message>

View file

@ -2316,7 +2316,7 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 most rendszergazdai jogosultság eltávolított</translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 non è più un amministratore</translation>
</message>
<message>

View file

@ -2316,7 +2316,7 @@
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 </translation>
</message>
<message>

View file

@ -2342,7 +2342,7 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation type="unfinished"></translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 não é mais um administrador</translation>
</message>
<message>

View file

@ -2342,7 +2342,7 @@
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 больше не администратор</translation>
</message>
<message>

View file

@ -2329,7 +2329,7 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation type="unfinished"></translation>
</message>
<message>

View file

@ -2316,7 +2316,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 artık yönetici değil</translation>
</message>
<message>

View file

@ -2342,7 +2342,7 @@
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation type="unfinished"></translation>
</message>
<message>

View file

@ -2316,7 +2316,7 @@
</message>
<message>
<source>conferencePArticipantUnsetAdminEvent</source>
<extracomment>&apos;%1 is no more an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<extracomment>&apos;%1 is no longer an admin&apos; : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 </translation>
</message>
<message>

View file

@ -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 " <<participantAddress;;
std::shared_ptr<linphone::ChatRoom> 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();

View file

@ -136,7 +136,7 @@ void ConferenceInfoModel::initDateTime(){
setDateTime(QDateTime::fromMSecsSinceEpoch(0));
setDuration(0);
}else{
setDateTime(QDateTime::currentDateTime());
setDateTime(QDateTime::currentDateTimeUtc());
setDuration(60);
}
}

View file

@ -403,10 +403,17 @@ void TimelineListModel::onChatRoomRead(const std::shared_ptr<linphone::ChatRoom>
void TimelineListModel::onChatRoomStateChanged(const std::shared_ptr<linphone::ChatRoom> &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<TimelineModel> 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);

View file

@ -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

View file

@ -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

View file

@ -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) {

View file

@ -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

View file

@ -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){

View file

@ -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

View file

@ -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')

View file

@ -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