Update settings when configuration succeed in case it contains settings modifications
This commit is contained in:
parent
37d6649fa4
commit
df979d4270
3 changed files with 137 additions and 26 deletions
|
|
@ -434,6 +434,8 @@ void App::setSelf(QSharedPointer<App>(me)) {
|
||||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Successful) {
|
if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Successful) {
|
||||||
bool accountConnected = account && account->getState() == linphone::RegistrationState::Ok;
|
bool accountConnected = account && account->getState() == linphone::RegistrationState::Ok;
|
||||||
|
// update settings if case config contains changes
|
||||||
|
if (mSettings) mSettings->reloadSettings();
|
||||||
mCoreModelConnection->invokeToCore([this, accountConnected]() {
|
mCoreModelConnection->invokeToCore([this, accountConnected]() {
|
||||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||||
// There is an account added by a remote provisioning, force switching to main page
|
// There is an account added by a remote provisioning, force switching to main page
|
||||||
|
|
@ -443,6 +445,9 @@ void App::setSelf(QSharedPointer<App>(me)) {
|
||||||
Q_ARG(QVariant, accountConnected));
|
Q_ARG(QVariant, accountConnected));
|
||||||
}
|
}
|
||||||
mPossiblyLookForAddedAccount = false;
|
mPossiblyLookForAddedAccount = false;
|
||||||
|
// setLocale(mSettings->getConfigLocale());
|
||||||
|
// setAutoStart(mSettings->getAutoStart());
|
||||||
|
// setQuitOnLastWindowClosed(mSettings->getExitOnClose());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -640,7 +645,7 @@ void App::initCore() {
|
||||||
lDebug() << log().arg("Creating SettingsModel");
|
lDebug() << log().arg("Creating SettingsModel");
|
||||||
SettingsModel::create();
|
SettingsModel::create();
|
||||||
lDebug() << log().arg("Creating SettingsCore");
|
lDebug() << log().arg("Creating SettingsCore");
|
||||||
if (!settings) settings = SettingsCore::create();
|
settings = SettingsCore::create();
|
||||||
lDebug() << log().arg("Checking downloaded codecs updates");
|
lDebug() << log().arg("Checking downloaded codecs updates");
|
||||||
Utils::checkDownloadedCodecsUpdates();
|
Utils::checkDownloadedCodecsUpdates();
|
||||||
lDebug() << log().arg("Setting Video Codec Priority Policy");
|
lDebug() << log().arg("Setting Video Codec Priority Policy");
|
||||||
|
|
@ -722,30 +727,30 @@ void App::initCore() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!mSettings) {
|
// if (!mSettings) {
|
||||||
mSettings = settings;
|
mSettings = settings;
|
||||||
setLocale(settings->getConfigLocale());
|
setLocale(settings->getConfigLocale());
|
||||||
setAutoStart(settings->getAutoStart());
|
setAutoStart(settings->getAutoStart());
|
||||||
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||||
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
|
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
|
||||||
|
|
||||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||||
Qt::UniqueConnection);
|
Qt::UniqueConnection);
|
||||||
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
|
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
|
||||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||||
setAutoStart(mSettings->getAutoStart());
|
setAutoStart(mSettings->getAutoStart());
|
||||||
});
|
});
|
||||||
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
|
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
|
||||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||||
if (mSettings) setLocale(mSettings->getConfigLocale());
|
if (mSettings) setLocale(mSettings->getConfigLocale());
|
||||||
});
|
});
|
||||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||||
Qt::UniqueConnection);
|
Qt::UniqueConnection);
|
||||||
} else {
|
// } else {
|
||||||
setLocale(settings->getConfigLocale());
|
// setLocale(settings->getConfigLocale());
|
||||||
setAutoStart(settings->getAutoStart());
|
// setAutoStart(settings->getAutoStart());
|
||||||
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
// setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||||
}
|
// }
|
||||||
const QUrl url("qrc:/qt/qml/Linphone/view/Page/Window/Main/MainWindow.qml");
|
const QUrl url("qrc:/qt/qml/Linphone/view/Page/Window/Main/MainWindow.qml");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
mEngine, &QQmlApplicationEngine::objectCreated, this,
|
mEngine, &QQmlApplicationEngine::objectCreated, this,
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,6 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) {
|
||||||
INIT_CORE_MEMBER(HideAccountSettings, settingsModel)
|
INIT_CORE_MEMBER(HideAccountSettings, settingsModel)
|
||||||
INIT_CORE_MEMBER(DisableCallRecordings, settingsModel)
|
INIT_CORE_MEMBER(DisableCallRecordings, settingsModel)
|
||||||
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
|
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
|
||||||
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
|
|
||||||
INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel)
|
INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel)
|
||||||
|
|
||||||
INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel)
|
INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel)
|
||||||
|
|
@ -239,6 +238,110 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) {
|
||||||
SettingsCore::~SettingsCore() {
|
SettingsCore::~SettingsCore() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsCore::reloadSettings() {
|
||||||
|
mustBeInLinphoneThread(getClassName());
|
||||||
|
auto settingsModel = SettingsModel::getInstance();
|
||||||
|
assert(settingsModel);
|
||||||
|
|
||||||
|
// Security
|
||||||
|
setVfsEnabled(settingsModel->getVfsEnabled());
|
||||||
|
|
||||||
|
// Call
|
||||||
|
setVideoEnabled(settingsModel->getVideoEnabled());
|
||||||
|
setEchoCancellationEnabled(settingsModel->getEchoCancellationEnabled());
|
||||||
|
setAutoDownloadReceivedFiles(settingsModel->getAutoDownloadReceivedFiles());
|
||||||
|
setAutomaticallyRecordCallsEnabled(settingsModel->getAutomaticallyRecordCallsEnabled());
|
||||||
|
setRingtone(settingsModel->getRingtone());
|
||||||
|
|
||||||
|
// Network
|
||||||
|
setIpv6Enabled(settingsModel->getIpv6Enabled());
|
||||||
|
|
||||||
|
// Advanced
|
||||||
|
setAutoStart(settingsModel->getAutoStart());
|
||||||
|
setHideFps(settingsModel->getHideFps());
|
||||||
|
|
||||||
|
// Audio
|
||||||
|
setCaptureDevices(settingsModel->getCaptureDevices());
|
||||||
|
setPlaybackDevices(settingsModel->getPlaybackDevices());
|
||||||
|
setRingerDevices(settingsModel->getRingerDevices());
|
||||||
|
setCaptureDevice(settingsModel->getCaptureDevice());
|
||||||
|
setPlaybackDevice(settingsModel->getPlaybackDevice());
|
||||||
|
setRingerDevice(settingsModel->getRingerDevice());
|
||||||
|
|
||||||
|
setConferenceLayout(
|
||||||
|
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultConferenceLayout())));
|
||||||
|
|
||||||
|
setMediaEncryption(
|
||||||
|
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption())));
|
||||||
|
|
||||||
|
setMediaEncryptionMandatory(settingsModel->getMediaEncryptionMandatory());
|
||||||
|
setCreateEndToEndEncryptedMeetingsAndGroupCalls(settingsModel->getCreateEndToEndEncryptedMeetingsAndGroupCalls());
|
||||||
|
|
||||||
|
setCaptureGain(settingsModel->getCaptureGain());
|
||||||
|
setPlaybackGain(settingsModel->getPlaybackGain());
|
||||||
|
|
||||||
|
// Video
|
||||||
|
setVideoDevice(settingsModel->getVideoDevice());
|
||||||
|
setVideoDevices(settingsModel->getVideoDevices());
|
||||||
|
|
||||||
|
// Logs
|
||||||
|
setLogsEnabled(settingsModel->getLogsEnabled());
|
||||||
|
setFullLogsEnabled(settingsModel->getFullLogsEnabled());
|
||||||
|
setCrashReporterEnabled(settingsModel->getCrashReporterEnabled());
|
||||||
|
setLogsFolder(settingsModel->getLogsFolder());
|
||||||
|
mLogsEmail = settingsModel->getLogsEmail();
|
||||||
|
|
||||||
|
// DND
|
||||||
|
setDndEnabled(settingsModel->dndEnabled());
|
||||||
|
|
||||||
|
mDefaultDomain = settingsModel->getDefaultDomain();
|
||||||
|
auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount();
|
||||||
|
if (currentAccount) {
|
||||||
|
auto accountDomain = Utils::coreStringToAppString(currentAccount->getParams()->getDomain());
|
||||||
|
setShowAccountDevices(accountDomain == mDefaultDomain);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chat
|
||||||
|
mEmojiFont = settingsModel->getEmojiFont();
|
||||||
|
mTextMessageFont = settingsModel->getTextMessageFont();
|
||||||
|
|
||||||
|
// Check for update
|
||||||
|
mIsCheckForUpdateAvailable = settingsModel->isCheckForUpdateAvailable();
|
||||||
|
|
||||||
|
setDisableChatFeature(settingsModel->getDisableChatFeature());
|
||||||
|
setDisableMeetingsFeature(settingsModel->getDisableMeetingsFeature());
|
||||||
|
setDisableBroadcastFeature(settingsModel->getDisableBroadcastFeature());
|
||||||
|
|
||||||
|
setHideSettings(settingsModel->getHideSettings());
|
||||||
|
setHideAccountSettings(settingsModel->getHideAccountSettings());
|
||||||
|
|
||||||
|
setDisableCallRecordings(settingsModel->getDisableCallRecordings());
|
||||||
|
setAssistantHideCreateAccount(settingsModel->getAssistantHideCreateAccount());
|
||||||
|
setAssistantDisableQrCode(settingsModel->getAssistantDisableQrCode());
|
||||||
|
setAssistantHideThirdPartyAccount(settingsModel->getAssistantHideThirdPartyAccount());
|
||||||
|
setHideSipAddresses(settingsModel->getHideSipAddresses());
|
||||||
|
setDarkModeAllowed(settingsModel->getDarkModeAllowed());
|
||||||
|
setMaxAccount(settingsModel->getMaxAccount());
|
||||||
|
setAssistantGoDirectlyToThirdPartySipAccountLogin(
|
||||||
|
settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin());
|
||||||
|
setAssistantGoDirectlyToThirdPartySipAccountLogin(
|
||||||
|
settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin());
|
||||||
|
setAssistantThirdPartySipAccountDomain(settingsModel->getAssistantThirdPartySipAccountDomain());
|
||||||
|
setAssistantThirdPartySipAccountTransport(settingsModel->getAssistantThirdPartySipAccountTransport());
|
||||||
|
setAutoStart(settingsModel->getAutoStart());
|
||||||
|
setExitOnClose(settingsModel->getExitOnClose());
|
||||||
|
setSyncLdapContacts(settingsModel->getSyncLdapContacts());
|
||||||
|
setConfigLocale(settingsModel->getConfigLocale());
|
||||||
|
setDownloadFolder(settingsModel->getDownloadFolder());
|
||||||
|
|
||||||
|
setCallToneIndicationsEnabled(settingsModel->getCallToneIndicationsEnabled());
|
||||||
|
setCommandLine(settingsModel->getCommandLine());
|
||||||
|
setDisableCommandLine(settingsModel->getDisableCommandLine());
|
||||||
|
setCallForwardToAddress(settingsModel->getCallForwardToAddress());
|
||||||
|
setThemeMainColor(settingsModel->getThemeMainColor());
|
||||||
|
setThemeAboutPictureUrl(settingsModel->getThemeAboutPictureUrl());
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
||||||
mustBeInLinphoneThread(getClassName());
|
mustBeInLinphoneThread(getClassName());
|
||||||
mSettingsModelConnection = SafeConnection<SettingsCore, SettingsModel>::create(me, SettingsModel::getInstance());
|
mSettingsModelConnection = SafeConnection<SettingsCore, SettingsModel>::create(me, SettingsModel::getInstance());
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,8 @@ public:
|
||||||
|
|
||||||
Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged)
|
Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged)
|
||||||
Q_PROPERTY(bool fullLogsEnabled READ getFullLogsEnabled WRITE setFullLogsEnabled NOTIFY fullLogsEnabledChanged)
|
Q_PROPERTY(bool fullLogsEnabled READ getFullLogsEnabled WRITE setFullLogsEnabled NOTIFY fullLogsEnabledChanged)
|
||||||
Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY crashReporterEnabledChanged)
|
Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY
|
||||||
|
crashReporterEnabledChanged)
|
||||||
Q_PROPERTY(QString logsEmail READ getLogsEmail)
|
Q_PROPERTY(QString logsEmail READ getLogsEmail)
|
||||||
Q_PROPERTY(QString logsFolder READ getLogsFolder)
|
Q_PROPERTY(QString logsFolder READ getLogsFolder)
|
||||||
Q_PROPERTY(QString ringtoneName READ getRingtoneFileName NOTIFY ringtoneChanged)
|
Q_PROPERTY(QString ringtoneName READ getRingtoneFileName NOTIFY ringtoneChanged)
|
||||||
|
|
@ -108,6 +109,8 @@ public:
|
||||||
SettingsCore(const SettingsCore &settingsCore);
|
SettingsCore(const SettingsCore &settingsCore);
|
||||||
virtual ~SettingsCore();
|
virtual ~SettingsCore();
|
||||||
|
|
||||||
|
void reloadSettings();
|
||||||
|
|
||||||
void setSelf(QSharedPointer<SettingsCore> me);
|
void setSelf(QSharedPointer<SettingsCore> me);
|
||||||
void reset(const SettingsCore &settingsCore);
|
void reset(const SettingsCore &settingsCore);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue