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