File indexing completed on 2024-04-14 03:57:33
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "cdmasetting.h" 0008 #include "cdmasetting_p.h" 0009 0010 #include <QDebug> 0011 0012 NetworkManager::CdmaSettingPrivate::CdmaSettingPrivate() 0013 : name(NM_SETTING_CDMA_SETTING_NAME) 0014 , passwordFlags(Setting::None) 0015 { 0016 } 0017 0018 NetworkManager::CdmaSetting::CdmaSetting() 0019 : Setting(Setting::Cdma) 0020 , d_ptr(new CdmaSettingPrivate()) 0021 { 0022 } 0023 0024 NetworkManager::CdmaSetting::CdmaSetting(const Ptr &other) 0025 : Setting(other) 0026 , d_ptr(new CdmaSettingPrivate()) 0027 { 0028 setUsername(other->username()); 0029 setNumber(other->number()); 0030 setPassword(other->password()); 0031 setPasswordFlags(other->passwordFlags()); 0032 } 0033 0034 NetworkManager::CdmaSetting::~CdmaSetting() 0035 { 0036 delete d_ptr; 0037 } 0038 0039 QString NetworkManager::CdmaSetting::name() const 0040 { 0041 Q_D(const CdmaSetting); 0042 0043 return d->name; 0044 } 0045 0046 void NetworkManager::CdmaSetting::setNumber(const QString &number) 0047 { 0048 Q_D(CdmaSetting); 0049 0050 d->number = number; 0051 } 0052 0053 QString NetworkManager::CdmaSetting::number() const 0054 { 0055 Q_D(const CdmaSetting); 0056 0057 return d->number; 0058 } 0059 0060 void NetworkManager::CdmaSetting::setUsername(const QString &username) 0061 { 0062 Q_D(CdmaSetting); 0063 0064 d->username = username; 0065 } 0066 0067 QString NetworkManager::CdmaSetting::username() const 0068 { 0069 Q_D(const CdmaSetting); 0070 0071 return d->username; 0072 } 0073 0074 void NetworkManager::CdmaSetting::setPassword(const QString &password) 0075 { 0076 Q_D(CdmaSetting); 0077 0078 d->password = password; 0079 } 0080 0081 QString NetworkManager::CdmaSetting::password() const 0082 { 0083 Q_D(const CdmaSetting); 0084 0085 return d->password; 0086 } 0087 0088 void NetworkManager::CdmaSetting::setPasswordFlags(NetworkManager::Setting::SecretFlags flags) 0089 { 0090 Q_D(CdmaSetting); 0091 0092 d->passwordFlags = flags; 0093 } 0094 0095 NetworkManager::Setting::SecretFlags NetworkManager::CdmaSetting::passwordFlags() const 0096 { 0097 Q_D(const CdmaSetting); 0098 0099 return d->passwordFlags; 0100 } 0101 0102 QStringList NetworkManager::CdmaSetting::needSecrets(bool requestNew) const 0103 { 0104 QStringList secrets; 0105 if (!username().isEmpty()) { 0106 if ((password().isEmpty() || requestNew) && !passwordFlags().testFlag(NotRequired)) { 0107 secrets << QLatin1String(NM_SETTING_CDMA_PASSWORD); 0108 } 0109 } 0110 0111 return secrets; 0112 } 0113 0114 void NetworkManager::CdmaSetting::secretsFromMap(const QVariantMap &secrets) 0115 { 0116 if (secrets.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD))) { 0117 setPassword(secrets.value(QLatin1String(NM_SETTING_CDMA_PASSWORD)).toString()); 0118 } 0119 } 0120 0121 QVariantMap NetworkManager::CdmaSetting::secretsToMap() const 0122 { 0123 QVariantMap secrets; 0124 0125 if (!password().isEmpty()) { 0126 secrets.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD), password()); 0127 } 0128 0129 return secrets; 0130 } 0131 0132 void NetworkManager::CdmaSetting::fromMap(const QVariantMap &setting) 0133 { 0134 if (setting.contains(QLatin1String(NM_SETTING_CDMA_NUMBER))) { 0135 setNumber(setting.value(QLatin1String(NM_SETTING_CDMA_NUMBER)).toString()); 0136 } 0137 0138 if (setting.contains(QLatin1String(NM_SETTING_CDMA_USERNAME))) { 0139 setUsername(setting.value(QLatin1String(NM_SETTING_CDMA_USERNAME)).toString()); 0140 } 0141 0142 // SECRETS 0143 if (setting.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD))) { 0144 setPassword(setting.value(QLatin1String(NM_SETTING_CDMA_PASSWORD)).toString()); 0145 } 0146 0147 if (setting.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS))) { 0148 setPasswordFlags((Setting::SecretFlags)setting.value(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS)).toInt()); 0149 } 0150 } 0151 0152 QVariantMap NetworkManager::CdmaSetting::toMap() const 0153 { 0154 QVariantMap setting; 0155 0156 if (!number().isEmpty()) { 0157 setting.insert(QLatin1String(NM_SETTING_CDMA_NUMBER), number()); 0158 } 0159 0160 if (!username().isEmpty()) { 0161 setting.insert(QLatin1String(NM_SETTING_CDMA_USERNAME), username()); 0162 } 0163 0164 // SECRETS 0165 if (!password().isEmpty()) { 0166 setting.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD), password()); 0167 } 0168 0169 if (passwordFlags() != None) { 0170 setting.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS), (int)passwordFlags()); 0171 } 0172 0173 return setting; 0174 } 0175 0176 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::CdmaSetting &setting) 0177 { 0178 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0179 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0180 0181 dbg.nospace() << NM_SETTING_CDMA_NUMBER << ": " << setting.number() << '\n'; 0182 dbg.nospace() << NM_SETTING_CDMA_USERNAME << ": " << setting.username() << '\n'; 0183 dbg.nospace() << NM_SETTING_CDMA_PASSWORD << ": " << setting.password() << '\n'; 0184 dbg.nospace() << NM_SETTING_CDMA_PASSWORD_FLAGS << ": " << setting.passwordFlags() << '\n'; 0185 0186 return dbg.maybeSpace(); 0187 }