mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-27 08:49:19 +00:00
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));
|
||||
if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Successful) {
|
||||
bool accountConnected = account && account->getState() == linphone::RegistrationState::Ok;
|
||||
// update settings if case config contains changes
|
||||
if (mSettings) mSettings->reloadSettings();
|
||||
mCoreModelConnection->invokeToCore([this, accountConnected]() {
|
||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||
// 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));
|
||||
}
|
||||
mPossiblyLookForAddedAccount = false;
|
||||
// setLocale(mSettings->getConfigLocale());
|
||||
// setAutoStart(mSettings->getAutoStart());
|
||||
// setQuitOnLastWindowClosed(mSettings->getExitOnClose());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -640,7 +645,7 @@ void App::initCore() {
|
|||
lDebug() << log().arg("Creating SettingsModel");
|
||||
SettingsModel::create();
|
||||
lDebug() << log().arg("Creating SettingsCore");
|
||||
if (!settings) settings = SettingsCore::create();
|
||||
settings = SettingsCore::create();
|
||||
lDebug() << log().arg("Checking downloaded codecs updates");
|
||||
Utils::checkDownloadedCodecsUpdates();
|
||||
lDebug() << log().arg("Setting Video Codec Priority Policy");
|
||||
|
|
@ -722,30 +727,30 @@ void App::initCore() {
|
|||
}
|
||||
});
|
||||
|
||||
if (!mSettings) {
|
||||
mSettings = settings;
|
||||
setLocale(settings->getConfigLocale());
|
||||
setAutoStart(settings->getAutoStart());
|
||||
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
|
||||
// if (!mSettings) {
|
||||
mSettings = settings;
|
||||
setLocale(settings->getConfigLocale());
|
||||
setAutoStart(settings->getAutoStart());
|
||||
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
|
||||
|
||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||
Qt::UniqueConnection);
|
||||
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
|
||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||
setAutoStart(mSettings->getAutoStart());
|
||||
});
|
||||
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
|
||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||
if (mSettings) setLocale(mSettings->getConfigLocale());
|
||||
});
|
||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||
Qt::UniqueConnection);
|
||||
} else {
|
||||
setLocale(settings->getConfigLocale());
|
||||
setAutoStart(settings->getAutoStart());
|
||||
setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||
}
|
||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||
Qt::UniqueConnection);
|
||||
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
|
||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||
setAutoStart(mSettings->getAutoStart());
|
||||
});
|
||||
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
|
||||
mustBeInMainThread(log().arg(Q_FUNC_INFO));
|
||||
if (mSettings) setLocale(mSettings->getConfigLocale());
|
||||
});
|
||||
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
|
||||
Qt::UniqueConnection);
|
||||
// } else {
|
||||
// setLocale(settings->getConfigLocale());
|
||||
// setAutoStart(settings->getAutoStart());
|
||||
// setQuitOnLastWindowClosed(settings->getExitOnClose());
|
||||
// }
|
||||
const QUrl url("qrc:/qt/qml/Linphone/view/Page/Window/Main/MainWindow.qml");
|
||||
QObject::connect(
|
||||
mEngine, &QQmlApplicationEngine::objectCreated, this,
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) {
|
|||
INIT_CORE_MEMBER(HideAccountSettings, settingsModel)
|
||||
INIT_CORE_MEMBER(DisableCallRecordings, settingsModel)
|
||||
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
|
||||
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
|
||||
INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel)
|
||||
|
||||
INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel)
|
||||
|
|
@ -239,6 +238,110 @@ SettingsCore::SettingsCore(const 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) {
|
||||
mustBeInLinphoneThread(getClassName());
|
||||
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 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 logsFolder READ getLogsFolder)
|
||||
Q_PROPERTY(QString ringtoneName READ getRingtoneFileName NOTIFY ringtoneChanged)
|
||||
|
|
@ -108,6 +109,8 @@ public:
|
|||
SettingsCore(const SettingsCore &settingsCore);
|
||||
virtual ~SettingsCore();
|
||||
|
||||
void reloadSettings();
|
||||
|
||||
void setSelf(QSharedPointer<SettingsCore> me);
|
||||
void reset(const SettingsCore &settingsCore);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue