From b53f2eacfe6b94a00c0e77a52d1d72932eabe516 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Fri, 22 Oct 2021 22:46:11 +0200 Subject: [PATCH] Fix tunnel crash --- .../src/components/tunnel/TunnelModel.cpp | 28 +++++++++++-------- .../ui/views/App/Settings/SettingsWindow.qml | 5 ++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/linphone-app/src/components/tunnel/TunnelModel.cpp b/linphone-app/src/components/tunnel/TunnelModel.cpp index db2606833..a635b8582 100644 --- a/linphone-app/src/components/tunnel/TunnelModel.cpp +++ b/linphone-app/src/components/tunnel/TunnelModel.cpp @@ -42,49 +42,54 @@ TunnelModel::TunnelModel (shared_ptr 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)); } \ No newline at end of file diff --git a/linphone-app/ui/views/App/Settings/SettingsWindow.qml b/linphone-app/ui/views/App/Settings/SettingsWindow.qml index b20f43d4b..fd984ed4a 100644 --- a/linphone-app/ui/views/App/Settings/SettingsWindow.qml +++ b/linphone-app/ui/views/App/Settings/SettingsWindow.qml @@ -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 {