File indexing completed on 2024-05-12 05:36:17

0001 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #include "profilesettings.h"
0005 
0006 #include <KLocalizedString>
0007 
0008 ProfileSettings::ProfileSettings(QObject *parent,
0009                                  QString name,
0010                                  QString apn,
0011                                  QString user,
0012                                  QString password,
0013                                  NetworkManager::GsmSetting::NetworkType networkType,
0014                                  QString connectionUni)
0015     : QObject{parent}
0016     , m_name(name)
0017     , m_apn(apn)
0018     , m_user(user)
0019     , m_password(password)
0020     , m_networkType(networkTypeStr(networkType))
0021     , m_connectionUni(connectionUni)
0022 {
0023     setParent(parent);
0024 }
0025 
0026 ProfileSettings::ProfileSettings(QObject *parent, NetworkManager::Setting::Ptr setting, NetworkManager::Connection::Ptr connection)
0027     : QObject{parent}
0028     , m_connectionUni(connection->uuid())
0029 {
0030     setParent(parent);
0031 
0032     NetworkManager::GsmSetting::Ptr gsmSetting = setting.staticCast<NetworkManager::GsmSetting>();
0033 
0034     m_name = connection->name();
0035     m_apn = gsmSetting->apn();
0036     m_user = gsmSetting->username();
0037     m_password = gsmSetting->password();
0038     m_networkType = networkTypeStr(gsmSetting->networkType());
0039 }
0040 
0041 QString ProfileSettings::name()
0042 {
0043     return m_name;
0044 }
0045 
0046 QString ProfileSettings::apn()
0047 {
0048     return m_apn;
0049 }
0050 
0051 void ProfileSettings::setApn(QString apn)
0052 {
0053     if (apn != m_apn) {
0054         m_apn = apn;
0055         Q_EMIT apnChanged();
0056     }
0057 }
0058 
0059 QString ProfileSettings::user()
0060 {
0061     return m_user;
0062 }
0063 
0064 void ProfileSettings::setUser(QString user)
0065 {
0066     if (user != m_user) {
0067         m_user = user;
0068         Q_EMIT userChanged();
0069     }
0070 }
0071 
0072 QString ProfileSettings::password()
0073 {
0074     return m_password;
0075 }
0076 
0077 void ProfileSettings::setPassword(QString password)
0078 {
0079     if (password != m_password) {
0080         m_password = password;
0081         Q_EMIT passwordChanged();
0082     }
0083 }
0084 
0085 QString ProfileSettings::networkType()
0086 {
0087     return m_networkType;
0088 }
0089 
0090 void ProfileSettings::setNetworkType(QString networkType)
0091 {
0092     if (networkType != m_networkType) {
0093         m_networkType = networkType;
0094         Q_EMIT networkTypeChanged();
0095     }
0096 }
0097 
0098 QString ProfileSettings::connectionUni()
0099 {
0100     return m_connectionUni;
0101 }
0102 
0103 QString ProfileSettings::networkTypeStr(NetworkManager::GsmSetting::NetworkType networkType)
0104 {
0105     if (networkType == NetworkManager::GsmSetting::NetworkType::Any) {
0106         return QStringLiteral("Any");
0107     } else if (networkType == NetworkManager::GsmSetting::NetworkType::GprsEdgeOnly) {
0108         return QStringLiteral("Only 2G");
0109     } else if (networkType == NetworkManager::GsmSetting::NetworkType::Only3G) {
0110         return QStringLiteral("Only 3G");
0111     } else if (networkType == NetworkManager::GsmSetting::NetworkType::Only4GLte) {
0112         return QStringLiteral("Only 4G");
0113     } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer2G) {
0114         return QStringLiteral("2G");
0115     } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer3G) {
0116         return QStringLiteral("3G/2G");
0117     } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer4GLte) {
0118         return QStringLiteral("4G/3G/2G");
0119     }
0120     return QStringLiteral("Any");
0121 }
0122 
0123 NetworkManager::GsmSetting::NetworkType ProfileSettings::networkTypeFlag(const QString &networkType)
0124 {
0125     if (networkType == QStringLiteral("Any")) {
0126         return NetworkManager::GsmSetting::NetworkType::Any;
0127     } else if (networkType == QStringLiteral("Only 2G")) {
0128         return NetworkManager::GsmSetting::NetworkType::GprsEdgeOnly;
0129     } else if (networkType == QStringLiteral("Only 3G")) {
0130         return NetworkManager::GsmSetting::NetworkType::Only3G;
0131     } else if (networkType == QStringLiteral("Only 4G")) {
0132         return NetworkManager::GsmSetting::NetworkType::Only4GLte;
0133     } else if (networkType == QStringLiteral("2G")) {
0134         return NetworkManager::GsmSetting::NetworkType::Prefer2G;
0135     } else if (networkType == QStringLiteral("3G/2G")) {
0136         return NetworkManager::GsmSetting::NetworkType::Prefer3G;
0137     } else if (networkType == QStringLiteral("4G/3G/2G")) {
0138         return NetworkManager::GsmSetting::NetworkType::Prefer4GLte;
0139     }
0140     return NetworkManager::GsmSetting::NetworkType::Any;
0141 }