mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-08-10 09:45:40 +02:00
PluginStoreEndPoint: add possibility to change the plugin store end point
Gitlab: #1341 Change-Id: Ib4516c6cf2361a4976230a6b056a4c072932a92b
This commit is contained in:
parent
f8f1301fa0
commit
d765fc9297
5 changed files with 18 additions and 19 deletions
|
@ -57,6 +57,7 @@ extern const QString defaultDownloadPath;
|
||||||
X(WindowState, QWindow::AutomaticVisibility) \
|
X(WindowState, QWindow::AutomaticVisibility) \
|
||||||
X(EnableExperimentalSwarm, false) \
|
X(EnableExperimentalSwarm, false) \
|
||||||
X(LANG, "SYSTEM") \
|
X(LANG, "SYSTEM") \
|
||||||
|
X(PluginStoreEndpoint, "https://plugins.jami.net") \
|
||||||
X(PositionShareDuration, 15) \
|
X(PositionShareDuration, 15) \
|
||||||
X(PositionShareLimit, true) \
|
X(PositionShareLimit, true) \
|
||||||
X(FlipSelf, true) \
|
X(FlipSelf, true) \
|
||||||
|
|
|
@ -40,12 +40,11 @@ PluginAdapter::PluginAdapter(LRCInstance* instance,
|
||||||
QString baseUrl)
|
QString baseUrl)
|
||||||
: QmlAdapterBase(instance, parent)
|
: QmlAdapterBase(instance, parent)
|
||||||
, pluginStoreListModel_(new PluginStoreListModel(instance, this))
|
, pluginStoreListModel_(new PluginStoreListModel(instance, this))
|
||||||
, pluginVersionManager_(new PluginVersionManager(instance, baseUrl, this))
|
, pluginVersionManager_(new PluginVersionManager(instance, this))
|
||||||
, pluginListModel_(new PluginListModel(instance, this))
|
, pluginListModel_(new PluginListModel(instance, this))
|
||||||
, lrcInstance_(instance)
|
, lrcInstance_(instance)
|
||||||
, settingsManager_(settingsManager)
|
, settingsManager_(settingsManager)
|
||||||
, tempPath_(QDir::tempPath())
|
, tempPath_(QDir::tempPath())
|
||||||
, baseUrl_(baseUrl)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel");
|
QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel");
|
||||||
|
@ -99,7 +98,7 @@ PluginAdapter::getPluginsFromStore()
|
||||||
const auto& language = settingsManager_->getLanguage();
|
const auto& language = settingsManager_->getLanguage();
|
||||||
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
|
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
|
||||||
pluginVersionManager_
|
pluginVersionManager_
|
||||||
->sendGetRequest(QUrl(baseUrl_
|
->sendGetRequest(QUrl(baseUrl()
|
||||||
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
||||||
header,
|
header,
|
||||||
[this, errorHandler](const QByteArray& data) {
|
[this, errorHandler](const QByteArray& data) {
|
||||||
|
@ -127,7 +126,7 @@ PluginAdapter::getPluginDetails(const QString& pluginId)
|
||||||
const auto& language = settingsManager_->getLanguage();
|
const auto& language = settingsManager_->getLanguage();
|
||||||
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
|
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
|
||||||
pluginVersionManager_
|
pluginVersionManager_
|
||||||
->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId
|
->sendGetRequest(QUrl(baseUrl() + "/details/" + pluginId
|
||||||
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
||||||
header,
|
header,
|
||||||
[this](const QByteArray& data) {
|
[this](const QByteArray& data) {
|
||||||
|
@ -214,19 +213,19 @@ PluginAdapter::checkVersionStatus(const QString& pluginId)
|
||||||
QString
|
QString
|
||||||
PluginAdapter::baseUrl() const
|
PluginAdapter::baseUrl() const
|
||||||
{
|
{
|
||||||
return baseUrl_;
|
return settingsManager_->getValue("PluginStoreEndpoint").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString
|
QString
|
||||||
PluginAdapter::getIconUrl(const QString& pluginId) const
|
PluginAdapter::getIconUrl(const QString& pluginId) const
|
||||||
{
|
{
|
||||||
return baseUrl_ + "/icons/" + pluginId
|
return baseUrl() + "/icons/" + pluginId
|
||||||
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
|
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
|
||||||
}
|
}
|
||||||
|
|
||||||
QString
|
QString
|
||||||
PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const
|
PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const
|
||||||
{
|
{
|
||||||
return baseUrl_ + "/backgrounds/" + pluginId
|
return baseUrl() + "/backgrounds/" + pluginId
|
||||||
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
|
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "pluginlistmodel.h"
|
#include "pluginlistmodel.h"
|
||||||
#include "pluginhandlerlistmodel.h"
|
#include "pluginhandlerlistmodel.h"
|
||||||
#include "pluginlistpreferencemodel.h"
|
#include "pluginlistpreferencemodel.h"
|
||||||
|
#include "appsettingsmanager.h"
|
||||||
#include "pluginversionmanager.h"
|
#include "pluginversionmanager.h"
|
||||||
#include "pluginstorelistmodel.h"
|
#include "pluginstorelistmodel.h"
|
||||||
#include "preferenceitemlistmodel.h"
|
#include "preferenceitemlistmodel.h"
|
||||||
|
@ -78,8 +79,8 @@ private:
|
||||||
std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_;
|
std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_;
|
||||||
|
|
||||||
LRCInstance* lrcInstance_;
|
LRCInstance* lrcInstance_;
|
||||||
|
AppSettingsManager* settingsManager_;
|
||||||
std::mutex mtx_;
|
std::mutex mtx_;
|
||||||
QString tempPath_;
|
QString tempPath_;
|
||||||
QString baseUrl_;
|
QString baseUrl_;
|
||||||
AppSettingsManager* settingsManager_;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,7 +33,7 @@ public:
|
||||||
Impl(LRCInstance* instance, PluginVersionManager& parent)
|
Impl(LRCInstance* instance, PluginVersionManager& parent)
|
||||||
: QObject(nullptr)
|
: QObject(nullptr)
|
||||||
, parent_(parent)
|
, parent_(parent)
|
||||||
, appSettingsManager_(new AppSettingsManager(this))
|
, settingsManager_(new AppSettingsManager(this))
|
||||||
, lrcInstance_(instance)
|
, lrcInstance_(instance)
|
||||||
, tempPath_(QDir::tempPath())
|
, tempPath_(QDir::tempPath())
|
||||||
, updateTimer_(new QTimer(this))
|
, updateTimer_(new QTimer(this))
|
||||||
|
@ -78,12 +78,12 @@ public:
|
||||||
|
|
||||||
bool isAutoUpdaterEnabled()
|
bool isAutoUpdaterEnabled()
|
||||||
{
|
{
|
||||||
return appSettingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool();
|
return settingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setAutoUpdate(bool state)
|
void setAutoUpdate(bool state)
|
||||||
{
|
{
|
||||||
appSettingsManager_->setValue(Settings::Key::PluginAutoUpdate, state);
|
settingsManager_->setValue(Settings::Key::PluginAutoUpdate, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void checkVersionStatus(const QString& pluginId)
|
void checkVersionStatus(const QString& pluginId)
|
||||||
|
@ -103,7 +103,8 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
parent_.sendGetRequest(QUrl(parent_.baseUrl + "/versions/" + plugin.id + "?arch="
|
parent_.sendGetRequest(QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString()
|
||||||
|
+ "/versions/" + plugin.id + "?arch="
|
||||||
+ lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
+ lrcInstance_->pluginModel().getPlatformInfo()["os"]),
|
||||||
[this, plugin](const QByteArray& data) {
|
[this, plugin](const QByteArray& data) {
|
||||||
// `data` represents the version in this case.
|
// `data` represents the version in this case.
|
||||||
|
@ -121,7 +122,7 @@ public:
|
||||||
void installRemotePlugin(const QString& pluginId)
|
void installRemotePlugin(const QString& pluginId)
|
||||||
{
|
{
|
||||||
parent_.downloadFile(
|
parent_.downloadFile(
|
||||||
QUrl(parent_.baseUrl + "/download/"
|
QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + "/download/"
|
||||||
+ lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId),
|
+ lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId),
|
||||||
pluginId,
|
pluginId,
|
||||||
0,
|
0,
|
||||||
|
@ -158,15 +159,14 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
PluginVersionManager& parent_;
|
PluginVersionManager& parent_;
|
||||||
AppSettingsManager* appSettingsManager_ {nullptr};
|
AppSettingsManager* settingsManager_ {nullptr};
|
||||||
LRCInstance* lrcInstance_ {nullptr};
|
LRCInstance* lrcInstance_ {nullptr};
|
||||||
QString tempPath_;
|
QString tempPath_;
|
||||||
QTimer* updateTimer_;
|
QTimer* updateTimer_;
|
||||||
};
|
};
|
||||||
|
|
||||||
PluginVersionManager::PluginVersionManager(LRCInstance* instance, QString& baseUrl, QObject* parent)
|
PluginVersionManager::PluginVersionManager(LRCInstance* instance, QObject* parent)
|
||||||
: NetworkManager(&instance->connectivityMonitor(), parent)
|
: NetworkManager(&instance->connectivityMonitor(), parent)
|
||||||
, baseUrl(baseUrl)
|
|
||||||
, pimpl_(std::make_unique<Impl>(instance, *this))
|
, pimpl_(std::make_unique<Impl>(instance, *this))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,7 @@ class PluginVersionManager final : public NetworkManager
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit PluginVersionManager(LRCInstance* instance,
|
explicit PluginVersionManager(LRCInstance* instance, QObject* parent = nullptr);
|
||||||
QString& baseUrl,
|
|
||||||
QObject* parent = nullptr);
|
|
||||||
~PluginVersionManager();
|
~PluginVersionManager();
|
||||||
|
|
||||||
Q_INVOKABLE bool isAutoUpdaterEnabled();
|
Q_INVOKABLE bool isAutoUpdaterEnabled();
|
||||||
|
|
Loading…
Add table
Reference in a new issue