mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
Fix transport setting in account parameters
This commit is contained in:
parent
b91c3842a1
commit
521c4eeb02
3 changed files with 36 additions and 19 deletions
|
|
@ -60,8 +60,8 @@ AccountCore::AccountCore(const std::shared_ptr<linphone::Account> &account) : QO
|
|||
mRegisterEnabled = params->registerEnabled();
|
||||
mMwiServerAddress =
|
||||
params->getMwiServerAddress() ? Utils::coreStringToAppString(params->getMwiServerAddress()->asString()) : "";
|
||||
mTransports << "TCP"
|
||||
<< "UDP"
|
||||
mTransports << "UDP"
|
||||
<< "TCP"
|
||||
<< "TLS"
|
||||
<< "DTLS";
|
||||
mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(params->getTransport()));
|
||||
|
|
@ -521,16 +521,24 @@ void AccountCore::setVoicemailAddress(QString value) {
|
|||
|
||||
void AccountCore::setTransport(QString value) {
|
||||
if (mTransport != value) {
|
||||
mTransport = value;
|
||||
emit transportChanged();
|
||||
mAccountModelConnection->invokeToModel([this, value] {
|
||||
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
|
||||
LinphoneEnums::TransportType transport;
|
||||
LinphoneEnums::fromString(value, &transport);
|
||||
mAccountModel->setTransport(LinphoneEnums::toLinphone(transport), false);
|
||||
});
|
||||
setIsSaved(false);
|
||||
}
|
||||
}
|
||||
|
||||
void AccountCore::setServerAddress(QString value) {
|
||||
if (mServerAddress != value) {
|
||||
mServerAddress = value;
|
||||
emit serverAddressChanged();
|
||||
mAccountModelConnection->invokeToModel([this, value, transportString = mTransport] {
|
||||
LinphoneEnums::TransportType transport;
|
||||
LinphoneEnums::fromString(transportString, &transport);
|
||||
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
|
||||
mAccountModel->setServerAddress(value, LinphoneEnums::toLinphone(transport), false);
|
||||
});
|
||||
setIsSaved(false);
|
||||
}
|
||||
}
|
||||
|
|
@ -720,8 +728,8 @@ void AccountCore::writeIntoModel(std::shared_ptr<AccountModel> model) const {
|
|||
model->setMwiServerAddress(mMwiServerAddress);
|
||||
LinphoneEnums::TransportType transport;
|
||||
LinphoneEnums::fromString(mTransport, &transport);
|
||||
model->setTransport(LinphoneEnums::toLinphone(transport));
|
||||
model->setServerAddress(mServerAddress);
|
||||
model->setTransport(LinphoneEnums::toLinphone(transport), true);
|
||||
model->setServerAddress(mServerAddress, LinphoneEnums::toLinphone(transport), true);
|
||||
model->setOutboundProxyEnabled(mOutboundProxyEnabled);
|
||||
model->setStunServer(mStunServer);
|
||||
model->setIceEnabled(mIceEnabled);
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ void AccountModel::setPictureUri(QString uri) {
|
|||
// Hack because Account doesn't provide callbacks on updated data
|
||||
// emit pictureUriChanged(uri);
|
||||
auto core = CoreModel::getInstance()->getCore();
|
||||
emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount());
|
||||
emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount());
|
||||
}
|
||||
|
||||
void AccountModel::onDefaultAccountChanged() {
|
||||
|
|
@ -150,7 +150,7 @@ void AccountModel::setDisplayName(QString displayName) {
|
|||
// Hack because Account doesn't provide callbacks on updated data
|
||||
// emit displayNameChanged(displayName);
|
||||
auto core = CoreModel::getInstance()->getCore();
|
||||
emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount());
|
||||
emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount());
|
||||
}
|
||||
|
||||
void AccountModel::setDialPlan(int index) {
|
||||
|
|
@ -222,26 +222,35 @@ linphone::TransportType AccountModel::getTransport() const {
|
|||
return mMonitor->getParams()->getTransport();
|
||||
}
|
||||
|
||||
void AccountModel::setTransport(linphone::TransportType value) {
|
||||
void AccountModel::setTransport(linphone::TransportType value, bool save) {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
auto params = mMonitor->getParams()->clone();
|
||||
params->setTransport(value);
|
||||
mMonitor->setParams(params);
|
||||
emit transportChanged(value);
|
||||
if (params->getServerAddress()) {
|
||||
auto addressClone = params->getServerAddress()->clone();
|
||||
addressClone->setTransport(value);
|
||||
params->setServerAddress(addressClone);
|
||||
if (save) mMonitor->setParams(params);
|
||||
emit transportChanged(value);
|
||||
emit serverAddressChanged(Utils::coreStringToAppString(addressClone->asString()));
|
||||
}
|
||||
}
|
||||
|
||||
QString AccountModel::getServerAddress() const {
|
||||
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString());
|
||||
if (mMonitor->getParams()->getServerAddress())
|
||||
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString());
|
||||
else return "";
|
||||
}
|
||||
|
||||
void AccountModel::setServerAddress(QString value) {
|
||||
void AccountModel::setServerAddress(QString value, linphone::TransportType transport, bool save) {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
auto params = mMonitor->getParams()->clone();
|
||||
auto address = CoreModel::getInstance()->getCore()->interpretUrl(Utils::appStringToCoreString(value), false);
|
||||
if (address) {
|
||||
if (save) address->setTransport(transport);
|
||||
params->setServerAddress(address);
|
||||
mMonitor->setParams(params);
|
||||
if (save) mMonitor->setParams(params);
|
||||
emit serverAddressChanged(value);
|
||||
emit transportChanged(address->getTransport());
|
||||
} else qWarning() << "Unable to set ServerAddress, failed creating address from" << value;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ public:
|
|||
QString getMwiServerAddress() const;
|
||||
void setMwiServerAddress(QString value);
|
||||
linphone::TransportType getTransport() const;
|
||||
void setTransport(linphone::TransportType value);
|
||||
void setTransport(linphone::TransportType value, bool save);
|
||||
QString getServerAddress() const;
|
||||
void setServerAddress(QString value);
|
||||
void setServerAddress(QString value, linphone::TransportType transport, bool save);
|
||||
bool getOutboundProxyEnabled() const;
|
||||
void setOutboundProxyEnabled(bool value);
|
||||
QString getStunServer() const;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue