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-08-10 18:28:06 +02:00
parent d2a8b9f91e
commit 7af7819510
28 changed files with 72 additions and 45 deletions

View file

@ -2261,7 +2261,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

@ -2250,7 +2250,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

@ -2250,7 +2250,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

@ -2250,8 +2250,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

@ -2250,7 +2250,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

@ -2250,7 +2250,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

@ -2238,7 +2238,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

@ -2250,7 +2250,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

@ -2238,7 +2238,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

@ -2262,7 +2262,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

@ -2250,7 +2250,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

@ -2262,7 +2262,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

@ -2250,7 +2250,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

@ -2238,7 +2238,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

@ -2262,7 +2262,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

@ -2238,7 +2238,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

@ -267,13 +267,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

@ -134,7 +134,7 @@ void ConferenceInfoModel::initDateTime(){
setDuration(0);
}else{
setDateTime(QDateTime::currentDateTimeUtc());
setDuration(1200);
setDuration(120);
}
}
@ -185,7 +185,7 @@ QString ConferenceInfoModel::displayNamesToString()const{
QString ConferenceInfoModel::getUri() const{
auto address = mConferenceInfo->getUri();
return address->isValid() && !address->getDomain().empty() ? QString::fromStdString(address->asStringUriOnly()) : "";
return address && address->isValid() && !address->getDomain().empty() ? QString::fromStdString(address->asStringUriOnly()) : "";
}
bool ConferenceInfoModel::isScheduled() const{

View file

@ -396,10 +396,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

@ -120,7 +120,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

@ -88,7 +88,7 @@ function forwardMessage(chatRoomModel, chatEntry, chatRoomConfig){
}, function (status) {
if (status) {
if(!chatRoomModel) {
var chat = CallsListModel.createChatRoom( chatRoomConfig.subject, chatRoomConfig.haveEncryption, chatRoomConfig.participants, chatRoomConfig.toSelect)
var chat = Linphone.CallsListModel.createChatRoom( chatRoomConfig.subject, chatRoomConfig.haveEncryption, chatRoomConfig.participants, chatRoomConfig.toSelect)
if(chat)
chatRoomModel = chat.chatRoomModel
}

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,15 +448,17 @@ 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.isSecured
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp && callModel.isPQZrtp == CallModel.CallPQStateOn
? IncallStyle.buttons.postQuantumSecure
: IncallStyle.buttons.secure
: IncallStyle.buttons.unsecure
colorSet: callModel.encryption === CallModel.CallEncryptionNone
? IncallStyle.buttons.unsecure
: callModel.isSecured
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp && callModel.isPQZrtp == CallModel.CallPQStateOn
? IncallStyle.buttons.postQuantumSecure
: IncallStyle.buttons.secure2
: IncallStyle.buttons.secure
onColorSetChanged:console.log(colorSet.icon)
onClicked: if(callModel.encryption === CallModel.CallEncryptionZrtp){
window.attachVirtualWindow(Utils.buildLinphoneDialogUri('ZrtpTokenAuthenticationDialog'), {call:callModel})
}

View file

@ -179,7 +179,7 @@ DialogPlus {
: qsTr('updateConferenceTitle')
height: window.height - 100
width: window.width - 100
width: window.width - 50
expandHeight: true
// ---------------------------------------------------------------------------
@ -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