From d84149ef2cf29f4d5f46f60e4026534988a32d5e Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 23 Jun 2017 15:26:21 +0200 Subject: [PATCH] feat(SettingsAdvanced): send logs in progress --- assets/languages/en.ts | 8 ++++++ assets/languages/fr.ts | 8 ++++++ assets/linphonerc-factory | 1 + src/app/logger/Logger.cpp | 2 +- src/components/core/CoreManager.cpp | 5 +++- src/components/settings/SettingsModel.cpp | 16 ++++++++++++ src/components/settings/SettingsModel.hpp | 5 ++++ ui/views/App/Main/MainWindow.qml | 1 - ui/views/App/Settings/SettingsAdvanced.qml | 29 +++++++++++++++++++--- ui/views/App/Settings/SettingsWindow.qml | 2 -- 10 files changed, 68 insertions(+), 9 deletions(-) diff --git a/assets/languages/en.ts b/assets/languages/en.ts index 71f39d9c6..6c8893621 100644 --- a/assets/languages/en.ts +++ b/assets/languages/en.ts @@ -977,6 +977,14 @@ your friend's SIP address or username. logsFolderLabel Logs folder + + sendLogs + SEND LOGS + + + logsUploadUrlLabel + Logs upload server url + SettingsAudio diff --git a/assets/languages/fr.ts b/assets/languages/fr.ts index 5e2f2d002..5fbd3e926 100644 --- a/assets/languages/fr.ts +++ b/assets/languages/fr.ts @@ -975,6 +975,14 @@ Cliquez ici : <a href="%1">%1</a> logsFolderLabel Dossier des logs + + sendLogs + ENVOYER LOGS + + + logsUploadUrlLabel + Url du serveur de logs + SettingsAudio diff --git a/assets/linphonerc-factory b/assets/linphonerc-factory index c2570967f..b62791822 100644 --- a/assets/linphonerc-factory +++ b/assets/linphonerc-factory @@ -1,5 +1,6 @@ [misc] version_check_url_root=https://linphone.org/releases +log_collection_upload_server_url=https://www.linphone.org:444/lft.php [sound] ec_filter=MSWebRTCAEC diff --git a/src/app/logger/Logger.cpp b/src/app/logger/Logger.cpp index c93602bb8..3e840caef 100644 --- a/src/app/logger/Logger.cpp +++ b/src/app/logger/Logger.cpp @@ -48,7 +48,7 @@ #define QT_DOMAIN "qt" -#define MAX_LOGS_COLLECTION_SIZE 104857600 /* 100MB. */ +#define MAX_LOGS_COLLECTION_SIZE 10485760 /* 10MB. */ #define SRC_PATTERN "/linphone-desktop/src/" diff --git a/src/components/core/CoreManager.cpp b/src/components/core/CoreManager.cpp index c638616f9..86ba96842 100644 --- a/src/components/core/CoreManager.cpp +++ b/src/components/core/CoreManager.cpp @@ -101,7 +101,10 @@ void CoreManager::forceRefreshRegisters () { void CoreManager::sendLogs () const { Q_CHECK_PTR(mCore); - // TODO. + + qInfo() << QStringLiteral("Send logs to: `%1`.") + .arg(::Utils::coreStringToAppString(mCore->getLogCollectionUploadServerUrl())); + mCore->uploadLogCollection(); } // ----------------------------------------------------------------------------- diff --git a/src/components/settings/SettingsModel.cpp b/src/components/settings/SettingsModel.cpp index 381a8c471..b29301511 100644 --- a/src/components/settings/SettingsModel.cpp +++ b/src/components/settings/SettingsModel.cpp @@ -730,6 +730,22 @@ void SettingsModel::setLogsFolder (const QString &folder) { // ----------------------------------------------------------------------------- +QString SettingsModel::getLogsUploadUrl () const { + return ::Utils::coreStringToAppString( + CoreManager::getInstance()->getCore()->getLogCollectionUploadServerUrl() + ); +} + +void SettingsModel::setLogsUploadUrl (const QString &url) { + CoreManager::getInstance()->getCore()->setLogCollectionUploadServerUrl( + ::Utils::appStringToCoreString(url) + ); + + emit logsUploadUrlChanged(getLogsUploadUrl()); +} + +// ----------------------------------------------------------------------------- + QString SettingsModel::getLogsFolder (const shared_ptr &config) { return ::Utils::coreStringToAppString( config->getString(UI_SECTION, "logs_folder", Paths::getLogsDirPath()) diff --git a/src/components/settings/SettingsModel.hpp b/src/components/settings/SettingsModel.hpp index cd4a6fce2..806b73df0 100644 --- a/src/components/settings/SettingsModel.hpp +++ b/src/components/settings/SettingsModel.hpp @@ -123,6 +123,7 @@ class SettingsModel : public QObject { // Advanced. ----------------------------------------------------------------- Q_PROPERTY(QString logsFolder READ getLogsFolder WRITE setLogsFolder NOTIFY logsFolderChanged); + Q_PROPERTY(QString logsUploadUrl READ getLogsUploadUrl WRITE setLogsUploadUrl NOTIFY logsUploadUrlChanged); public: enum MediaEncryption { @@ -287,6 +288,9 @@ public: QString getLogsFolder () const; void setLogsFolder (const QString &folder); + QString getLogsUploadUrl () const; + void setLogsUploadUrl (const QString &url); + // --------------------------------------------------------------------------- static QString getLogsFolder (const std::shared_ptr &config); @@ -371,6 +375,7 @@ signals: // Advanced. ----------------------------------------------------------------- void logsFolderChanged (const QString &folder); + void logsUploadUrlChanged (const QString &url); private: std::shared_ptr mConfig; diff --git a/ui/views/App/Main/MainWindow.qml b/ui/views/App/Main/MainWindow.qml index de2679fd8..931d3cc23 100644 --- a/ui/views/App/Main/MainWindow.qml +++ b/ui/views/App/Main/MainWindow.qml @@ -38,7 +38,6 @@ ApplicationWindow { minimumHeight: MainWindowStyle.minimumHeight minimumWidth: MainWindowStyle.minimumWidth - width: MainWindowStyle.width title: MainWindowStyle.title diff --git a/ui/views/App/Settings/SettingsAdvanced.qml b/ui/views/App/Settings/SettingsAdvanced.qml index 9cb928851..decf026d7 100644 --- a/ui/views/App/Settings/SettingsAdvanced.qml +++ b/ui/views/App/Settings/SettingsAdvanced.qml @@ -32,12 +32,33 @@ TabContainer { } } } + + FormLine { + FormGroup { + label: qsTr('logsUploadUrlLabel') + + TextField { + text: SettingsModel.logsUploadUrl + + onEditingFinished: SettingsModel.logsUploadUrl = text + } + } + } + + FormEmptyLine {} } - // ------------------------------------------------------------------------- - // Internal features. - // ------------------------------------------------------------------------- + TextButtonB { + anchors.right: parent.right + text: qsTr('sendLogs') - // Nothing for the moment. + onClicked: CoreManager.sendLogs() + } + + // ------------------------------------------------------------------------- + // Internal settings. + // ------------------------------------------------------------------------- + + // Nothing for the moment. } } diff --git a/ui/views/App/Settings/SettingsWindow.qml b/ui/views/App/Settings/SettingsWindow.qml index f28383e39..ce7a1fd25 100644 --- a/ui/views/App/Settings/SettingsWindow.qml +++ b/ui/views/App/Settings/SettingsWindow.qml @@ -12,8 +12,6 @@ import App.Styles 1.0 ApplicationWindow { id: window - height: SettingsWindowStyle.height - width: SettingsWindowStyle.width minimumHeight: SettingsWindowStyle.height minimumWidth: SettingsWindowStyle.width