Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package linphoneqt for openSUSE:Factory checked in at 2021-11-23 22:10:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/linphoneqt (Old) and /work/SRC/openSUSE:Factory/.linphoneqt.new.1895 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linphoneqt" Tue Nov 23 22:10:32 2021 rev:5 rq:933176 version:4.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/linphoneqt/linphoneqt.changes 2021-11-17 01:14:24.994175759 +0100 +++ /work/SRC/openSUSE:Factory/.linphoneqt.new.1895/linphoneqt.changes 2021-11-23 22:12:46.566440235 +0100 @@ -1,0 +2,15 @@ +Mon Nov 22 15:31:13 UTC 2021 - Klaus K??mpf <[email protected]> + +- Require liblinphone-data (bsc#1181746) + +------------------------------------------------------------------- +Sun Nov 21 01:45:50 UTC 2021 - Giacomo Comes <[email protected]> - 4.3.2 + +- Update to version 4.3.2: + * ALSA volumes can be view/changed while being in call. + * Remove constraints on actions (call/chat) that were based on friends capabilities. + * Unblock secure group chat activation. + * Unselect current contact if history call view is displayed. + * Show chat actions in history view + +------------------------------------------------------------------- @@ -5,5 +20,9 @@ - * Feature: Reply to a message - * When removing all entries : delete all history and call logs - * Protect config from using contact if it doesn't exist while checking authentication - * Allow qml to have access to the Application Name - * Add a settings to change URL of version check + * A banner is shown when copying text. + * Options to enable standard and secure chats. + * Add tunnel support if build. + * Overhaul of color managment and use monochrome images. + * Change Contact Edit and SIP Addresses selections to start a standard chat or a secure one. + * Call history button in the timeline panel. + * Timeout of incoming call notification is now based on `inc_timeout` + * More actions in contact edit panel (call/video call). + * Allow to make a readonly variable in configuration (only for enabling chats yet). Old: ---- linphone-desktop-4.3.1.tar.bz2 New: ---- linphone-desktop-4.3.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linphoneqt.spec ++++++ --- /var/tmp/diff_new_pack.USVW2U/_old 2021-11-23 22:12:46.970438899 +0100 +++ /var/tmp/diff_new_pack.USVW2U/_new 2021-11-23 22:12:46.978438873 +0100 @@ -18,7 +18,7 @@ %define _name linphone Name: linphoneqt -Version: 4.3.1 +Version: 4.3.2 Release: 0 Summary: Qt interface for Linphone License: GPL-3.0-or-later @@ -61,6 +61,7 @@ %package -n %{_name} Summary: Web Phone Group: Productivity/Telephony/SIP/Clients +Requires: liblinphone-data Recommends: %{_name}-cli Obsoletes: %{_name}-lang < %{version} @@ -85,6 +86,10 @@ %build sed -i '/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/include/@%{buildroot}%{_includedir}/@;/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/lib/@%{buildroot}%{_libdir}/@' linphone-app/CMakeLists.txt +#fix install error for 4.3.2 +if [[ %version = 4.3.2 ]]; then + sed -i '/install(DIRECTORY.*linphone/d' linphone-app/cmake_builder/linphone_package/CMakeLists.txt +fi %cmake \ -DCMAKE_CXX_FLAGS="-fpermissive" \ -DCMAKE_BUILD_TYPE=Release \ ++++++ linphone-desktop-4.3.1.tar.bz2 -> linphone-desktop-4.3.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/CHANGELOG.md new/linphone-desktop-4.3.2/CHANGELOG.md --- old/linphone-desktop-4.3.1/CHANGELOG.md 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/CHANGELOG.md 2021-11-10 00:52:03.000000000 +0100 @@ -6,6 +6,17 @@ ## 4.4.0 - [Undefined] +## 4.3.2 - 2021-11-09 + +### Fixed + +- ALSA volumes can be view/changed while being in call. +- Remove constraints on actions (call/chat) that were based on friends capabilities. +- Unblock secure group chat activation. +- Unselect current contact if history call view is displayed. +- Show chat actions in history view +- Group chat creation : If no groupchat capabilities has been found in recent contacts, ignore test on capability and display them. + ## 4.3.1 - 2021-11-04 ### Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/CMakeLists.txt new/linphone-desktop-4.3.2/CMakeLists.txt --- old/linphone-desktop-4.3.1/CMakeLists.txt 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/CMakeLists.txt 2021-11-10 00:52:03.000000000 +0100 @@ -113,6 +113,8 @@ option(ENABLE_DAEMON "Enable the linphone daemon interface." NO) option(ENABLE_CONSOLE_UI "Turn on or off compilation of console interface." NO) +option(ENABLE_APP_LICENSE "Enable the license in packages." YES) + @@ -138,6 +140,8 @@ list(APPEND APP_OPTIONS "-DENABLE_DAEMON=${ENABLE_DAEMON}") list(APPEND APP_OPTIONS "-DENABLE_CONSOLE_UI=${ENABLE_CONSOLE_UI}") list(APPEND APP_OPTIONS "-DENABLE_VIDEO=${ENABLE_VIDEO}") +list(APPEND APP_OPTIONS "-DENABLE_APP_LICENSE=${ENABLE_APP_LICENSE}") + if(ENABLE_V4L) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/assets/languages/hu.ts new/linphone-desktop-4.3.2/linphone-app/assets/languages/hu.ts --- old/linphone-desktop-4.3.1/linphone-app/assets/languages/hu.ts 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/assets/languages/hu.ts 2021-11-10 00:52:03.000000000 +0100 @@ -532,6 +532,16 @@ <extracomment>'Hide delivery status' : Item menu that lead to IMDN of a message</extracomment> <translation>K??zbes??t??si ??llapot elrejt??se</translation> </message> + <message> + <source>menuForward</source> + <extracomment>'Forward' : Forward a message from menu</extracomment> + <translation>Tov??bb??t??s</translation> + </message> + <message> + <source>menuReply</source> + <extracomment>'Reply' : Reply to a message from menu</extracomment> + <translation>V??lasz</translation> + </message> </context> <context> <name>ChatNoticeModel</name> @@ -561,6 +571,22 @@ </message> </context> <context> + <name>ChatReplyMessage</name> + <message> + <source>headerReply</source> + <extracomment>'Reply' : Header on a message that contains a reply.</extracomment> + <translation>V??lasz</translation> + </message> +</context> +<context> + <name>ChatReplyPreview</name> + <message> + <source>titleReply</source> + <extracomment>'Reply to %1' : Title for a reply preview to know who said what.</extracomment> + <translation>V??laszul erre: %1</translation> + </message> +</context> +<context> <name>Cli</name> <message> <source>appCliDescription</source> @@ -2519,17 +2545,17 @@ <message> <source>mipmapLabel</source> <extracomment>'Enable Mipmap'</extracomment> - <translation type="unfinished"></translation> + <translation>Mipmap enged??lyez??se</translation> </message> <message> <source>mipmapTooltip1</source> <extracomment>'This property holds whether the image uses mipmap filtering when scaled or transformed.' : first line of a tooltip about Mipmap mode.</extracomment> - <translation type="unfinished"></translation> + <translation>Ez a tulajdons??g megmarad, f??ggetlen??l att??l, hogy a k??p mipmap-sz??r??st haszn??l-e m??retez??skor vagy ??talak??t??skor.</translation> </message> <message> <source>mipmapTooltip2</source> <extracomment>'Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).' : Second line of a tooltip about Mipmap mode.</extracomment> - <translation type="unfinished"></translation> + <translation>A mipmap-sz??r??s jobb vizu??lis min??s??get biztos??t kicsiny??t??skor, mint a sima, de teljes??tm??nyk??lts??ggel j??rhat (mind a k??p inicializ??l??sakor, mind a renderel??s sor??n).</translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/cmake_builder/linphone_package/CMakeLists.txt new/linphone-desktop-4.3.2/linphone-app/cmake_builder/linphone_package/CMakeLists.txt --- old/linphone-desktop-4.3.1/linphone-app/cmake_builder/linphone_package/CMakeLists.txt 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/cmake_builder/linphone_package/CMakeLists.txt 2021-11-10 00:52:03.000000000 +0100 @@ -133,7 +133,7 @@ file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*") install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" ) install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL) - install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds/linphone/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/sounds/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS) install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/") install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}") @@ -194,7 +194,7 @@ file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*") install(FILES ${GRAMMAR_FILES} DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/") install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL) - install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds/linphone/" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/sounds/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS) install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}") install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}") @@ -266,6 +266,13 @@ install(FILES ${SHARED_LIBRARIES} DESTINATION "lib64") endif() install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS + PATTERN "linphone" EXCLUDE + PATTERN "sounds" EXCLUDE + ) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/linphone/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds/linphone/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/sounds/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS) + if(ENABLE_BUILD_VERBOSE) message("INSTALLATION : ${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" ) endif() @@ -341,7 +348,14 @@ set(CPACK_PACKAGE_VERSION_PATCH ${LINPHONE_MICRO_VERSION}) endif () set(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};${APPLICATION_NAME}") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../../../LICENSE.txt") + + if(ENABLE_APP_LICENSE) + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../../../LICENSE.txt") + else() + unset(CPACK_RESOURCE_FILE_LICENSE) + endif() + set(CPACK_RESOURCE_FILE_LICENSE_PROVIDED ENABLE_APP_LICENSE) + set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}") set(CPACK_PACKAGE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/Packages") set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/icon.ico") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/cmake_builder/linphone_package/windows/NSIS.template.in new/linphone-desktop-4.3.2/linphone-app/cmake_builder/linphone_package/windows/NSIS.template.in --- old/linphone-desktop-4.3.1/linphone-app/cmake_builder/linphone_package/windows/NSIS.template.in 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/cmake_builder/linphone_package/windows/NSIS.template.in 2021-11-10 00:52:03.000000000 +0100 @@ -549,7 +549,10 @@ ;Pages !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@" + !if @CPACK_RESOURCE_FILE_LICENSE_PROVIDED@ + !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@" + !endif + Page custom InstallOptionsPage !insertmacro MUI_PAGE_DIRECTORY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/app/App.cpp new/linphone-desktop-4.3.2/linphone-app/src/app/App.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/app/App.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/app/App.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -372,8 +372,18 @@ mEngine->addImageProvider(ExternalImageProvider::ProviderId, new ExternalImageProvider()); mEngine->addImageProvider(ThumbnailProvider::ProviderId, new ThumbnailProvider()); + mEngine->rootContext()->setContextProperty("applicationName", APPLICATION_NAME); +#ifdef APPLICATION_URL mEngine->rootContext()->setContextProperty("applicationUrl", APPLICATION_URL); +#else + mEngine->rootContext()->setContextProperty("applicationUrl", ""); +#endif + +#ifdef APPLICATION_VENDOR mEngine->rootContext()->setContextProperty("applicationVendor", APPLICATION_VENDOR); +#else + mEngine->rootContext()->setContextProperty("applicationVendor", ""); +#endif #ifdef APPLICATION_LICENCE mEngine->rootContext()->setContextProperty("applicationLicence", APPLICATION_LICENCE); #else @@ -862,7 +872,7 @@ "Exec=" + exec + " --iconified\n" "Terminal=false\n" "Categories=Network;Telephony;\n" - "MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;\n" + "MimeType=x-scheme-handler/sip-" EXECUTABLE_NAME ";x-scheme-handler/sip;x-scheme-handler/sips-" EXECUTABLE_NAME ";x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;\n" ); mAutoStart = enabled; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/app/paths/Paths.cpp new/linphone-desktop-4.3.2/linphone-app/src/app/paths/Paths.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/app/paths/Paths.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/app/paths/Paths.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -227,6 +227,10 @@ return writable ? getWritableFilePath(path) : getReadableFilePath(path); } +std::string Paths::getDatabaseFilePath (){ + return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)) + Constants::PathDatabase; +} + string Paths::getFactoryConfigFilePath () { return getReadableFilePath(getAppFactoryConfigFilePath()); } @@ -239,6 +243,10 @@ return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); } +std::string Paths::getLimeDatabasePath (){ + return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)) + Constants::PathLimeDatabase; +} + string Paths::getLogsDirPath () { return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + Constants::PathLogs); } @@ -259,6 +267,10 @@ return getReadableDirPath(getAppPackagePluginsDirPath() + Constants::PathPluginsApp); } +std::string Paths::getPackageSoundsResourcesDirPath (){ + return getReadableDirPath(getAppPackageDataDirPath() + Constants::PathSounds); +} + string Paths::getPluginsAppDirPath () { return getWritableDirPath(getAppPluginsDirPath() + Constants::PathPluginsApp); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/app/paths/Paths.hpp new/linphone-desktop-4.3.2/linphone-app/src/app/paths/Paths.hpp --- old/linphone-desktop-4.3.1/linphone-app/src/app/paths/Paths.hpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/app/paths/Paths.hpp 2021-11-10 00:52:03.000000000 +0100 @@ -36,14 +36,17 @@ std::string getCodecsDirPath (); std::string getConfigDirPath (bool writable = true); std::string getConfigFilePath (const QString &configPath = QString(), bool writable = true); + std::string getDatabaseFilePath (); std::string getDownloadDirPath (); std::string getFactoryConfigFilePath (); std::string getFriendsListFilePath (); + std::string getLimeDatabasePath (); std::string getLogsDirPath (); std::string getMessageHistoryFilePath (); std::string getPackageDataDirPath (); std::string getPackageMsPluginsDirPath (); std::string getPackagePluginsAppDirPath (); + std::string getPackageSoundsResourcesDirPath (); std::string getPluginsAppDirPath (); QStringList getPluginsAppFolders(); std::string getRootCaFilePath (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/components/call/CallModel.cpp new/linphone-desktop-4.3.2/linphone-app/src/components/call/CallModel.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/components/call/CallModel.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/components/call/CallModel.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -199,22 +199,34 @@ // ----------------------------------------------------------------------------- float CallModel::getSpeakerVolumeGain () const { - return mCall->getSpeakerVolumeGain(); + float gain = mCall->getSpeakerVolumeGain(); + if( gain < 0) + gain = CoreManager::getInstance()->getSettingsModel()->getPlaybackGain(); + return gain; } void CallModel::setSpeakerVolumeGain (float volume) { Q_ASSERT(volume >= 0.0f && volume <= 1.0f); - mCall->setSpeakerVolumeGain(volume); + if( mCall->getSpeakerVolumeGain() >= 0) + mCall->setSpeakerVolumeGain(volume); + else + CoreManager::getInstance()->getSettingsModel()->setPlaybackGain(volume); emit speakerVolumeGainChanged(getSpeakerVolumeGain()); } float CallModel::getMicroVolumeGain () const { - return mCall->getMicrophoneVolumeGain(); + float gain = mCall->getMicrophoneVolumeGain(); + if( gain < 0) + gain = CoreManager::getInstance()->getSettingsModel()->getCaptureGain(); + return gain; } void CallModel::setMicroVolumeGain (float volume) { Q_ASSERT(volume >= 0.0f && volume <= 1.0f); - mCall->setMicrophoneVolumeGain(volume); + if(mCall->getMicrophoneVolumeGain() >= 0) + mCall->setMicrophoneVolumeGain(volume); + else + CoreManager::getInstance()->getSettingsModel()->setCaptureGain(volume); emit microVolumeGainChanged(getMicroVolumeGain()); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/components/core/CoreManager.cpp new/linphone-desktop-4.3.2/linphone-app/src/components/core/CoreManager.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/components/core/CoreManager.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/components/core/CoreManager.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -208,14 +208,11 @@ // ----------------------------------------------------------------------------- void CoreManager::setOtherPaths () { - if (mCore->getZrtpSecretsFile().empty() || !Paths::filePathExists(mCore->getZrtpSecretsFile(), true)) - mCore->setZrtpSecretsFile(Paths::getZrtpSecretsFilePath()); + mCore->setZrtpSecretsFile(Paths::getZrtpSecretsFilePath()); qInfo() << "Using ZrtpSecrets path : " << QString::fromStdString(mCore->getZrtpSecretsFile()); - if (mCore->getUserCertificatesPath().empty() || !Paths::filePathExists(mCore->getUserCertificatesPath(), true)) - mCore->setUserCertificatesPath(Paths::getUserCertificatesDirPath()); + mCore->setUserCertificatesPath(Paths::getUserCertificatesDirPath()); qInfo() << "Using UserCertificate path : " << QString::fromStdString(mCore->getUserCertificatesPath()); - if (mCore->getRootCa().empty() || !Paths::filePathExists(mCore->getRootCa())) - mCore->setRootCa(Paths::getRootCaFilePath()); + mCore->setRootCa(Paths::getRootCaFilePath()); qInfo() << "Using RootCa path : " << QString::fromStdString(mCore->getRootCa()); } @@ -223,6 +220,7 @@ shared_ptr<linphone::Factory> factory = linphone::Factory::get(); factory->setMspluginsDir(Paths::getPackageMsPluginsDirPath()); factory->setTopResourcesDir(Paths::getPackageDataDirPath()); + factory->setSoundResourcesDir(Paths::getPackageSoundsResourcesDirPath()); } // ----------------------------------------------------------------------------- @@ -258,11 +256,15 @@ // Force capture/display. // Useful if the app was built without video support. // (The capture/display attributes are reset by the core in this case.) + shared_ptr<linphone::Config> config = mCore->getConfig(); if (mCore->videoSupported()) { - shared_ptr<linphone::Config> config = mCore->getConfig(); config->setInt("video", "capture", 1); config->setInt("video", "display", 1); } + if(!config->hasEntry("storage", "uri")) + config->setString("storage", "uri", Paths::getDatabaseFilePath()); + if(!config->hasEntry("lime", "x3dh_db_path")) + config->setString("lime", "x3dh_db_path", Paths::getLimeDatabasePath()); mCore->start(); setDatabasesPaths(); setOtherPaths(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/components/settings/SettingsModel.cpp new/linphone-desktop-4.3.2/linphone-app/src/components/settings/SettingsModel.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/components/settings/SettingsModel.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/components/settings/SettingsModel.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -224,6 +224,7 @@ } void SettingsModel::setPlaybackGain(float gain) { + CoreManager::getInstance()->getCore()->setPlaybackGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setPlaybackGain(gain); } @@ -235,6 +236,7 @@ } void SettingsModel::setCaptureGain(float gain) { + CoreManager::getInstance()->getCore()->setMicGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setCaptureGain(gain); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/components/timeline/TimelineListModel.cpp new/linphone-desktop-4.3.2/linphone-app/src/components/timeline/TimelineListModel.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/components/timeline/TimelineListModel.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/components/timeline/TimelineListModel.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -154,24 +154,27 @@ QVariantList TimelineListModel::getLastChatRooms(const int& maxCount) const{ QVariantList contacts; QMultiMap<qint64, ChatRoomModel*> sortedData; - int count = 0; - QDateTime currentDateTime = QDateTime::currentDateTime(); + bool doTest = true; for(auto timeline : mTimelines){ auto chatRoom = timeline->getChatRoomModel(); - if(chatRoom && chatRoom->isCurrentProxy() && !chatRoom->isGroupEnabled() && !chatRoom->haveEncryption()) { + if(chatRoom && chatRoom->isCurrentProxy() && chatRoom->isOneToOne() && !chatRoom->haveEncryption()) { sortedData.insert(chatRoom->mLastUpdateTime.secsTo(currentDateTime),chatRoom); } } - for(auto contact : sortedData){ - if(Utils::hasCapability(contact->getFullPeerAddress(), LinphoneEnums::FriendCapabilityGroupChat) ) { - ++count; - contacts << QVariant::fromValue(contact); - if(count >= maxCount) - return contacts; + do{ + int count = 0; + for(auto contact : sortedData){ + if(!doTest || Utils::hasCapability(contact->getFullPeerAddress(), LinphoneEnums::FriendCapabilityGroupChat) ) { + ++count; + contacts << QVariant::fromValue(contact); + if(count >= maxCount) + return contacts; + } } - } + doTest = false; + }while( contacts.size() == 0 && sortedData.size() > 0);// no friends capability have been found : take contacts without testing capabilities. return contacts; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/utils/Constants.cpp new/linphone-desktop-4.3.2/linphone-app/src/utils/Constants.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/utils/Constants.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/utils/Constants.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -40,14 +40,17 @@ constexpr char Constants::PathPlugins[]; #endif constexpr char Constants::PathPluginsApp[]; +constexpr char Constants::PathSounds[]; constexpr char Constants::PathThumbnails[]; constexpr char Constants::PathUserCertificates[]; constexpr char Constants::PathCallHistoryList[]; constexpr char Constants::PathConfig[]; +constexpr char Constants::PathDatabase[]; constexpr char Constants::PathFactoryConfig[]; constexpr char Constants::PathRootCa[]; constexpr char Constants::PathFriendsList[]; +constexpr char Constants::PathLimeDatabase[]; constexpr char Constants::PathMessageHistoryList[]; constexpr char Constants::PathZrtpSecrets[]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/utils/Constants.hpp new/linphone-desktop-4.3.2/linphone-app/src/utils/Constants.hpp --- old/linphone-desktop-4.3.1/linphone-app/src/utils/Constants.hpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/utils/Constants.hpp 2021-11-10 00:52:03.000000000 +0100 @@ -86,14 +86,17 @@ static constexpr char PathPlugins[] = "/plugins/"; #endif static constexpr char PathPluginsApp[] = "app/"; + static constexpr char PathSounds[] = "/sounds/" EXECUTABLE_NAME; static constexpr char PathThumbnails[] = "/thumbnails/"; static constexpr char PathUserCertificates[] = "/usr-crt/"; static constexpr char PathCallHistoryList[] = "/call-history.db"; static constexpr char PathConfig[] = "/linphonerc"; + static constexpr char PathDatabase[] = "/" EXECUTABLE_NAME ".db"; static constexpr char PathFactoryConfig[] = "/" EXECUTABLE_NAME "/linphonerc-factory"; static constexpr char PathRootCa[] = "/" EXECUTABLE_NAME "/rootca.pem"; static constexpr char PathFriendsList[] = "/friends.db"; + static constexpr char PathLimeDatabase[] = "/x3dh.c25519.sqlite3"; static constexpr char PathMessageHistoryList[] = "/message-history.db"; static constexpr char PathZrtpSecrets[] = "/zidcache"; @@ -114,7 +117,7 @@ static constexpr char QtDomain[] = "qt"; static constexpr char SrcPattern[] = "/src/"; - static constexpr char VcardScheme[] = "linphone-desktop:/"; + static constexpr char VcardScheme[] = EXECUTABLE_NAME "-desktop:/"; static constexpr int CbsCallInterval = 20; static constexpr char RcVersionName[] = "rc_version"; static constexpr int RcVersionCurrent = 2;// 2 = Conference URI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/src/utils/Utils.cpp new/linphone-desktop-4.3.2/linphone-app/src/utils/Utils.cpp --- old/linphone-desktop-4.3.1/linphone-app/src/utils/Utils.cpp 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/src/utils/Utils.cpp 2021-11-10 00:52:03.000000000 +0100 @@ -76,7 +76,7 @@ if(contact) return contact->hasCapability(capability); else - return true; + return false; } QString Utils::toDateTimeString(QDateTime date){ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml 2021-11-10 00:52:03.000000000 +0100 @@ -88,7 +88,7 @@ colorSet: SettingsModel.getShowStartChatButton() ? SipAddressesViewStyle.chat : SipAddressesViewStyle.history, secure: 1, visible: SettingsModel.secureChatEnabled && AccountSettingsModel.conferenceURI != '', - visibleHandler : function(entry) { + secureIconVisibleHandler : function(entry) { if(entry) return UtilsCpp.hasCapability(entry.sipAddress ? entry.sipAddress : entry, LinphoneEnums.FriendCapabilityLimeX3Dh); else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml 2021-11-10 00:52:03.000000000 +0100 @@ -120,11 +120,20 @@ isCustom: true backgroundRadius: 90 colorSet: modelData.colorSet - visible: (sipAddressesView.actions[index].visibleHandler ? sipAddressesView.actions[index].visibleHandler($sipAddress) : sipAddressesView.actions[index].visible) + visible: sipAddressesView.actions[index].visible onClicked: sipAddressesView.actions[index].handler({ sipAddress: sipAddressesView.interpretableSipAddress }) + Icon{ + visible: modelData.secure>0 && + (sipAddressesView.actions[index].secureIconVisibleHandler ? sipAddressesView.actions[index].secureIconVisibleHandler($sipAddress) : true) + icon:modelData.secure === 2?'secure_level_2':'secure_level_1' + iconSize:15 + anchors.right:parent.right + anchors.top:parent.top + anchors.topMargin: -3 + } } } } @@ -282,12 +291,13 @@ colorSet: modelData.colorSet anchors.verticalCenter: parent.verticalCenter tooltipText:modelData.tooltipText?modelData.tooltipText:'' - visible: (sipAddressesView.actions[index].visibleHandler ? sipAddressesView.actions[index].visibleHandler($sipAddress) : sipAddressesView.actions[index].visible) + visible: sipAddressesView.actions[index].visible onClicked: { sipAddressesView.actions[index].handler(contactView.entry) } Icon{ - visible: modelData.secure>0 + visible: modelData.secure>0 && + (sipAddressesView.actions[index].secureIconVisibleHandler ? sipAddressesView.actions[index].secureIconVisibleHandler($sipAddress) : true) icon:modelData.secure === 2?'secure_level_2':'secure_level_1' iconSize:15 anchors.right:parent.right diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml 2021-11-10 00:52:03.000000000 +0100 @@ -122,13 +122,14 @@ backgroundRadius: 90 colorSet: modelData.colorSet - visible: (sipAddressesView.actions[index].visibleHandler ? sipAddressesView.actions[index].visibleHandler({ sipAddress : sipAddressesView.interpretableSipAddress}) : sipAddressesView.actions[index].visible) + visible: sipAddressesView.actions[index].visible onClicked: sipAddressesView.actions[index].handler({ sipAddress: sipAddressesView.interpretableSipAddress }) Icon{ - visible: modelData.secure>0 + visible: modelData.secure>0 && + (sipAddressesView.actions[index].secureIconVisibleHandler ? sipAddressesView.actions[index].secureIconVisibleHandler({ sipAddress : sipAddressesView.interpretableSipAddress}) : true) icon: 'secure_on' iconSize:15 anchors.right:parent.right @@ -281,12 +282,13 @@ backgroundRadius: 90 colorSet: modelData.colorSet tooltipText:modelData.tooltipText?modelData.tooltipText:'' - visible: (sipAddressesView.actions[index].visibleHandler ? sipAddressesView.actions[index].visibleHandler($sipAddress) : sipAddressesView.actions[index].visible) + visible: sipAddressesView.actions[index].visible onClicked: { sipAddressesView.actions[index].handler($sipAddress) } Icon{ - visible: modelData.secure>0 + visible: modelData.secure>0 && + (sipAddressesView.actions[index].secureIconVisibleHandler ? sipAddressesView.actions[index].secureIconVisibleHandler($sipAddress) : true) icon: 'secure_on' iconSize:15 anchors.right:parent.right diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/ContactEdit.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/ContactEdit.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/ContactEdit.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/ContactEdit.qml 2021-11-10 00:52:03.000000000 +0100 @@ -186,7 +186,7 @@ isCustom: true backgroundRadius: 90 colorSet: SettingsModel.getShowStartChatButton() ? ContactEditStyle.chat : ContactEditStyle.history - visible: SettingsModel.secureChatEnabled && _contact && _contact.hasCapability(LinphoneEnums.FriendCapabilityLimeX3Dh) + visible: SettingsModel.secureChatEnabled enabled: AccountSettingsModel.conferenceURI != '' Icon{ icon:'secure_level_1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Contacts.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Contacts.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Contacts.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Contacts.qml 2021-11-10 00:52:03.000000000 +0100 @@ -164,7 +164,7 @@ isCustom: true backgroundRadius: 90 colorSet: SettingsModel.getShowStartChatButton() ? ContactsStyle.chat : ContactsStyle.history - visible: SettingsModel.secureChatEnabled && $contact.hasCapability(LinphoneEnums.FriendCapabilityLimeX3Dh) + visible: SettingsModel.secureChatEnabled enabled: AccountSettingsModel.conferenceURI != '' Icon{ icon:'secure_level_1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Conversation.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Conversation.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Conversation.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Conversation.qml 2021-11-10 00:52:03.000000000 +0100 @@ -277,7 +277,7 @@ isCustom: true backgroundRadius: 1000 colorSet: ConversationStyle.bar.actions.chat - visible: SettingsModel.secureChatEnabled && SettingsModel.getShowStartChatButton() && !conversation.haveMoreThanOneParticipants && conversation.securityLevel == 1 && UtilsCpp.hasCapability(conversation.peerAddress, LinphoneEnums.FriendCapabilityLimeX3Dh) + visible: SettingsModel.secureChatEnabled && SettingsModel.getShowStartChatButton() && !conversation.haveMoreThanOneParticipants && conversation.securityLevel == 1 onClicked: CallsListModel.launchChat(chatRoomModel.participants.addressesToString, 1) Icon{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml 2021-11-10 00:52:03.000000000 +0100 @@ -89,9 +89,9 @@ colorSet: InfoChatRoomStyle.addParticipant, secure: chatRoomModel.haveEncryption, visible: true, - visibleHandler : function(entry) { - return !chatRoomModel.haveEncryption || UtilsCpp.hasCapability(entry.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh); - }, + secureIconVisibleHandler : function(entry) { + return chatRoomModel.haveEncryption && UtilsCpp.hasCapability(entry.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh); + }, handler: function (entry) { selectedParticipants.addAddress(entry.sipAddress) }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml 2021-11-10 00:52:03.000000000 +0100 @@ -123,8 +123,9 @@ onClicked: { var newCheck = checked - if(! ( SettingsModel.standardChatEnabled && !checked || SettingsModel.secureChatEnabled && checked)) + if(SettingsModel.standardChatEnabled && checked || SettingsModel.secureChatEnabled && !checked) newCheck = !checked; +/* Uncomment if we need to remove participants that doesn't have the capability (was commented because we cannot get capabilities in all cases) if(newCheck){ // Remove all participants that have not the capabilities var participants = selectedParticipants.getParticipants() for(var index in participants){ @@ -132,6 +133,7 @@ participantView.removeParticipant(participants[index]) } } +*/ checked = newCheck; } indicatorStyle: SwitchStyle.aux @@ -310,17 +312,14 @@ placeholderText: qsTr('participantSelectionPlaceholder') //: 'Search in your contacts or add a custom one to the chat room.' tooltipText: qsTr('participantSelectionTooltip') - function isUsable(sipAddress){ - return UtilsCpp.hasCapability(sipAddress, LinphoneEnums.FriendCapabilityGroupChat) && - (secureSwitch.checked ? UtilsCpp.hasCapability(sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh) : true); - } + actions:[{ colorSet: NewChatRoomStyle.addParticipant, secure: secureSwitch.checked, visible: true, - visibleHandler : function(entry) { - return isUsable(entry.sipAddress) - }, + secureIconVisibleHandler : function(entry) { + return UtilsCpp.hasCapability(entry.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh) + }, handler: function (entry) { selectedParticipants.addAddress(entry.sipAddress) smartSearchBar.addAddressToIgnore(entry.sipAddress); @@ -329,11 +328,9 @@ }] onEntryClicked: { - if( isUsable(entry)){ selectedParticipants.addAddress(entry) smartSearchBar.addAddressToIgnore(entry); ++lastContacts.reloadCount - } } } Text{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/HistoryView.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/HistoryView.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/HistoryView.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/HistoryView.qml 2021-11-10 00:52:03.000000000 +0100 @@ -12,143 +12,166 @@ // ============================================================================= ColumnLayout { - id: historyView - - property string peerAddress - property string fullPeerAddress - - readonly property var _sipAddressObserver: peerAddress?SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), ''):null - - - // --------------------------------------------------------------------------- - - spacing: 0 - - // --------------------------------------------------------------------------- - // Contact bar. - // --------------------------------------------------------------------------- - - Rectangle { - Layout.fillWidth: true - Layout.preferredHeight: peerAddress?HistoryViewStyle.bar.height:HistoryViewStyle.bar.height/2 - - color: HistoryViewStyle.bar.backgroundColor - - RowLayout { - anchors { - fill: parent - leftMargin: HistoryViewStyle.bar.leftMargin - rightMargin: HistoryViewStyle.bar.rightMargin - } - spacing: HistoryViewStyle.bar.spacing - - layoutDirection: peerAddress?Qt.LeftToRight :Qt.RightToLeft - - Avatar { - id: avatar - - Layout.preferredHeight: HistoryViewStyle.bar.avatarSize - Layout.preferredWidth: HistoryViewStyle.bar.avatarSize - - image: peerAddress?Logic.getAvatar():null - - presenceLevel: historyView._sipAddressObserver?Presence.getPresenceLevel( - historyView._sipAddressObserver.presenceStatus - ):null - - username: peerAddress? UtilsCpp.getDisplayName(historyView._sipAddressObserver.peerAddress):null - visible:peerAddress - } - - ContactDescription { - Layout.fillHeight: true - Layout.fillWidth: true - - sipAddress: historyView.peerAddress - sipAddressColor: HistoryViewStyle.bar.description.sipAddressColor - username: avatar.username - usernameColor: HistoryViewStyle.bar.description.usernameColor - visible:peerAddress - } - - Row { - Layout.fillHeight: true - - spacing: HistoryViewStyle.bar.actions.spacing - - ActionBar { - anchors.verticalCenter: parent.verticalCenter - iconSize: HistoryViewStyle.bar.actions.call.iconSize - - ActionButton { - isCustom: true - backgroundRadius: 90 - colorSet: HistoryViewStyle.videoCall - visible: peerAddress && SettingsModel.videoSupported && SettingsModel.outgoingCallsEnabled && SettingsModel.showStartVideoCallButton - - onClicked: CallsListModel.launchVideoCall(historyView.peerAddress) - } - - ActionButton { - isCustom: true - backgroundRadius: 90 - colorSet: HistoryViewStyle.call - visible: peerAddress && SettingsModel.outgoingCallsEnabled - - onClicked: CallsListModel.launchAudioCall(historyView.peerAddress) - } - } - - ActionBar { - anchors.verticalCenter: parent.verticalCenter - - ActionButton { - isCustom: true - backgroundRadius: 4 - colorSet: historyView._sipAddressObserver && historyView._sipAddressObserver.contact ? ConversationStyle.bar.actions.edit.viewContact : ConversationStyle.bar.actions.edit.addContact - iconSize: HistoryViewStyle.bar.actions.edit.iconSize - visible: peerAddress && SettingsModel.contactsEnabled - - onClicked: window.setView('ContactEdit', { sipAddress: historyView.peerAddress }) - tooltipText: peerAddress?Logic.getEditTooltipText():'' - } - - ActionButton { - isCustom: true - backgroundRadius: 90 - colorSet: HistoryViewStyle.deleteAction - - onClicked: Logic.removeAllEntries() - - tooltipText: qsTr('cleanHistory') - } - } - } - } - } - - // --------------------------------------------------------------------------- - // History. - // --------------------------------------------------------------------------- - - History { - Layout.fillHeight: true - Layout.fillWidth: true - - onEntryClicked:{ - historyView.fullPeerAddress=sipAddress - historyView.peerAddress=sipAddress - historyProxyModel.resetMessageCount() - } - - proxyModel: HistoryProxyModel { - id: historyProxyModel - - Component.onCompleted: { - setEntryTypeFilter() - resetMessageCount() - } - } - } - + id: historyView + + property string peerAddress + property string fullPeerAddress + + readonly property var _sipAddressObserver: peerAddress?SipAddressesModel.getSipAddressObserver((fullPeerAddress?fullPeerAddress:peerAddress), ''):null + + + // --------------------------------------------------------------------------- + + spacing: 0 + + // --------------------------------------------------------------------------- + // Contact bar. + // --------------------------------------------------------------------------- + + Rectangle { + Layout.fillWidth: true + Layout.preferredHeight: peerAddress?HistoryViewStyle.bar.height:HistoryViewStyle.bar.height/2 + + color: HistoryViewStyle.bar.backgroundColor + + RowLayout { + anchors { + fill: parent + leftMargin: HistoryViewStyle.bar.leftMargin + rightMargin: HistoryViewStyle.bar.rightMargin + } + spacing: HistoryViewStyle.bar.spacing + + layoutDirection: peerAddress?Qt.LeftToRight :Qt.RightToLeft + + Avatar { + id: avatar + + Layout.preferredHeight: HistoryViewStyle.bar.avatarSize + Layout.preferredWidth: HistoryViewStyle.bar.avatarSize + + image: peerAddress?Logic.getAvatar():null + + presenceLevel: historyView._sipAddressObserver?Presence.getPresenceLevel( + historyView._sipAddressObserver.presenceStatus + ):null + + username: peerAddress? UtilsCpp.getDisplayName(historyView._sipAddressObserver.peerAddress):null + visible:peerAddress + } + + ContactDescription { + Layout.fillHeight: true + Layout.fillWidth: true + + sipAddress: historyView.peerAddress + sipAddressColor: HistoryViewStyle.bar.description.sipAddressColor + username: avatar.username + usernameColor: HistoryViewStyle.bar.description.usernameColor + visible:peerAddress + } + + Row { + Layout.fillHeight: true + + spacing: HistoryViewStyle.bar.actions.spacing + + ActionBar { + anchors.verticalCenter: parent.verticalCenter + iconSize: HistoryViewStyle.bar.actions.call.iconSize + + ActionButton { + isCustom: true + backgroundRadius: 90 + colorSet: HistoryViewStyle.videoCall + visible: peerAddress && SettingsModel.videoSupported && SettingsModel.outgoingCallsEnabled && SettingsModel.showStartVideoCallButton + + onClicked: CallsListModel.launchVideoCall(historyView.peerAddress) + } + + ActionButton { + isCustom: true + backgroundRadius: 90 + colorSet: HistoryViewStyle.call + visible: peerAddress && SettingsModel.outgoingCallsEnabled + + onClicked: CallsListModel.launchAudioCall(historyView.peerAddress) + } + ActionButton { + isCustom: true + backgroundRadius: 90 + colorSet: HistoryViewStyle.chat + + visible: peerAddress && SettingsModel.standardChatEnabled && SettingsModel.getShowStartChatButton() + + onClicked: CallsListModel.launchChat(historyView.peerAddress, 0) + } + ActionButton { + isCustom: true + backgroundRadius: 1000 + colorSet: HistoryViewStyle.chat + visible: peerAddress && SettingsModel.secureChatEnabled && SettingsModel.getShowStartChatButton() + onClicked: CallsListModel.launchChat(historyView.peerAddress, 1) + Icon{ + icon:'secure_level_1' + iconSize:15 + anchors.right:parent.right + anchors.top:parent.top + anchors.topMargin: -3 + } + } + } + + ActionBar { + anchors.verticalCenter: parent.verticalCenter + + ActionButton { + isCustom: true + backgroundRadius: 4 + colorSet: historyView._sipAddressObserver && historyView._sipAddressObserver.contact ? ConversationStyle.bar.actions.edit.viewContact : ConversationStyle.bar.actions.edit.addContact + iconSize: HistoryViewStyle.bar.actions.edit.iconSize + visible: peerAddress && SettingsModel.contactsEnabled + + onClicked: window.setView('ContactEdit', { sipAddress: historyView.peerAddress }) + tooltipText: peerAddress?Logic.getEditTooltipText():'' + } + + ActionButton { + isCustom: true + backgroundRadius: 90 + colorSet: HistoryViewStyle.deleteAction + + onClicked: Logic.removeAllEntries() + + tooltipText: qsTr('cleanHistory') + } + } + } + } + } + + // --------------------------------------------------------------------------- + // History. + // --------------------------------------------------------------------------- + + History { + Layout.fillHeight: true + Layout.fillWidth: true + + onEntryClicked:{ + historyView.fullPeerAddress=sipAddress + historyView.peerAddress=sipAddress + historyProxyModel.resetMessageCount() + } + + proxyModel: HistoryProxyModel { + id: historyProxyModel + + Component.onCompleted: { + setEntryTypeFilter() + resetMessageCount() + } + } + } + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/MainWindow.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/MainWindow.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Main/MainWindow.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Main/MainWindow.qml 2021-11-10 00:52:03.000000000 +0100 @@ -332,6 +332,7 @@ menu.resetSelectedEntry() } onShowHistoryRequest: { + timeline.model.unselectAll() window.setView('HistoryView') } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Styles/Main/HistoryViewStyle.qml new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Styles/Main/HistoryViewStyle.qml --- old/linphone-desktop-4.3.1/linphone-app/ui/views/App/Styles/Main/HistoryViewStyle.qml 2021-11-04 21:32:32.000000000 +0100 +++ new/linphone-desktop-4.3.2/linphone-app/ui/views/App/Styles/Main/HistoryViewStyle.qml 2021-11-10 00:52:03.000000000 +0100 @@ -80,4 +80,15 @@ property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'l_h_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'l_p_b_fg').color } + property QtObject chat: QtObject { + property int iconSize: 40 + property string name : 'chat' + property string icon : 'chat_custom' + property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color + property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color + property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg').color + property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg').color + property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_h_b_fg').color + property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color + } }
