From 721b191fc6cdceb89b80b391a2bd96c13b605d72 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Fri, 9 Oct 2020 22:38:38 +0200 Subject: [PATCH] - Fix contact display names with special characters - Add vcard fields encoder/decoder - Fix Version file on Windows where identifier can be empty - Update SDK to master - Add artificats when failed (ci) --- .gitlab-ci-files/job-windows-desktop.yml | 1 + .../windows/appDetailsWindows.rc.in | 2 +- .../src/components/contact/VcardModel.cpp | 24 +++++++++++++++++-- .../src/components/contact/VcardModel.hpp | 3 +++ linphone-sdk | 2 +- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index 4a604faa3..0c8928582 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -25,6 +25,7 @@ artifacts: paths: - build\OUTPUT + when: always expire_in: 2 days job-windows-vs2017: diff --git a/linphone-app/cmake_builder/linphone_package/windows/appDetailsWindows.rc.in b/linphone-app/cmake_builder/linphone_package/windows/appDetailsWindows.rc.in index 3495f1f9c..1324ece2e 100644 --- a/linphone-app/cmake_builder/linphone_package/windows/appDetailsWindows.rc.in +++ b/linphone-app/cmake_builder/linphone_package/windows/appDetailsWindows.rc.in @@ -8,7 +8,7 @@ A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "assets/icon.ico" VS_VERSION_INFO VERSIONINFO PRODUCTVERSION ${version_major},${version_minor},${version_patch},0 - FILEVERSION ${version_major},${version_minor},${version_patch},${identifiers} + FILEVERSION ${version_major},${version_minor},${version_patch},0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG diff --git a/linphone-app/src/components/contact/VcardModel.cpp b/linphone-app/src/components/contact/VcardModel.cpp index a15b34d50..c71122a25 100644 --- a/linphone-app/src/components/contact/VcardModel.cpp +++ b/linphone-app/src/components/contact/VcardModel.cpp @@ -187,7 +187,7 @@ bool VcardModel::setAvatar (const QString &path) { // ----------------------------------------------------------------------------- QString VcardModel::getUsername () const { - return Utils::coreStringToAppString(mVcard->getFullName()); + return decode(QString::fromStdString(mVcard->getFullName()));// Is in UTF8 } void VcardModel::setUsername (const QString &username) { @@ -196,7 +196,7 @@ void VcardModel::setUsername (const QString &username) { if (username.length() == 0 || username == getUsername()) return; - mVcard->setFullName(Utils::appStringToCoreString(username)); + mVcard->setFullName(encode(username).toStdString()); emit vcardUpdated(); } @@ -505,3 +505,23 @@ bool VcardModel::updateUrl (const QString &oldUrl, const QString &url) { removeUrl(oldUrl); return addUrl(url); } + +QString VcardModel::encode(const QString& data)const{// Convert '\n', ',', '\' to "\n", "\,", "\\" + QString encoded; + for(int i = 0 ; i < data.length() ; ++i){ + if(data[i] == ',') + encoded += "\\,"; + else if(data[i] == '\\') + encoded += "\\\\"; + else if(data[i] == '\n') + encoded += "\\n"; + else + encoded += data[i]; + } + return encoded; +} +QString VcardModel::decode(const QString& data)const{// Convert "\n", "\,", "\\" to '\n', ',', '\' + QString decoded = data; + decoded.replace("\\,", ",").replace("\\\\", "\\").replace("\\n", "\n"); + return decoded; +} diff --git a/linphone-app/src/components/contact/VcardModel.hpp b/linphone-app/src/components/contact/VcardModel.hpp index 8dabe0ad2..f1a39beaa 100644 --- a/linphone-app/src/components/contact/VcardModel.hpp +++ b/linphone-app/src/components/contact/VcardModel.hpp @@ -98,6 +98,9 @@ public: // --------------------------------------------------------------------------- + QString encode(const QString& data)const;// Convert '\n', ',', '\' to "\n", "\,", "\\" + QString decode(const QString& data)const;// Convert "\n", "\,", "\\" to '\n', ',', '\' + signals: void vcardUpdated (); diff --git a/linphone-sdk b/linphone-sdk index ac52433b7..b37ed8c48 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit ac52433b7d18d9e1f100da8d937d5d93091edf6d +Subproject commit b37ed8c48d2a8effa053b9679c47d50111aad50b