diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b1925229..3fc140ef4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 4.4.1 - [undefined] + +## 4.4.2 - [undefined] + +### Added +- Based on LinphoneSDK 5.1.34 +- Add Sanitizer build. +- Version types selection for version checker. + +### Fixed +- Order messages from receiving time. +- Fix H264 download URL on Linux. +- Hide Admin status in One-to-one chats. + +## 4.4.1 - 2022-04-06 ### Fixed - Fix codec downloading on Windows and popup progress bar. diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index aec1f2d58..a766b2129 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -2908,6 +2908,21 @@ Klik her: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index f299840e9..aedbd4ea2 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -2908,6 +2908,21 @@ Klicken Sie hier: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 9b6ba4781..10bd9b5fc 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -2931,6 +2931,21 @@ Click here: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : Show a minimal version of what to display in timeline. + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + Release + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + Custom + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + Nightly + SettingsVideo diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 7c5fbdeb6..15c01b7bc 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -2908,6 +2908,21 @@ Haga clic aquí: <a href="%1">%1 </a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 3a30ce936..033c88fac 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -2908,6 +2908,21 @@ Cliquez ici : <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : Afficher une version minimaliste dans la zone de recherche des chronologies. + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index c02c4da55..a00dec125 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -2896,6 +2896,21 @@ Kattintson ide: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 5819772bb..66236b482 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -2908,6 +2908,21 @@ Clicca: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index 682963032..b23ad11da 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -2896,6 +2896,21 @@ 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index 5eeb7b923..e0715b41f 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -2920,6 +2920,21 @@ Spustelėkite čia: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 836dd885b..626d3da45 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -2908,6 +2908,21 @@ Clique aqui: <a href="%1">%1 </a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index ef78e475f..83c51c660 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -2920,6 +2920,21 @@ 'Show a minimal version of what to display in timeline.' : Показать минимальную версию того, что нужно отображать на временной шкале. + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index e400a6a2f..8ecc17d61 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -2908,6 +2908,21 @@ Klicka här: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 1f5d1b5e4..bc84f4281 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -2896,6 +2896,21 @@ Buraya tıklayın: <a href="%1">%1</a> 'Show a minimal version of what to display in timeline.' : Zaman çizelgesinde sunulacakların kısa sürümünü göster. + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 8327f8906..a9bc2cd6c 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -2920,6 +2920,21 @@ 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index f9693bd8b..d9b3f628e 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -2896,6 +2896,21 @@ 'Show a minimal version of what to display in timeline.' : + + versionCheckTypeRelease + 'Release' : Keyword for an option to check the release version + + + + versionCheckTypeCustom + 'Custom' : Keyword for an option to check the custom version + + + + versionCheckTypeNightly + 'Nightly' : Keyword for an option to check the nightly version + + SettingsVideo diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index 80910b960..97ac32d9c 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1384,13 +1384,42 @@ void SettingsModel::setCheckForUpdateEnabled(bool enable){ } QString SettingsModel::getVersionCheckUrl() const{ - return Utils::coreStringToAppString(mConfig->getString("misc", "version_check_url_root", Constants::VersionCheckUrl)); + return Utils::coreStringToAppString(mConfig->getString("misc", "version_check_url_root", Constants::VersionCheckReleaseUrl)); } void SettingsModel::setVersionCheckUrl(const QString& url){ - mConfig->setString("misc", "version_check_url_root", Utils::appStringToCoreString(url)); - emit versionCheckUrlChanged(); + if( url != getVersionCheckUrl()){ + mConfig->setString("misc", "version_check_url_root", Utils::appStringToCoreString(url)); + if( url == Constants::VersionCheckReleaseUrl) + setVersionCheckType(VersionCheckType_Release); + else if( url == Constants::VersionCheckNightlyUrl) + setVersionCheckType(VersionCheckType_Nightly); + else + setVersionCheckType(VersionCheckType_Custom); + emit versionCheckUrlChanged(); + } } + +SettingsModel::VersionCheckType SettingsModel::getVersionCheckType() const{ + return (SettingsModel::VersionCheckType) mConfig->getInt(UiSection, "version_check_type", (int)VersionCheckType_Release); +} + +void SettingsModel::setVersionCheckType(const VersionCheckType& type){ + if( type != getVersionCheckType()){ + mConfig->setInt(UiSection, "version_check_type", (int)type); + switch(type){ + case VersionCheckType_Release : setVersionCheckUrl(Constants::VersionCheckReleaseUrl); break; + case VersionCheckType_Nightly : setVersionCheckUrl(Constants::VersionCheckNightlyUrl);break; + case VersionCheckType_Custom : break;// Do not override URL + } + emit versionCheckTypeChanged(); + } +} + +bool SettingsModel::haveVersionNightlyUrl()const{ + return QString(Constants::VersionCheckNightlyUrl) != ""; +} + // ----------------------------------------------------------------------------- bool SettingsModel::getShowLocalSipAccount()const{ diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index bc9ab3b87..52e3c51d2 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -192,6 +192,7 @@ class SettingsModel : public QObject { Q_PROPERTY(bool exitOnClose READ getExitOnClose WRITE setExitOnClose NOTIFY exitOnCloseChanged) Q_PROPERTY(bool checkForUpdateEnabled READ isCheckForUpdateEnabled WRITE setCheckForUpdateEnabled NOTIFY checkForUpdateEnabledChanged) Q_PROPERTY(QString versionCheckUrl READ getVersionCheckUrl WRITE setVersionCheckUrl NOTIFY versionCheckUrlChanged) + Q_PROPERTY(VersionCheckType versionCheckType READ getVersionCheckType WRITE setVersionCheckType NOTIFY versionCheckTypeChanged) Q_PROPERTY(bool showLocalSipAccount READ getShowLocalSipAccount CONSTANT) Q_PROPERTY(bool showStartChatButton READ getShowStartChatButton CONSTANT) @@ -220,6 +221,13 @@ public: }; Q_ENUM(MediaEncryption) + enum VersionCheckType { + VersionCheckType_Release, + VersionCheckType_Nightly, + VersionCheckType_Custom + }; + Q_ENUM(VersionCheckType); + SettingsModel (QObject *parent = Q_NULLPTR); virtual ~SettingsModel (); @@ -515,6 +523,10 @@ public: QString getVersionCheckUrl() const; void setVersionCheckUrl(const QString& url); + VersionCheckType getVersionCheckType() const; + void setVersionCheckType(const VersionCheckType& type); + Q_INVOKABLE bool haveVersionNightlyUrl()const; + Q_INVOKABLE bool getShowLocalSipAccount () const; Q_INVOKABLE bool getShowStartChatButton () const; @@ -712,6 +724,7 @@ signals: void checkForUpdateEnabledChanged(); void versionCheckUrlChanged(); + void versionCheckTypeChanged(); // Advanced. ----------------------------------------------------------------- diff --git a/linphone-app/src/utils/Constants.cpp b/linphone-app/src/utils/Constants.cpp index af9462ac9..3d8364aa4 100644 --- a/linphone-app/src/utils/Constants.cpp +++ b/linphone-app/src/utils/Constants.cpp @@ -105,7 +105,8 @@ constexpr char Constants::DefaultContactParameters[]; constexpr char Constants::DefaultContactParametersOnRemove[]; constexpr int Constants::DefaultExpires; constexpr char Constants::DownloadUrl[]; -constexpr char Constants::VersionCheckUrl[]; +constexpr char Constants::VersionCheckReleaseUrl[]; +constexpr char Constants::VersionCheckNightlyUrl[]; constexpr char Constants::PasswordRecoveryUrl[]; constexpr char Constants::CguUrl[]; constexpr char Constants::PrivatePolicyUrl[]; diff --git a/linphone-app/src/utils/Constants.hpp b/linphone-app/src/utils/Constants.hpp index f42163154..95036d1b3 100644 --- a/linphone-app/src/utils/Constants.hpp +++ b/linphone-app/src/utils/Constants.hpp @@ -55,7 +55,8 @@ public: static constexpr char DefaultContactParametersOnRemove[] = "message-expires=0"; static constexpr int DefaultExpires = 3600; static constexpr char DownloadUrl[] = "https://www.linphone.org/technical-corner/linphone"; - static constexpr char VersionCheckUrl[] = "https://linphone.org/releases"; + static constexpr char VersionCheckReleaseUrl[] = "https://download.linphone.org/releases"; + static constexpr char VersionCheckNightlyUrl[] = "https://download.linphone.org/snapshots"; static constexpr char PasswordRecoveryUrl[] = "https://subscribe.linphone.org/login"; static constexpr char CguUrl[] = "https://www.linphone.org/general-terms"; static constexpr char PrivatePolicyUrl[] = "https://www.linphone.org/privacy-policy"; diff --git a/linphone-app/ui/modules/Common/Form/ComboBox.qml b/linphone-app/ui/modules/Common/Form/ComboBox.qml index 989ec896d..715e6d1ce 100644 --- a/linphone-app/ui/modules/Common/Form/ComboBox.qml +++ b/linphone-app/ui/modules/Common/Form/ComboBox.qml @@ -25,6 +25,7 @@ Controls.ComboBox { property int maxPopupHeight : rootItem ? rootItem.height : 400 property int selectionWidth: width + property int fitWidth: contentItem.fitWidth + ComboBoxStyle.indicator.dropDown.iconSize clip: true // --------------------------------------------------------------------------- @@ -48,6 +49,7 @@ Controls.ComboBox { // --------------------------------------------------------------------------- contentItem: Item { + property int fitWidth: contentText.implicitWidth + ComboBoxStyle.contentItem.iconSize + contentLayout.anchors.leftMargin height: comboBox.height width: comboBox.selectionWidth clip: true @@ -67,6 +69,7 @@ Controls.ComboBox { } Text { + id: contentText Layout.fillWidth: true color: comboBox.foregroundColor diff --git a/linphone-app/ui/views/App/Main/Conversation.qml b/linphone-app/ui/views/App/Main/Conversation.qml index 2e9f16df1..d556e353f 100644 --- a/linphone-app/ui/views/App/Main/Conversation.qml +++ b/linphone-app/ui/views/App/Main/Conversation.qml @@ -29,14 +29,15 @@ ColumnLayout { property ChatRoomModel chatRoomModel - property string peerAddress : chatRoomModel?chatRoomModel.getPeerAddress() : defaultPeerAddress + property string peerAddress : getPeerAddress() property string localAddress : chatRoomModel?chatRoomModel.getLocalAddress() : defaultLocalAddress - property string fullPeerAddress : chatRoomModel?chatRoomModel.getFullPeerAddress() : defaultFullPeerAddress + property string fullPeerAddress : getFullPeerAddress() property string fullLocalAddress : chatRoomModel?chatRoomModel.getFullLocalAddress() : defaultFullLocalAddress property int securityLevel : chatRoomModel ? chatRoomModel.securityLevel : 1 - property var _sipAddressObserver: SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), (fullLocalAddress?fullLocalAddress:localAddress)) + property SipAddressObserver _sipAddressObserver: SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), (fullLocalAddress?fullLocalAddress:localAddress)) + property bool haveMoreThanOneParticipants: chatRoomModel ? chatRoomModel.participants.count > 2 : false property bool haveLessThanMinParticipantsForCall: chatRoomModel ? chatRoomModel.participants.count <= 5 : false @@ -48,7 +49,18 @@ ColumnLayout { return chatRoomModel.sipAddress; } }else { - return conversation.fullPeerAddress || conversation.peerAddress || ''; + return defaultPeerAddress + } + } + function getFullPeerAddress() { + if(chatRoomModel) { + if(chatRoomModel.groupEnabled || chatRoomModel.isSecure()) { + return chatRoomModel.participants.addressesToString; + }else { + return chatRoomModel.sipAddress; + } + }else { + return defaultFullPeerAddress; } } @@ -313,7 +325,7 @@ ColumnLayout { visible: SettingsModel.contactsEnabled && !conversation.chatRoomModel.groupEnabled onClicked: window.setView('ContactEdit', { - sipAddress: conversation.getPeerAddress() + sipAddress: conversation.getFullPeerAddress() }) tooltipText: Logic.getEditTooltipText() } diff --git a/linphone-app/ui/views/App/Settings/SettingsUi.qml b/linphone-app/ui/views/App/Settings/SettingsUi.qml index 060f0820b..f3a2818aa 100644 --- a/linphone-app/ui/views/App/Settings/SettingsUi.qml +++ b/linphone-app/ui/views/App/Settings/SettingsUi.qml @@ -242,7 +242,7 @@ TabContainer { FormGroup { //: 'Check for updates' : Label switch for enabling check for updates label: qsTr('checkForUpdateLabel') - + maxWidth: 3*parent.width/2 RowLayout{ Switch { checked: SettingsModel.checkForUpdateEnabled @@ -255,6 +255,23 @@ TabContainer { onEditingFinished: SettingsModel.versionCheckUrl = text } + ComboBox{ + Layout.preferredWidth: fitWidth + Layout.leftMargin: 10 + //: 'Release' : Keyword for an option to check the release version + model: [qsTr('versionCheckTypeRelease'), + //: 'Nightly' : Keyword for an option to check the nightly version + qsTr('versionCheckTypeNightly'), + //: 'Custom' : Keyword for an option to check the custom version + qsTr('versionCheckTypeCustom')] + visible: SettingsModel.haveVersionNightlyUrl() + currentIndex: SettingsModel.versionCheckType == SettingsModel.VersionCheckType_Release ? 0 + : SettingsModel.versionCheckType == SettingsModel.VersionCheckType_Nightly ? 1 + : 2 + onActivated: SettingsModel.versionCheckType = ( currentIndex == 0 ? SettingsModel.VersionCheckType_Release + : currentIndex == 1 ? SettingsModel.VersionCheckType_Nightly + : SettingsModel.VersionCheckType_Custom) + } } } }