From 7e281cc1a797678ca69e6622cb58e16d96322888 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Mon, 19 Feb 2024 09:11:37 +0100 Subject: [PATCH] - URI handlers when no domain are provided like tel:number. - remove trailing new lines in smart search bar. --- linphone-app/src/app/cli/Cli.cpp | 36 ++++++++++--------- linphone-app/src/app/cli/Cli.hpp | 5 +-- .../SmartSearchBar/SmartSearchBar.qml | 2 +- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/linphone-app/src/app/cli/Cli.cpp b/linphone-app/src/app/cli/Cli.cpp index 937c756ee..2b3bc7247 100644 --- a/linphone-app/src/app/cli/Cli.cpp +++ b/linphone-app/src/app/cli/Cli.cpp @@ -356,12 +356,8 @@ void Cli::Command::execute (QHash &args) const { } } -void Cli::Command::executeUri (const shared_ptr &address) const { - QHash args; - QString qAddress = Utils::coreStringToAppString(address->asString()); - if(address->getDomain() == "" && qAddress.back() == '@') - qAddress.remove(qAddress.size()-1, 1); - QUrl url(qAddress); +void Cli::Command::executeUri (QString address, QHash args) const { + QUrl url(address); QString query = url.query(); QStringList parameters = query.split('&'); @@ -375,12 +371,7 @@ void Cli::Command::executeUri (const shared_ptr &address) con } } - // TODO: check if there is too much headers. - for (const auto &argName : mArgsScheme.keys()) { - const string header = address->getHeader(Utils::appStringToCoreString(argName)); - args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), int(header.length()))); - } - args["sip-address"] = qAddress; + args["sip-address"] = address; execute(args); } @@ -533,10 +524,15 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) { App::getInstance()->useFetchConfig(fetchUrl); }else{ shared_ptr address; + QString qAddress; + std::string t; + address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(transformedCommand));// Test if command is an address if(Utils::isUsername(transformedCommand)){ address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(transformedCommand+"@to.remove")); - if(address) - address->setDomain(""); + address->setDomain(""); + qAddress = Utils::coreStringToAppString(address->asString()); + if(address && qAddress.isEmpty()) + qAddress = transformedCommand; }else address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(transformedCommand));// Test if command is an address if (format) @@ -568,9 +564,15 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) { qWarning() << QStringLiteral("This command doesn't exist: `%1`.").arg(functionName); return; } - if(address) - mCommands[functionName].executeUri(address); - else + if(address){ + // TODO: check if there is too much headers. + QHash headers; + for (const auto &argName : mCommands[functionName].mArgsScheme.keys()) { + const string header = address->getHeader(Utils::appStringToCoreString(argName)); + headers[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), int(header.length()))); + } + mCommands[functionName].executeUri(qAddress, headers); + }else mCommands[functionName].executeUrl(command); } } diff --git a/linphone-app/src/app/cli/Cli.hpp b/linphone-app/src/app/cli/Cli.hpp index b3f52a11d..6df664671 100644 --- a/linphone-app/src/app/cli/Cli.hpp +++ b/linphone-app/src/app/cli/Cli.hpp @@ -64,7 +64,7 @@ class Cli : public QObject { ); void execute (QHash &args) const; - void executeUri (const std::shared_ptr &address) const; + void executeUri (QString address, QHash args) const; void executeUrl (const QString &url) const; const char *getFunctionDescription () const { @@ -73,11 +73,12 @@ class Cli : public QObject { QString getFunctionSyntax () const ; + QHash mArgsScheme; + private: QString mFunctionName; const char *mFunctionDescription; Function mFunction = nullptr; - QHash mArgsScheme; bool mGenericArguments=false;// Used to avoid check on arguments }; diff --git a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml index 137b5dbd8..86cf50353 100644 --- a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml +++ b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml @@ -113,7 +113,7 @@ SearchBox { searchBox.addContact(sipAddress) }) - genSipAddress: searchBox.filter + genSipAddress: searchBox.filter.replace(/\n+$/, "") model: SearchSipAddressesProxyModel { id:searchModel