Fix tunnel crash

This commit is contained in:
Julien Wadel 2021-10-22 22:46:11 +02:00
parent e404cafc2b
commit b53f2eacfe
2 changed files with 20 additions and 13 deletions

View file

@ -42,49 +42,54 @@ TunnelModel::TunnelModel (shared_ptr<linphone::Tunnel> tunnel, QObject *parent)
// -----------------------------------------------------------------------------
QString TunnelModel::getDomain() const{
return Utils::coreStringToAppString(mTunnel->getDomain());
return mTunnel ? Utils::coreStringToAppString(mTunnel->getDomain()) : "";
}
QString TunnelModel::getUsername() const{
return Utils::coreStringToAppString(mTunnel->getUsername());
return mTunnel ? Utils::coreStringToAppString(mTunnel->getUsername()) : "";
}
bool TunnelModel::getDualModeEnabled() const{
return mTunnel->dualModeEnabled();
return mTunnel ? mTunnel->dualModeEnabled() : false;
}
LinphoneEnums::TunnelMode TunnelModel::getMode() const{
return LinphoneEnums::fromLinphone(mTunnel->getMode());
return mTunnel ? LinphoneEnums::fromLinphone(mTunnel->getMode()) : LinphoneEnums::TunnelMode::TunnelModeDisable;
}
bool TunnelModel::getSipEnabled() const{
return mTunnel->sipEnabled();
return mTunnel ? mTunnel->sipEnabled() : false;
}
// -----------------------------------------------------------------------------
void TunnelModel::setDomain(const QString& data){
mTunnel->setDomain(Utils::appStringToCoreString(data));
if(mTunnel)
mTunnel->setDomain(Utils::appStringToCoreString(data));
emit domainChanged();
}
void TunnelModel::setUsername(const QString& data){
mTunnel->setUsername(Utils::appStringToCoreString(data));
if(mTunnel)
mTunnel->setUsername(Utils::appStringToCoreString(data));
emit usernameChanged();
}
void TunnelModel::setDualModeEnabled(const bool& data){
mTunnel->enableDualMode(data);
if(mTunnel)
mTunnel->enableDualMode(data);
emit dualModeEnabledChanged();
}
void TunnelModel::setMode(const LinphoneEnums::TunnelMode& data){
mTunnel->setMode(LinphoneEnums::toLinphone(data));
if(mTunnel)
mTunnel->setMode(LinphoneEnums::toLinphone(data));
emit modeChanged();
}
void TunnelModel::setSipEnabled(const bool& data){
mTunnel->enableSip(data);
if(mTunnel)
mTunnel->enableSip(data);
emit sipEnabledChanged();
}
@ -124,5 +129,6 @@ bool TunnelModel::getActivated()const{
}
void TunnelModel::setHttpProxy(const QString& host, int port, const QString& username, const QString& passwd){
mTunnel->setHttpProxy(Utils::appStringToCoreString(host), port, Utils::appStringToCoreString(username), Utils::appStringToCoreString(passwd));
if(mTunnel)
mTunnel->setHttpProxy(Utils::appStringToCoreString(host), port, Utils::appStringToCoreString(username), Utils::appStringToCoreString(passwd));
}

View file

@ -85,11 +85,12 @@ ApplicationWindow {
}
TabButton {
enabled: SettingsModel.tunnelAvailable
visible: SettingsModel.tunnelAvailable()
enabled: visible
iconName: 'settings_network'
//: 'Tunnel' : Tab title for tunnel section in settings.
text: qsTr('tunnelTab')
width: implicitWidth
width: visible ? implicitWidth : 0
}
TabButton {