From f61c11759fd660476fee9bf78de7fee30426b1da Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Tue, 7 Nov 2023 10:09:17 +0000 Subject: [PATCH 01/17] Spell checker fixes & improvements --- external/ispell | 2 +- .../src/components/other/spell-checker/SpellChecker.cpp | 6 +++--- .../src/components/other/spell-checker/SpellChecker.hpp | 7 ++++++- .../components/other/spell-checker/SpellCheckerLinux.cpp | 4 ++-- .../other/spell-checker/SpellCheckerMacOsNative.mm | 3 +++ .../other/spell-checker/SpellCheckerWindowsNative.cpp | 5 +++-- linphone-app/src/components/settings/SettingsModel.cpp | 8 ++++++++ linphone-app/src/components/settings/SettingsModel.hpp | 3 +++ 8 files changed, 29 insertions(+), 9 deletions(-) diff --git a/external/ispell b/external/ispell index 061c7e52b..b4ac0ab97 160000 --- a/external/ispell +++ b/external/ispell @@ -1 +1 @@ -Subproject commit 061c7e52b507f146396c3b08f289c88ca598fc2f +Subproject commit b4ac0ab9772904732e98d5d402b553556bd4ce78 diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp index a46732d3c..37ef2c021 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp @@ -23,8 +23,7 @@ #include #include #include -#include "components/core/CoreManager.hpp" -#include "components/settings/SettingsModel.hpp" + #ifdef WIN32 #include @@ -54,7 +53,8 @@ SpellChecker::SpellChecker(QObject *parent) : QSyntaxHighlighter(parent) { connect(graceTimer, SIGNAL(timeout()), SLOT(highlightAfterGracePeriod())); mAvailable = false; - setLanguage(); + if (CoreManager::getInstance()->getSettingsModel()->getSpellCheckerEnabled()) + setLanguage(); } SpellChecker::~SpellChecker () { diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp index 52564231a..e2d7be64c 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp @@ -35,6 +35,8 @@ #include #include #include "app/App.hpp" +#include "components/core/CoreManager.hpp" +#include "components/settings/SettingsModel.hpp" #ifdef __linux__ #include @@ -57,7 +59,10 @@ public: ~SpellChecker(); // Common - static QString currentLanguage() { return App::getInstance()->getLocale().name();} + static QString currentLanguage() { + QString overrideLocale = CoreManager::getInstance()->getSettingsModel()->getSpellCheckerOverrideLocale(); + return overrideLocale.isEmpty() ? App::getInstance()->getLocale().name() : overrideLocale; + } Q_INVOKABLE void setTextDocument(QQuickTextDocument *textDocument); Q_INVOKABLE int wordPosition(int x, int y); Q_INVOKABLE bool isWordAtPositionValid(int cursorPosition); diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp b/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp index 0308ce25c..a9a56a48f 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp @@ -19,8 +19,8 @@ */ -#import "SpellChecker.hpp" -#import +#include "SpellChecker.hpp" +#include #include "app/paths/Paths.hpp" #include #include diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm b/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm index 273072464..0b2d4084b 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm @@ -28,12 +28,15 @@ void SpellChecker::setLanguage() { if ([spellChecker setLanguage:locale.toNSString()]) { [spellChecker updatePanels]; qDebug() << LOG_TAG << "Macos native spell checker Language set to " << locale; + mAvailable = true; } else { qWarning() << LOG_TAG << "Macos native spell checker unable to set language to " << locale; } } bool SpellChecker::isValid(QString word) { + if (!mAvailable) + return true; NSSpellChecker *spellChecker = [NSSpellChecker sharedSpellChecker]; QString locale = SpellChecker::currentLanguage(); bool isValid = [spellChecker checkSpellingOfString:word.toNSString() startingAt:0 language:locale.toNSString() wrap:NO inSpellDocumentWithTag:0 wordCount:nullptr].length == 0; diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp b/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp index 9a761216e..975c497db 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp @@ -58,12 +58,13 @@ void SpellChecker::setLanguage() { qWarning() << LOG_TAG << "Windows native spell checker unable to create spell checker"; return; } - qWarning() << LOG_TAG << "Windows native spell checker created for locale" << locale; + qDebug() << LOG_TAG << "Windows native spell checker created for locale" << locale; + mAvailable = true; } bool SpellChecker::isValid(QString word) { - if (mNativeSpellChecker == nullptr) + if (!mAvailable) return true; wchar_t *text = reinterpret_cast(word.data()); IEnumSpellingError* enumSpellingError = nullptr; diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index 92ab848a7..fc2be1dcb 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1566,6 +1566,14 @@ void SettingsModel::setSavedScreenshotsFolder (const QString &folder) { emit savedScreenshotsFolderChanged(cleanedFolder); } +QString SettingsModel::getSpellCheckerOverrideLocale() const{ + return Utils::coreStringToAppString(mConfig->getString(UiSection, "spell_checker_override_locale", "")); +} + +bool SettingsModel::getSpellCheckerEnabled() const{ + return mConfig->getBool(UiSection, "spell_checker_enabled", true); +} + // ----------------------------------------------------------------------------- static inline string getLegacySavedCallsFolder (const shared_ptr &config) { diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index 509b4687c..eb0e00bf7 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -589,6 +589,9 @@ public: int getEmojiFontSize() const; void setEmojiFontSize(const int& size); + QString getSpellCheckerOverrideLocale() const; + bool getSpellCheckerEnabled() const; + QString getSavedScreenshotsFolder () const; void setSavedScreenshotsFolder (const QString &folder); From 7451bdd488d37eabea468e10c81f54b3124af542 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Mon, 6 Nov 2023 17:12:05 +0100 Subject: [PATCH 02/17] Update SDK and adapt code for new FlexiAPI (QRCode). Fix ispell compilation error. --- external/ispell | 2 +- .../components/assistant/AssistantModel.cpp | 32 +++++++++---------- linphone-app/src/config.h.cmake | 3 +- linphone-sdk | 2 +- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/external/ispell b/external/ispell index b4ac0ab97..05574fe16 160000 --- a/external/ispell +++ b/external/ispell @@ -1 +1 @@ -Subproject commit b4ac0ab9772904732e98d5d402b553556bd4ce78 +Subproject commit 05574fe160222c3d0b6283c1433c9b087271fad1 diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 0feb3d939..6b627eefe 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -33,7 +33,7 @@ #endif #ifdef ENABLE_QRCODE -#include +#include #endif #include @@ -532,28 +532,28 @@ void AssistantModel::createTestAccount(){ } void AssistantModel::generateQRCode(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountProvision() - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ emit newQRCodeReceived(response.json()["provisioning_token"].asCString()); }) - ->error([this](FlexiAPIClient::Response response){ + ->error([this](LinphonePrivate::FlexiAPIClient::Response response){ emit newQRCodeNotReceived(Utils::coreStringToAppString(response.body), response.code); }); #endif } void AssistantModel::requestQRCode(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountAuthTokenCreate() - ->then([this](FlexiAPIClient::Response response) { + ->then([this](LinphonePrivate::FlexiAPIClient::Response response) { mToken = response.json()["token"].asCString(); emit newQRCodeReceived(mToken); QTimer::singleShot(5000, this, &AssistantModel::checkLinkingAccount); - })->error([this](FlexiAPIClient::Response response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response response){ qWarning() << response.code << " => " << response.body.c_str(); emit newQRCodeNotReceived(Utils::coreStringToAppString(response.body), response.code); }); @@ -568,12 +568,12 @@ void AssistantModel::newQRCodeNotReceivedTest(){ } void AssistantModel::checkLinkingAccount(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountApiKeyFromAuthTokenGenerate(mToken.toStdString()) - ->then([this](FlexiAPIClient::Response response)mutable{ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response)mutable{ emit apiReceived(Utils::coreStringToAppString(response.json()["api_key"].asCString())); - })->error([this](FlexiAPIClient::Response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response){ QTimer::singleShot(5000, this, &AssistantModel::checkLinkingAccount); }); #endif @@ -581,12 +581,12 @@ void AssistantModel::checkLinkingAccount(){ void AssistantModel::onApiReceived(QString apiKey){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient->setApiKey(Utils::appStringToCoreString(apiKey).c_str()) ->accountProvision() - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ emit provisioningTokenReceived(response.json()["provisioning_token"].asCString()); - })->error([this](FlexiAPIClient::Response response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response response){ //it provisioningTokenReceived("token"); emit this->newQRCodeNotReceived("Cannot generate a provisioning key"+(response.body.empty() ? "" : " : " +Utils::coreStringToAppString(response.body)), response.code); }); @@ -599,14 +599,14 @@ void AssistantModel::onQRCodeFound(const std::string & result){ void AssistantModel::attachAccount(const QString& token){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient-> accountAuthTokenAttach(Utils::appStringToCoreString(token)) - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ qWarning() << "Attached"; emit qRCodeAttached(); }) - ->error([this](FlexiAPIClient::Response response){ + ->error([this](LinphonePrivate::FlexiAPIClient::Response response){ emit qRCodeNotAttached("Cannot attach"+ (response.body.empty() ? "" : " : " +Utils::coreStringToAppString(response.body)), response.code); }); #endif diff --git a/linphone-app/src/config.h.cmake b/linphone-app/src/config.h.cmake index dca99094b..93157a450 100644 --- a/linphone-app/src/config.h.cmake +++ b/linphone-app/src/config.h.cmake @@ -33,10 +33,11 @@ #cmakedefine APPLICATION_SEMVER "${APPLICATION_SEMVER}" #cmakedefine COPYRIGHT_RANGE_DATE "${COPYRIGHT_RANGE_DATE}" #cmakedefine ENABLE_UPDATE_CHECK 1 +#cmakedefine ENABLE_QRCODE #cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}" #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}" #cmakedefine ENABLE_APP_WEBVIEW "${ENABLE_APP_WEBVIEW}" #cmakedefine QTKEYCHAIN_TARGET_NAME ${QTKEYCHAIN_TARGET_NAME} #cmakedefine PDF_ENABLED -#endif \ No newline at end of file +#endif diff --git a/linphone-sdk b/linphone-sdk index 40373878e..5c14f98d4 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 40373878e26ab10c31c7237f1a22758aac3939ab +Subproject commit 5c14f98d4e10714fe16aa7a4a9bffcf7d69aab07 From c9749f459e24d452de2bbdc43515ac71f3725fff Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 7 Nov 2023 13:16:10 +0100 Subject: [PATCH 03/17] Add GUI options to activate Spell Checker and change its language. --- linphone-app/assets/languages/cs.ts | 71 +++++++++++++++- linphone-app/assets/languages/da.ts | 69 ++++++++++++++- linphone-app/assets/languages/de.ts | 69 ++++++++++++++- linphone-app/assets/languages/en.ts | 83 +++++++++++++------ linphone-app/assets/languages/es.ts | 69 ++++++++++++++- linphone-app/assets/languages/fr_FR.ts | 83 +++++++++++++------ linphone-app/assets/languages/hu.ts | 69 ++++++++++++++- linphone-app/assets/languages/it.ts | 69 ++++++++++++++- linphone-app/assets/languages/ja.ts | 69 ++++++++++++++- linphone-app/assets/languages/lt.ts | 71 +++++++++++++++- linphone-app/assets/languages/pt_BR.ts | 69 ++++++++++++++- linphone-app/assets/languages/ru.ts | 69 ++++++++++++++- linphone-app/assets/languages/sv.ts | 69 ++++++++++++++- linphone-app/assets/languages/tr.ts | 69 ++++++++++++++- linphone-app/assets/languages/uk.ts | 68 +++++++++++++++ linphone-app/assets/languages/zh_CN.ts | 69 ++++++++++++++- .../other/spell-checker/SpellChecker.cpp | 5 +- .../other/spell-checker/SpellChecker.hpp | 6 +- .../src/components/settings/SettingsModel.cpp | 13 +++ .../src/components/settings/SettingsModel.hpp | 8 ++ .../ui/views/App/Settings/SettingsUi.qml | 35 ++++++++ 21 files changed, 1128 insertions(+), 74 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index 3b6bc2ba7..cddd12a6d 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -1508,7 +1508,6 @@ Adresa URL není nakonfigurována. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1995,6 +1994,42 @@ Klikněte zde: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Poslední vzdálené zajištění selhalo + + + newVersionAvailable + K dispozici je nová verze (%1)! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2391,7 +2426,7 @@ Klikněte zde: <a href="%1">%1</a> newVersionAvailable K dispozici je nová verze (%1)! - + newFileMessage Obdržena nová příloha! @@ -3837,6 +3872,11 @@ Klikněte zde: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Obnovení vyskakovacích oken + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4024,6 +4064,29 @@ Klikněte zde: <a href="%1">%1</a> PŘIDAT KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5208,5 +5271,9 @@ Klikněte zde: <a href="%1">%1</a> %1 vteřin + + okButton + OK + diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 9882e467b..5ec4d08ae 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -1497,7 +1497,6 @@ Server url ikke konfigureret. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klik her: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + En ny version (%1) er tilgængelig! + + + newVersionAvailableInstructions + + + + cancel + ANNULLER + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Klik her: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Klik her: <a href="%1">%1</a> OPRET KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Klik her: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index fa01528d0..9b51c35b7 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -1497,7 +1497,6 @@ Server URL ist nicht konfiguriert. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klicken Sie hier: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Letzte Fernkonfiguration fehlgeschlagen + + + newVersionAvailable + Eine neue Version (%1) ist verfügbar! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Klicken Sie hier: <a href="%1">%1</a> KONTAKT HINZUFÜGEN + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Klicken Sie hier: <a href="%1">%1</a> %1 Sekunden + + okButton + OK + diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 258302fcf..123d79b63 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -1923,24 +1923,24 @@ Click here: <a href="%1">%1</a> MainWindow - newVersionCheckError - An error occured checking for a new version. Try again later or contact support if problem persists. + newVersionCheckError + An error occured checking for a new version. Try again later or contact support if problem persists. - newVersionAvailableInstructions - To upgrade to the new version, download the package and install it over the existing one + newVersionAvailableInstructions + To upgrade to the new version, download the package and install it over the existing one - downloadUpdate - Download + downloadUpdate + Download - noNewVersionAvailable - Your application is up to date. + noNewVersionAvailable + Your application is up to date. - newVersionInstalled - New application version successfully installed. + newVersionInstalled + New application version successfully installed. mainSearchBarPlaceholder @@ -2003,6 +2003,22 @@ Click here: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list Open meetings + + lastProvisioningFailed + Remote provisioning failed. The link might be used or expired. If it was provided to you, please contact your administrator. + + + newVersionAvailable + A new version (%1) is available! + + + cancel + Cancel + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. + MainWindowMenuBar @@ -3843,6 +3859,11 @@ Click here: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Restore asking popups + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + Spell Checker + SettingsVideo @@ -4030,6 +4051,29 @@ Click here: <a href="%1">%1</a> ADD CONTACT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + Did you mean ? + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + Add to Dictionnary + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + Ignore Once + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + Ignore All + + Timeline @@ -5207,24 +5251,9 @@ Click here: <a href="%1">%1</a> %1 seconds - - - SpellCheckerMenu - spellCheckingMenuDidYouMean - Did you mean ? - - - spellCheckingMenuAddToDictionary - Add to Dictionnary - - - spellCheckingMenuIgnoreOnce - Ignore Once - - - spellCheckingMenuIgnoreAll - Ignore All + okButton + OK diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 30371a639..85aa80cf4 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -1497,7 +1497,6 @@ URL del servidor no configurada. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Haga clic aquí: <a href="%1">%1 </a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + ¡Una nueva versión (%1) está disponible! + + + newVersionAvailableInstructions + + + + cancel + CANCELAR + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Haga clic aquí: <a href="%1">%1 </a> AÑADIR CONTACTO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Haga clic aquí: <a href="%1">%1 </a> + + okButton + + diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 3ac8eb623..2879dbe3e 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -1923,24 +1923,24 @@ Cliquez ici : <a href="%1">%1</a> MainWindow - newVersionCheckError - Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support. + newVersionCheckError + Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support. - newVersionAvailableInstructions - Pour mettre à jour télécharger l'application et lancer l'installeur. + newVersionAvailableInstructions + Pour mettre à jour télécharger l'application et lancer l'installeur. - downloadUpdate - Télécharger + downloadUpdate + Télécharger - noNewVersionAvailable - Votre application est à jour. + noNewVersionAvailable + Votre application est à jour. - newVersionInstalled - La nouvelle version de l'application a été installée avec succès. + newVersionInstalled + La nouvelle version de l'application a été installée avec succès. mainSearchBarPlaceholder @@ -2003,6 +2003,22 @@ Cliquez ici : <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Erreur de récupération de la configuration distante. Le lien de configuration a peut-être déjà été utilisé ou a expiré. Merci de contacter un administrateur si ce lien vous a été fourni. + + + newVersionAvailable + Une nouvelle version (%1) est disponible ! + + + cancel + + + + remoteProvisioningWarnAccountOverwrite + Un compte est déjà configuré. Cette action effacera le compte existant. + MainWindowMenuBar @@ -3818,6 +3834,11 @@ Cliquez ici : <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Restaurer les popups de confirmation + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4005,6 +4026,29 @@ Cliquez ici : <a href="%1">%1</a> AJOUTER CE CONTACT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + Voulez-vous dire ? + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + Ajouter au Dictionnaire + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + Ignorer une fois + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + Ignorer tout + + Timeline @@ -5182,24 +5226,9 @@ Cliquez ici : <a href="%1">%1</a> %1 secondes - - - SpellCheckerMenu - spellCheckingMenuDidYouMean - Voulez-vous dire ? - - - spellCheckingMenuAddToDictionary - Ajouter au Dictionnaire - - - spellCheckingMenuIgnoreOnce - Ignorer une fois - - - spellCheckingMenuIgnoreAll - Ignorer tout + okButton + OK diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index c5a7b8bfe..21679dc56 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -1486,7 +1486,6 @@ A kiszolgáló URL-je nincs konfigurálva. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ Kattintson ide: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Az utolsó távoli kiépítés nem sikerült + + + newVersionAvailable + Egy új frissítés (%1) érhető el! + + + newVersionAvailableInstructions + + + + cancel + Mégse + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3785,6 +3820,11 @@ Kattintson ide: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4012,29 @@ Kattintson ide: <a href="%1">%1</a> Névjegy hozzáadása + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5205,9 @@ Kattintson ide: <a href="%1">%1</a> + + okButton + Rendben + diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 85c9aa884..d2ed74cc4 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -1497,7 +1497,6 @@ URL del server non configurato. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Clicca: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + L'ultima configurazione remota è fallita + + + newVersionAvailable + È disponibile una nuova versione (%1)! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Clicca: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Clicca: <a href="%1">%1</a> AGGIUNGI UN CONTATTO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Clicca: <a href="%1">%1</a> + + okButton + OK + diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index d328ac793..95ca61732 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -1486,7 +1486,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + 最後のリモートプロビジョニングに失敗 + + + newVersionAvailable + 新しいバージョン (%1) が利用可能です! + + + newVersionAvailableInstructions + + + + cancel + キャンセル + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3785,6 +3820,11 @@ 'Restore asking popups' : Text button for restoring asking popups. 質問ポップアップの復元 + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4012,29 @@ 連絡先に追加 + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5205,9 @@ %1 秒 + + okButton + OK + diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index fd8dac505..02e996761 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -1508,10 +1508,9 @@ Nesukonfigūruotas serverio url. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. - + lastProvisioningFailed 'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed. @@ -1995,6 +1994,42 @@ Spustelėkite čia: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + Yra prieinama nauja versija (%1)! + + + newVersionAvailableInstructions + + + + cancel + ATSISAKYTI + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3813,6 +3848,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4000,6 +4040,29 @@ Spustelėkite čia: <a href="%1">%1</a> PRIDĖTI KONTAKTĄ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5184,5 +5247,9 @@ Spustelėkite čia: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index e32dc41d3..0d285739a 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -1497,7 +1497,6 @@ URL do servidor não configurado. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Clique aqui: <a href="%1">%1 </a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + O último provisionamento remoto falhou + + + newVersionAvailable + Está disponível uma nova versão (%1)! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Clique aqui: <a href="%1">%1 </a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Clique aqui: <a href="%1">%1 </a> ADICIONAR CONTATO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Clique aqui: <a href="%1">%1 </a> %1 segundos + + okButton + OK + diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index d82f3df75..128692583 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -1508,7 +1508,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1995,6 +1994,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Последняя удалённая инициализация не удалась + + + newVersionAvailable + Доступна новая (%1) версия! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3813,6 +3848,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4000,6 +4040,29 @@ ДОБАВИТЬ КОНТАКТ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5184,5 +5247,9 @@ %1 секунд + + okButton + ОК + diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 635c7d165..4d740b855 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -1497,7 +1497,6 @@ Serverwebbadressen är inte konfigurerad. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klicka här: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + En ny version (%1) är tillgänglig! + + + newVersionAvailableInstructions + + + + cancel + AVBRYT + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3799,6 +3834,11 @@ Klicka här: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4026,29 @@ Klicka här: <a href="%1">%1</a> LÄGG TILL KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5226,9 @@ Klicka här: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index aa8513264..144eada19 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -1486,7 +1486,6 @@ Sunucu url'si yapılandırılmadı. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ Buraya tıklayın: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Son uzaktan ön hazırlık başarısız + + + newVersionAvailable + Yeni sürüm (%1) var! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3785,6 +3820,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4012,29 @@ Buraya tıklayın: <a href="%1">%1</a> KİŞİ EKLE + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5205,9 @@ Buraya tıklayın: <a href="%1">%1</a> + + okButton + TAMAM + diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 82ba1b1fd..96f0e2482 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -1994,6 +1994,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + Доступна нова (%1) версія! + + + newVersionAvailableInstructions + + + + cancel + СКАСУВАТИ + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3812,6 +3848,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3999,6 +4040,29 @@ ДОДАТИ КОНТАКТ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5183,5 +5247,9 @@ + + okButton + + diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 2e4ea1df0..63f1332ea 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -1486,7 +1486,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + 新版本( %1 )可用! + + + newVersionAvailableInstructions + + + + cancel + 取消 + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -3785,6 +3820,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4012,29 @@ 添加联系人 + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5205,9 @@ + + okButton + + diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp index 37ef2c021..0bbda670d 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp @@ -51,6 +51,7 @@ SpellChecker::SpellChecker(QObject *parent) : QSyntaxHighlighter(parent) { graceTimer = new QTimer(this); graceTimer->setSingleShot(true); connect(graceTimer, SIGNAL(timeout()), SLOT(highlightAfterGracePeriod())); + connect(CoreManager::getInstance()->getSettingsModel(), &SettingsModel::spellCheckerOverrideLocaleChanged, this, &SpellChecker::setLanguage); mAvailable = false; if (CoreManager::getInstance()->getSettingsModel()->getSpellCheckerEnabled()) @@ -59,7 +60,7 @@ SpellChecker::SpellChecker(QObject *parent) : QSyntaxHighlighter(parent) { SpellChecker::~SpellChecker () { graceTimer->stop(); -#ifdef WIN32 +#ifdef _WIN32 if (mNativeSpellChecker != nullptr) mNativeSpellChecker->Release(); #endif @@ -91,7 +92,7 @@ QString SpellChecker::underLine(qreal minLength) { } void SpellChecker::highlightDocument() { - + if(!CoreManager::getInstance()->getSettingsModel()->getSpellCheckerEnabled()) return; if (!fromTimer && QDateTime::currentMSecsSinceEpoch() <= mLastHightlight + GRACE_PERIOD_SECS*1000) { scheduleHighlight(); return; diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp index e2d7be64c..84d9abdfd 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp @@ -48,7 +48,7 @@ #define LOG_TAG "[SpellChecker]" #define WORD_DELIMITERS_REGEXP "[^\r\n\t\u2028 ]+" -#ifdef WIN32 +#ifdef _WIN32 class ISpellChecker; #endif @@ -57,7 +57,7 @@ class SpellChecker : public QSyntaxHighlighter { public: SpellChecker(QObject* parent = nullptr); ~SpellChecker(); - + // Common static QString currentLanguage() { QString overrideLocale = CoreManager::getInstance()->getSettingsModel()->getSpellCheckerOverrideLocale(); @@ -108,7 +108,7 @@ private: bool wasIgnoredOnce(QString word, int wordStartIndex, int wordEndIndex); void scheduleHighlight(); QString underLine(qreal minLength); -#ifdef WIN32 +#ifdef _WIN32 ISpellChecker* mNativeSpellChecker = nullptr; #endif diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index fc2be1dcb..e9ad82a2e 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1570,10 +1570,23 @@ QString SettingsModel::getSpellCheckerOverrideLocale() const{ return Utils::coreStringToAppString(mConfig->getString(UiSection, "spell_checker_override_locale", "")); } +void SettingsModel::setSpellCheckerOverrideLocale (const QString &locale) { + CoreManager::getInstance()->getCore()->getConfig()->setString( + SettingsModel::UiSection, "spell_checker_override_locale", Utils::appStringToCoreString(locale) + ); + + emit spellCheckerOverrideLocaleChanged(); +} + bool SettingsModel::getSpellCheckerEnabled() const{ return mConfig->getBool(UiSection, "spell_checker_enabled", true); } +void SettingsModel::setSpellCheckerEnabled(bool enable){ + mConfig->setBool(UiSection, "spell_checker_enabled", enable); + emit spellCheckerEnabledChanged(); +} + // ----------------------------------------------------------------------------- static inline string getLegacySavedCallsFolder (const shared_ptr &config) { diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index eb0e00bf7..d8db2e500 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -200,6 +200,9 @@ class SettingsModel : public QObject { // UI. ----------------------------------------------------------------------- + Q_PROPERTY(QString spellCheckerOverrideLocale READ getSpellCheckerOverrideLocale WRITE setSpellCheckerOverrideLocale NOTIFY spellCheckerOverrideLocaleChanged) + Q_PROPERTY(bool spellCheckerEnabled READ getSpellCheckerEnabled WRITE setSpellCheckerEnabled NOTIFY spellCheckerEnabledChanged) + Q_PROPERTY(QFont textMessageFont READ getTextMessageFont WRITE setTextMessageFont NOTIFY textMessageFontChanged) Q_PROPERTY(int textMessageFontSize READ getTextMessageFontSize WRITE setTextMessageFontSize NOTIFY textMessageFontSizeChanged) Q_PROPERTY(QFont emojiFont READ getEmojiFont WRITE setEmojiFont NOTIFY emojiFontChanged) @@ -590,7 +593,9 @@ public: void setEmojiFontSize(const int& size); QString getSpellCheckerOverrideLocale() const; + void setSpellCheckerOverrideLocale (const QString &locale); bool getSpellCheckerEnabled() const; + void setSpellCheckerEnabled(bool enable); QString getSavedScreenshotsFolder () const; void setSavedScreenshotsFolder (const QString &folder); @@ -861,6 +866,9 @@ signals: // UI. ----------------------------------------------------------------------- + void spellCheckerOverrideLocaleChanged(); + void spellCheckerEnabledChanged(); + void textMessageFontChanged(const QFont& font); void textMessageFontSizeChanged(const int& size); diff --git a/linphone-app/ui/views/App/Settings/SettingsUi.qml b/linphone-app/ui/views/App/Settings/SettingsUi.qml index 2334fd1c0..c9d35689c 100644 --- a/linphone-app/ui/views/App/Settings/SettingsUi.qml +++ b/linphone-app/ui/views/App/Settings/SettingsUi.qml @@ -55,6 +55,41 @@ TabContainer { } } } + FormLine { + FormGroup { + //: 'Spell Checker' : label for spell checker settings + label: qsTr('spellCheckerLabel') + RowLayout{ + ComboBox { + Layout.fillWidth: true + textRole: 'key' + + Component.onCompleted: { + var locales = Logic.getAvailableLocales() + model = locales + + var locale = SettingsModel.spellCheckerOverrideLocale + if (!locale.length) { + currentIndex = 0 + return + } + + var value = Qt.locale(locale).name + currentIndex = Number(Utils.findIndex(locales, function (locale) { + return locale.value === value + })) + } + + onActivated: SettingsModel.spellCheckerOverrideLocale = model[index].value + } + Switch { + checked: SettingsModel.spellCheckerEnabled + + onClicked: SettingsModel.spellCheckerEnabled = !checked + } + } + } + } Form { //: 'Fonts' : title of fonts section in settings title: qsTr('fontsTitle') From a6acf9fd3cc25a26521e0b6c88a8d86234169ac1 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 7 Nov 2023 14:57:19 +0100 Subject: [PATCH 04/17] Update SDK (LDAP filter multi criteria) --- linphone-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linphone-sdk b/linphone-sdk index 5c14f98d4..11a703d3d 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 5c14f98d4e10714fe16aa7a4a9bffcf7d69aab07 +Subproject commit 11a703d3d8ef46701eeca02d9d0e7e1b9cdae828 From 885f529abbdb36d479066d8c942194a0522ca7dd Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 8 Nov 2023 09:54:42 +0100 Subject: [PATCH 05/17] CI: use only "deploy" tag for all deployment. Make a sha512 sum of the package and upload it. --- .../job-linux-desktop-ubuntu-1804.yml | 18 ++++++++++++++--- .gitlab-ci-files/job-macosx-desktop.yml | 13 ++++++++++-- .gitlab-ci-files/job-windows-desktop.yml | 20 +++++++++++++++---- 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml index 51c05990f..b05ab2a67 100644 --- a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml +++ b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml @@ -161,9 +161,21 @@ job-ubuntu1804-makefile-gcc-deploy: - $NIGHTLY_MASTER - $DEPLOY_LINUX script: - - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER - - rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM - - rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM +# Going to folder in order to avoid having path in checksum + - |- + cd build/OUTPUT/Packages + for file in $(find . -type f -name '*.AppImage' -printf '%f\n') + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + done + cd ../../.. + - |- + if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then + rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + fi job-ubuntu1804-makefile-gcc-plugins-deploy: diff --git a/.gitlab-ci-files/job-macosx-desktop.yml b/.gitlab-ci-files/job-macosx-desktop.yml index ff283f2d6..5ddddcaf8 100644 --- a/.gitlab-ci-files/job-macosx-desktop.yml +++ b/.gitlab-ci-files/job-macosx-desktop.yml @@ -139,7 +139,7 @@ job-macosx-codesigning: job-macosx-makefile-deploy: stage: deploy - tags: [ "macos-xcode13" ] + tags: [ "deploy" ] needs: - job-macosx-codesigning only: @@ -147,7 +147,16 @@ job-macosx-makefile-deploy: - $NIGHTLY_MASTER - $DEPLOY_MACOSX script: - - rsync -rlv --ignore-existing build/OUTPUT/linphone-app/macos/Packages/Linphone*.dmg $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER +# Going to folder in order to avoid having path in checksum + - |- + cd build/OUTPUT/linphone-app/macos/Packages/ + for file in $(find . -type f -name 'Linphone*.dmg' -printf '%f\n') + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER + done + cd ../../../../.. - |- if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then rsync -rlv build/OUTPUT/linphone-app/macos/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index 01bdc3cb3..0f2a0a747 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -167,16 +167,28 @@ vs2019-win64-package: vs2019-win64-upload: stage: deploy - tags: [ "windows-powershell"] + tags: [ "deploy"] rules: - if: $NIGHTLY_MASTER - if: $DEPLOY_WINDOWS needs: - vs2019-win64-package script: - - scp -pr build-desktop/OUTPUT/Packages/*.exe ${DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/${APP_FOLDER} - - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ } - - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${MAIN_DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ } +# Going to folder in order to avoid having path in checksum + - |- + cd build-desktop/OUTPUT/Packages/ + for file in $(find . -type f -name '*.exe' -printf '%f\n') + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM/$APP_FOLDER + done + cd ../../.. + - |- + if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then + rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM + rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM + fi vs2019-win64-plugins-upload: stage: deploy From e530366a46782425b7bb8b76f8a3987ebac7b57f Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 14 Nov 2023 12:45:40 +0100 Subject: [PATCH 06/17] Fix smartsearchbar width to avoid overlapping and x offsets. Update SDK. --- linphone-app/ui/views/App/Main/MainWindow.qml | 12 ++++++++++-- linphone-sdk | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml index 3b86da049..b2b39acbf 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.qml +++ b/linphone-app/ui/views/App/Main/MainWindow.qml @@ -192,7 +192,7 @@ ApplicationWindow { id: smartSearchBar Layout.fillWidth: true - Layout.maximumWidth: parent.width - telKeypad.width - x + maxMenuHeight: MainWindowStyle.searchBox.maxHeight placeholderText: qsTr('mainSearchBarPlaceholder') @@ -226,8 +226,14 @@ ApplicationWindow { } onLaunchVideoCall: CallsListModel.launchVideoCall(sipAddress, '') } + Item{ + Layout.preferredWidth: telKeypad.width - 30 + - (keypadButton.visible ? keypadButton.width : 0) + - (newChatGroupButton.visible ? newChatGroupButton.width : 0) + - 4 * MainWindowStyle.toolBar.spacing + } ActionButton { - Layout.leftMargin: 30 + id: keypadButton isCustom: true backgroundRadius: 90 colorSet: MainWindowStyle.buttons.telKeyad @@ -235,6 +241,7 @@ ApplicationWindow { toggled: telKeypad.visible } ActionButton { + id: newChatGroupButton isCustom: true backgroundRadius: 4 colorSet: MainWindowStyle.buttons.newChatGroup @@ -258,6 +265,7 @@ ApplicationWindow { } ActionButton { + id:newConferenceButton isCustom: true backgroundRadius: 4 colorSet: MainWindowStyle.buttons.newConference diff --git a/linphone-sdk b/linphone-sdk index 11a703d3d..d6fc9fb33 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 11a703d3d8ef46701eeca02d9d0e7e1b9cdae828 +Subproject commit d6fc9fb3338622a74fe8fe2121fe2d80df6ab560 From 5fcde6ca269ecbcc925953099dcb48f0d5e14d10 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 15 Nov 2023 09:15:19 +0100 Subject: [PATCH 07/17] Deactivate spellchecker by default. --- linphone-app/src/components/settings/SettingsModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index e9ad82a2e..5c92b0287 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1579,7 +1579,7 @@ void SettingsModel::setSpellCheckerOverrideLocale (const QString &locale) { } bool SettingsModel::getSpellCheckerEnabled() const{ - return mConfig->getBool(UiSection, "spell_checker_enabled", true); + return mConfig->getBool(UiSection, "spell_checker_enabled", false); } void SettingsModel::setSpellCheckerEnabled(bool enable){ From 5e1d6307d9d46d9220832edd8f262156a1fba7e3 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 15 Nov 2023 12:40:52 +0100 Subject: [PATCH 08/17] CI: Fix find names for Mac. Fix default account selction after login. Add a RC config (message_counter_redirect_enabled) for message counter shortcut to calls. Update SDK --- .gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml | 2 +- .gitlab-ci-files/job-macosx-desktop.yml | 2 +- .gitlab-ci-files/job-windows-desktop.yml | 2 +- linphone-app/src/components/assistant/AssistantModel.cpp | 2 +- linphone-app/src/components/settings/SettingsModel.cpp | 4 ++++ linphone-app/src/components/settings/SettingsModel.hpp | 2 ++ linphone-app/ui/modules/Linphone/Account/AccountStatus.qml | 6 ++++++ linphone-app/ui/views/App/Main/MainWindow.qml | 1 + linphone-sdk | 2 +- 9 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml index b05ab2a67..e40259ddb 100644 --- a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml +++ b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml @@ -164,7 +164,7 @@ job-ubuntu1804-makefile-gcc-deploy: # Going to folder in order to avoid having path in checksum - |- cd build/OUTPUT/Packages - for file in $(find . -type f -name '*.AppImage' -printf '%f\n') + for file in $(find . -type f -name '*.AppImage' -exec basename {} \;) do rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER sha512sum $file > $file.sha512 diff --git a/.gitlab-ci-files/job-macosx-desktop.yml b/.gitlab-ci-files/job-macosx-desktop.yml index 5ddddcaf8..ee456c0ef 100644 --- a/.gitlab-ci-files/job-macosx-desktop.yml +++ b/.gitlab-ci-files/job-macosx-desktop.yml @@ -150,7 +150,7 @@ job-macosx-makefile-deploy: # Going to folder in order to avoid having path in checksum - |- cd build/OUTPUT/linphone-app/macos/Packages/ - for file in $(find . -type f -name 'Linphone*.dmg' -printf '%f\n') + for file in $(find . -type f -name '*.dmg' -exec basename {} \;) do rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER sha512sum $file > $file.sha512 diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index 0f2a0a747..cc29fdb9d 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -177,7 +177,7 @@ vs2019-win64-upload: # Going to folder in order to avoid having path in checksum - |- cd build-desktop/OUTPUT/Packages/ - for file in $(find . -type f -name '*.exe' -printf '%f\n') + for file in $(find . -type f -name '*.exe' -exec basename {} \;) do rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM/$APP_FOLDER sha512sum $file > $file.sha512 diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 6b627eefe..5f0d5f4e3 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -410,7 +410,7 @@ void AssistantModel::login () { return; } - mAccountCreator->setAsDefault(false); + mAccountCreator->setAsDefault(true); auto account = mAccountCreator->createAccountInCore(); if(account){ auto listener = std::make_shared(this); diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index 5c92b0287..2b82f638a 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1774,6 +1774,10 @@ QString SettingsModel::getDefaultOtherSipAccountDomain() const { return Utils::coreStringToAppString(mConfig->getString(UiSection, "default_other_sip_account_domain", "")); } +bool SettingsModel::getMessageCounterRedirectEnabled() const { + return !!mConfig->getInt(UiSection, "message_counter_redirect_enabled", false); +} + bool SettingsModel::isMipmapEnabled() const{ return !!mConfig->getInt(UiSection, "mipmap_enabled", 0); } diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index d8db2e500..0b7e55689 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -225,6 +225,7 @@ class SettingsModel : public QObject { Q_PROPERTY(bool showStartVideoCallButton READ getShowStartVideoCallButton CONSTANT) Q_PROPERTY(bool showHomeInviteButton READ getShowHomeInviteButton CONSTANT) Q_PROPERTY(QString defaultOtherSipAccountDomain READ getDefaultOtherSipAccountDomain CONSTANT) + Q_PROPERTY(bool messageCounterRedirectEnabled READ getMessageCounterRedirectEnabled CONSTANT) Q_PROPERTY(bool mipmapEnabled READ isMipmapEnabled WRITE setMipmapEnabled NOTIFY mipmapEnabledChanged) Q_PROPERTY(bool useMinimalTimelineFilter READ useMinimalTimelineFilter WRITE setUseMinimalTimelineFilter NOTIFY useMinimalTimelineFilterChanged) @@ -640,6 +641,7 @@ public: Q_INVOKABLE bool getShowHomePage() const; Q_INVOKABLE bool getShowHomeInviteButton() const; Q_INVOKABLE QString getDefaultOtherSipAccountDomain() const; + Q_INVOKABLE bool getMessageCounterRedirectEnabled() const; bool isMipmapEnabled() const; diff --git a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml index 9201fe1c6..f5e034edf 100644 --- a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml +++ b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml @@ -16,6 +16,7 @@ Item { // --------------------------------------------------------------------------- signal clicked + signal messageCounterClicked property alias cursorShape:mouseArea.cursorShape property alias betterIcon : presenceLevel.betterIcon property bool noAccountConfigured: AccountSettingsModel.accounts.length <= ((SettingsModel.showLocalSipAccount ? 1 : 0)) @@ -96,6 +97,11 @@ Item { count: CoreManager.eventCount iconSize: AccountStatusStyle.messageCounter.iconSize pointSize: AccountStatusStyle.messageCounter.pointSize + MouseArea{ + anchors.fill: parent + visible: SettingsModel.messageCounterRedirectEnabled + onClicked: accountStatus.messageCounterClicked() + } } } }//RowLayout diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml index b2b39acbf..fa957ea23 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.qml +++ b/linphone-app/ui/views/App/Main/MainWindow.qml @@ -161,6 +161,7 @@ ApplicationWindow { CoreManager.forceRefreshRegisters() Logic.manageAccounts() } + onMessageCounterClicked: window.setView('Calls') } ColumnLayout { diff --git a/linphone-sdk b/linphone-sdk index d6fc9fb33..a20e90bab 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit d6fc9fb3338622a74fe8fe2121fe2d80df6ab560 +Subproject commit a20e90babe7e6dc4def83720e7dce96ba3f917af From 0ebaff43554ea89ca6bd31088c1b3e84f8c90d64 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Thu, 16 Nov 2023 13:42:50 +0100 Subject: [PATCH 09/17] Make TLS as default SIP transport on other accounts creation. --- linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml b/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml index d645c8a0b..30d16196a 100644 --- a/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml +++ b/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml @@ -165,6 +165,7 @@ import Common.Styles 1.0 ComboBox { id: transport model: [ 'UDP', 'TCP', 'TLS'] + currentIndex: 2 } } } From 0b9130c37e728fd182c2dfec21d70be7bf4fe95c Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Mon, 20 Nov 2023 17:02:09 +0100 Subject: [PATCH 10/17] fix default account. --- linphone-app/src/components/settings/AccountSettingsModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index 09040585c..ed2e8f1e8 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -144,8 +144,8 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptrgetParams()->getIdentityAddress()->asString())); return false; } - coreManager->addingAccount(account->getParams()); + setDefaultAccount(account); } emit accountSettingsUpdated(); return true; From 2285bd2340b0e277b639692940da11ce202dc128 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 11:39:51 +0100 Subject: [PATCH 11/17] Display all call on default account. --- linphone-app/src/components/history/CallHistoryListModel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/linphone-app/src/components/history/CallHistoryListModel.cpp b/linphone-app/src/components/history/CallHistoryListModel.cpp index 1269e8802..6310971d2 100644 --- a/linphone-app/src/components/history/CallHistoryListModel.cpp +++ b/linphone-app/src/components/history/CallHistoryListModel.cpp @@ -60,8 +60,9 @@ CallHistoryListModel::~CallHistoryListModel(){ void CallHistoryListModel::add(const std::list>& callLogs){ QList> toAdd; + auto defaultAccount = CoreManager::getInstance()->getCore()->getDefaultAccount(); for(auto callLog : callLogs) { - if(!callLog->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) + if(defaultAccount && !callLog->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) continue; QString confUri; auto remoteAddress = callLog->getRemoteAddress()->clone(); From 7498453f8ce86e5ce227dd6032bc21268d997edf Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 14:37:31 +0100 Subject: [PATCH 12/17] Call logs : Remove double check on local address and use only logs from Account(). --- .../src/components/history/CallHistoryListModel.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/linphone-app/src/components/history/CallHistoryListModel.cpp b/linphone-app/src/components/history/CallHistoryListModel.cpp index 6310971d2..1652d9088 100644 --- a/linphone-app/src/components/history/CallHistoryListModel.cpp +++ b/linphone-app/src/components/history/CallHistoryListModel.cpp @@ -60,10 +60,7 @@ CallHistoryListModel::~CallHistoryListModel(){ void CallHistoryListModel::add(const std::list>& callLogs){ QList> toAdd; - auto defaultAccount = CoreManager::getInstance()->getCore()->getDefaultAccount(); for(auto callLog : callLogs) { - if(defaultAccount && !callLog->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) - continue; QString confUri; auto remoteAddress = callLog->getRemoteAddress()->clone(); remoteAddress->clean(); @@ -89,6 +86,9 @@ void CallHistoryListModel::add(const std::list &call){ + auto haveAccount = CoreManager::getInstance()->getCore()->getDefaultAccount(); + if(haveAccount && !call->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) + return; add(std::list>{call}); } From 1a8941444bca9b0bc5cbe8e4ac3baeca43b16923 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 15:35:14 +0100 Subject: [PATCH 13/17] rootca is ship in linphone folder: Use it instead of executable name. --- linphone-app/src/utils/Constants.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linphone-app/src/utils/Constants.hpp b/linphone-app/src/utils/Constants.hpp index 79c7f1d6f..2d14ebb35 100644 --- a/linphone-app/src/utils/Constants.hpp +++ b/linphone-app/src/utils/Constants.hpp @@ -139,7 +139,7 @@ public: static constexpr char PathConfig[] = "/linphonerc"; static constexpr char PathDatabase[] = "/linphone.db"; static constexpr char PathFactoryConfig[] = "/" EXECUTABLE_NAME "/linphonerc-factory"; - static constexpr char PathRootCa[] = "/" EXECUTABLE_NAME "/rootca.pem"; + static constexpr char PathRootCa[] = "/linphone/rootca.pem"; static constexpr char PathFriendsList[] = "/friends.db"; static constexpr char PathLimeDatabase[] = "/x3dh.c25519.sqlite3"; static constexpr char PathMessageHistoryList[] = "/message-history.db"; From 31742202b90dee5d4a7cf466fa8d9d0a04c282a4 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 15:36:05 +0100 Subject: [PATCH 14/17] Linux : Generate linphone.desktop file to ~/.local/share/applications from menu. --- linphone-app/assets/languages/cs.ts | 10 +++++ linphone-app/assets/languages/da.ts | 10 +++++ linphone-app/assets/languages/de.ts | 10 +++++ linphone-app/assets/languages/en.ts | 10 +++++ linphone-app/assets/languages/es.ts | 10 +++++ linphone-app/assets/languages/fr_FR.ts | 10 +++++ linphone-app/assets/languages/hu.ts | 10 +++++ linphone-app/assets/languages/it.ts | 10 +++++ linphone-app/assets/languages/ja.ts | 10 +++++ linphone-app/assets/languages/lt.ts | 10 +++++ linphone-app/assets/languages/pt_BR.ts | 10 +++++ linphone-app/assets/languages/ru.ts | 10 +++++ linphone-app/assets/languages/sv.ts | 10 +++++ linphone-app/assets/languages/tr.ts | 10 +++++ linphone-app/assets/languages/uk.ts | 10 +++++ linphone-app/assets/languages/zh_CN.ts | 10 +++++ linphone-app/src/app/App.cpp | 45 ++++++++++++++----- linphone-app/src/app/App.hpp | 5 +++ .../ui/views/App/Main/MainWindowMenuBar.qml | 7 +++ .../views/App/Main/MainWindowTopMenuBar.qml | 7 ++- 20 files changed, 212 insertions(+), 12 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index cddd12a6d..bf0fb3300 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -2055,6 +2055,11 @@ Klikněte zde: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Nahrávky + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2080,6 +2085,11 @@ Klikněte zde: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Nahrávky + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 5ec4d08ae..328c06d37 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -2044,6 +2044,11 @@ Klik her: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Klik her: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index 9b51c35b7..7415d1d42 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -2044,6 +2044,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Aufzeichnungen + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Aufzeichnungen + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 123d79b63..6f99490d6 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -2044,6 +2044,11 @@ Click here: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Recordings + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + Export %1.desktop file to applications + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Click here: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Recordings + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + Export %1.desktop file to applications + ManageAccounts diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 85aa80cf4..a8bcad130 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -2044,6 +2044,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 2879dbe3e..504cdbae0 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -2044,6 +2044,11 @@ Cliquez ici : <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Enregistrements + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Cliquez ici : <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Enregistrements + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 21679dc56..d220cb88c 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -2033,6 +2033,11 @@ Kattintson ide: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2058,6 +2063,11 @@ Kattintson ide: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index d2ed74cc4..7f26b25c9 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -2044,6 +2044,11 @@ Clicca: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Clicca: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index 95ca61732..1b16a0e64 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -2033,6 +2033,11 @@ 'Recordings' : Label for the recordings menu. 録音 + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2058,6 +2063,11 @@ 'Recordings' : Label for the recordings menu. 録音 + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index 02e996761..7e768d0a2 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -2055,6 +2055,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2080,6 +2085,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 0d285739a..b07f3139d 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -2044,6 +2044,11 @@ Clique aqui: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. Gravações + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Clique aqui: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. Gravações + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index 128692583..f21fbc900 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -2055,6 +2055,11 @@ 'Recordings' : Label for the recordings menu. Записи + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2080,6 +2085,11 @@ 'Recordings' : Label for the recordings menu. Записи + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 4d740b855..befde22b4 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -2044,6 +2044,11 @@ Klicka här: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2069,6 +2074,11 @@ Klicka här: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 144eada19..a34e88dec 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -2033,6 +2033,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2058,6 +2063,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 96f0e2482..48e7b91a1 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -2055,6 +2055,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2080,6 +2085,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 63f1332ea..cb50a0553 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -2033,6 +2033,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2058,6 +2063,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp index e85c834bc..8c9bdf1f8 100644 --- a/linphone-app/src/app/App.cpp +++ b/linphone-app/src/app/App.cpp @@ -73,6 +73,7 @@ using namespace std; namespace { #ifdef Q_OS_LINUX const QString AutoStartDirectory(QDir::homePath().append(QStringLiteral("/.config/autostart/"))); +const QString ApplicationsDirectory(QDir::homePath().append(QStringLiteral("/.local/share/applications/"))); #elif defined(Q_OS_MACOS) const QString OsascriptExecutable(QStringLiteral("osascript")); #else @@ -464,6 +465,7 @@ void App::initContentApp () { mEngine->addImageProvider(ThumbnailProvider::ProviderId, new ThumbnailProvider()); mEngine->rootContext()->setContextProperty("applicationName", APPLICATION_NAME); + mEngine->rootContext()->setContextProperty("executableName", EXECUTABLE_NAME); #ifdef APPLICATION_URL mEngine->rootContext()->setContextProperty("applicationUrl", APPLICATION_URL); @@ -997,23 +999,37 @@ void App::setAutoStart (bool enabled) { } const QString confPath(AutoStartDirectory + EXECUTABLE_NAME ".desktop"); + if(generateDesktopFile(confPath, !enabled)) { + mAutoStart = enabled; + emit autoStartChanged(enabled); + } +} +void App::exportDesktopFile(){ + QDir dir(ApplicationsDirectory); + if (!dir.exists() && !dir.mkpath(ApplicationsDirectory)) { + qWarning() << QStringLiteral("Unable to build applications dir path: `%1`.").arg(ApplicationsDirectory); + return; + } + + const QString confPath(ApplicationsDirectory + EXECUTABLE_NAME ".desktop"); + if(generateDesktopFile(confPath, true)) + generateDesktopFile(confPath, false); +} +bool App::generateDesktopFile(const QString& confPath, bool remove){ qInfo() << QStringLiteral("Updating `%1`...").arg(confPath); QFile file(confPath); - if (!enabled) { + if (remove) { if (file.exists() && !file.remove()) { qWarning() << QLatin1String("Unable to remove autostart file: `" EXECUTABLE_NAME ".desktop`."); - return; + return false; } - - mAutoStart = enabled; - emit autoStartChanged(enabled); - return; + return true; } if (!file.open(QFile::WriteOnly)) { qWarning() << "Unable to open autostart file: `" EXECUTABLE_NAME ".desktop`."; - return; + return false; } const QString binPath(applicationFilePath()); @@ -1044,11 +1060,10 @@ void App::setAutoStart (bool enabled) { "Exec=" + exec + " --iconified\n" "Terminal=false\n" "Categories=Network;Telephony;\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" + "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;x-scheme-handler/" EXECUTABLE_NAME "-config;\n" + "X-PulseAudio-Properties=media.role=phone\n" ); - - mAutoStart = enabled; - emit autoStartChanged(enabled); + return true; } #elif defined(Q_OS_MACOS) @@ -1208,3 +1223,11 @@ bool App::isPdfAvailable(){ return false; #endif } + +bool App::isLinux(){ +#ifdef Q_OS_LINUX + return true; +#else + return false; +#endif +} diff --git a/linphone-app/src/app/App.hpp b/linphone-app/src/app/App.hpp index 2fc5b36a6..352c158f2 100644 --- a/linphone-app/src/app/App.hpp +++ b/linphone-app/src/app/App.hpp @@ -127,6 +127,11 @@ public: // Check module availability when no dependencies are needed (else use SettingsModel) Q_INVOKABLE static bool isPdfAvailable(); + Q_INVOKABLE static bool isLinux(); +#ifdef Q_OS_LINUX + Q_INVOKABLE void exportDesktopFile(); + bool generateDesktopFile(const QString& confPath, bool remove); +#endif public slots: void stateChanged(Qt::ApplicationState); diff --git a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml index b6220b88f..49fd53797 100644 --- a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml +++ b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml @@ -89,6 +89,13 @@ Item { onTriggered: App.checkForUpdates(true) } + MenuItem{ + visible: App.isLinux() + //: 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + text: qsTr('exportDesktopFile').arg(executableName) + onTriggered: App.exportDesktopFile() + } + MenuItem { text: qsTr('about') diff --git a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml index 8381b4ea7..28ff24006 100644 --- a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml +++ b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml @@ -42,7 +42,12 @@ MenuBar { role: MenuItem.ApplicationSpecificRole onTriggered: App.checkForUpdates(true) } - + MenuItem{ + visible: App.isLinux() + //: 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + text: qsTr('exportDesktopFile').arg(executableName) + onTriggered: App.exportDesktopFile() + } MenuItem { text: qsTr('about') role: MenuItem.AboutRole From 86731b4f0bf60490fc45cfe63d18bdf28d561ac5 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 15:16:58 +0000 Subject: [PATCH 15/17] =?UTF-8?q?Translated=20using=20Weblate=20from=20-?= =?UTF-8?q?=20Manuel=20Alejandro=20Rivas=20Toledano=20-=20Libor=20Fil?= =?UTF-8?q?=C3=ADpek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linphone-app/assets/languages/cs.ts | 108 +++++++++++++++++++++------- linphone-app/assets/languages/es.ts | 48 ++++++------- 2 files changed, 106 insertions(+), 50 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index bf0fb3300..9a91858c3 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -262,42 +262,42 @@ noAccountExists "Account doesn't exist" : Warning message when no account has been found - + Účet již neexistuje recoveringAccount 'Recovering account' : User message for recovering step. - + Obnova účtu Cannot open validation url for the account creation request token "Cannot open validation URL for the account creation request token" : Warning message. - + Nelze otevřít adresu URL pro ověření tokenu žádosti o vytvoření účtu waitingValidation 'Waiting for validation at %1' : User message for validation. %1 is an URL. - + Čekání na ověření %1 wrongTokenRequest 'The answer of account creation request token doesn't have token and validation_url fields' : Status message - + Odpověď tokenu požadavku na vytvoření účtu neobsahuje pole token a validation_url tokenError 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. - + Nelze získat token požadavku pro vytvoření účtu (%1)' requestingValidationUrl 'Requesting validation URL' : Status message - + Vyžádání adresy URL pro ověřování loginStep 'Connecting' : Status message - + Připojování @@ -496,27 +496,27 @@ callListTitle 'Call list' : Call histories title - + Historie volání incomingFilter 'Incoming' : Filter label for incoming call - + Příchozí outgoingFilter 'Outgoing' : Filter label for outgoing call - + Odchozí missedFilter 'Missed' : Filter label for missed call - + Zmeškané searchListPlaceholderText 'Search in the list' : ths is a placeholder when searching something in a list - + Hledat v seznamu @@ -991,7 +991,7 @@ Adresa URL není nakonfigurována. createMeeting 'Create Meeting' : Button label to create a meeting - + Vytvořit schůzku @@ -1097,7 +1097,7 @@ Adresa URL není nakonfigurována. displayName 'Display Name' : placeholder for setting display name on a contact - + Zobrazené jméno @@ -1127,17 +1127,17 @@ Adresa URL není nakonfigurována. localContactsEntry 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. - Místní kontakty + Místní kontakty contactsEntry 'Contacts' : Contacts section label in main waindow. - KONTAKTY + Kontakty selectOnlineContacts 'Online' : Filter label to display only online contacts. - + Online @@ -1508,12 +1508,13 @@ Adresa URL není nakonfigurována. remoteProvisioningWarnAccountOverwrite - An account is already provisioned. This action will erase the existing account. : Warn user about it. + 'An account is already provisioned. This action will erase the existing account. : Warn user about it. + Účet je již vytvořen. Tato akce vymaže stávající účet. : Upozorněte na to uživatele. lastProvisioningFailed 'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed. - Poslední vzdálené zajištění selhalo + Vzdálené poskytování nastavení selhalo. Odkaz může být použit nebo jeho platnost vypršela. Pokud vám byl poskytnut, obraťte se na správce. generateLabel @@ -1977,22 +1978,22 @@ Klikněte zde: <a href="%1">%1</a> openCalls 'Open call history' : Tooltip for a button that open the call history view - + Otevřít historii volání openChats 'Open chats' : Tooltip for a button that open the conversations view - + Otevřít chaty openContacts 'Open contacts' : Tooltip for a button that open the contacts view - + Otevřít kontakty openMeetings 'Open meetings' : Tooltip for a button that open the meetings list - + Otevřít schůzky lastProvisioningFailed @@ -2740,7 +2741,7 @@ Klikněte zde: <a href="%1">%1</a> loginWithUsernameFailed - Přihlášení se nezdařilo. Zkontrolujte prosím uživatelské jméno/heslo. + Přihlášení se nezdařilo. Zkontrolujte prosím své uživatelské jméno/heslo. @@ -4117,7 +4118,7 @@ Klikněte zde: <a href="%1">%1</a> chatsTitle 'Messages' : Title for conversations - + Zprávy @@ -5286,4 +5287,59 @@ Klikněte zde: <a href="%1">%1</a> OK + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index a8bcad130..c5de931b6 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -18,7 +18,7 @@ noAccount 'No account configured' : Status text when there is no configured account. - + No hay ninguna cuenta configurada @@ -127,7 +127,7 @@ commandLineOptionQtLogsOnly - + Imprimir solo logs de la aplicación @@ -262,42 +262,42 @@ noAccountExists "Account doesn't exist" : Warning message when no account has been found - + La cuenta no existe recoveringAccount 'Recovering account' : User message for recovering step. - + Recuperando cuenta Cannot open validation url for the account creation request token "Cannot open validation URL for the account creation request token" : Warning message. - + No fue posible abrir la URL de validación para el token de solicitud de creación de cuenta waitingValidation 'Waiting for validation at %1' : User message for validation. %1 is an URL. - + Esperando la validación en %1 wrongTokenRequest 'The answer of account creation request token doesn't have token and validation_url fields' : Status message - + La respuesta a la solicitud de token para la creación de cuenta no tiene los campos token ni validation_url tokenError 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. - + No se puede obtener el token de solicitud para crear la cuenta (%1) requestingValidationUrl 'Requesting validation URL' : Status message - + Solicitando URL de validación loginStep 'Connecting' : Status message - + Conectando @@ -431,37 +431,37 @@ callErrorHangUp - + La contraparte remota colgó la llamada. callStatsMediaEncryption 'Media encryption' : label in encryption section of call statistics - + Encripción de los datos multimedia callStatsCipherAlgo 'Cipher algorithm' : label in encryption section of call statistics - + Algoritmo de cifrado callStatsKeyAgreementAlgo 'Key agreement algorithm' : label in encryption section of call statistics - + Algoritmo de establecimiento de llaves callStatsHashAlgo 'Hash algorithm' : label in encryption section of call statistics - + Algoritmo hash callStatsAuthAlgo 'Authentication algorithm' : label in encryption section of call statistics - + Algoritmo de autenticación callStatsSasAlgo 'SAS algorithm' : label in encryption section of call statistics - + Algoritmo SAS @@ -488,7 +488,7 @@ mediaEncryptionLabel 'Media encryption' : title in call statistics for the encryption section - + Encripción de los datos multimedia @@ -496,27 +496,27 @@ callListTitle 'Call list' : Call histories title - + Lista de llamadas incomingFilter 'Incoming' : Filter label for incoming call - + Entrante outgoingFilter 'Outgoing' : Filter label for outgoing call - + Saliente missedFilter 'Missed' : Filter label for missed call - + Perdida searchListPlaceholderText 'Search in the list' : ths is a placeholder when searching something in a list - + Buscar en la lista @@ -614,7 +614,7 @@ URL del servidor no configurada. conferencesCopiedICS - La conferencia ICS ha sido copiada + La invitación ha sido copiada confirmForward From 761d552e1bab09b0d6a55be6b65a9dabe38bfec8 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 15:33:47 +0000 Subject: [PATCH 16/17] Translated using Weblate --- linphone-app/assets/languages/cs.ts | 67 +++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 12 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index 9a91858c3..71135aa0f 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -1995,18 +1995,6 @@ Klikněte zde: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list Otevřít schůzky - - lastProvisioningFailed - Poslední vzdálené zajištění selhalo - - - newVersionAvailable - K dispozici je nová verze (%1)! - - - newVersionAvailableInstructions - - cancel @@ -5342,4 +5330,59 @@ Klikněte zde: <a href="%1">%1</a> Ignorovat vždy + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + From 4bcff34139504f87c8d5003e81d2cb57775d2e5e Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 22 Nov 2023 16:38:53 +0100 Subject: [PATCH 17/17] Fix merge conflict on Translated using Weblate --- linphone-app/assets/languages/cs.ts | 59 +++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index 71135aa0f..f9c199260 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -1995,10 +1995,6 @@ Klikněte zde: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list Otevřít schůzky - - cancel - - downloadUpdate @@ -5385,4 +5381,59 @@ Klikněte zde: <a href="%1">%1</a> Ignorovat vždy + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + +