File indexing completed on 2024-04-21 04:00:07
0001 /* 0002 SPDX-FileCopyrightText: Pranav Gade <pranavgade20@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "usersetting.h" 0008 #include "usersetting_p.h" 0009 0010 #include <QDebug> 0011 0012 #if !NM_CHECK_VERSION(1, 8, 0) 0013 #define NM_SETTING_USER_SETTING_NAME "user" 0014 #define NM_SETTING_USER_DATA "data" 0015 #endif 0016 0017 NetworkManager::UserSettingPrivate::UserSettingPrivate() 0018 : name(NM_SETTING_USER_SETTING_NAME) 0019 { 0020 } 0021 0022 NetworkManager::UserSetting::UserSetting() 0023 : Setting(Setting::User) 0024 , d_ptr(new UserSettingPrivate()) 0025 { 0026 } 0027 0028 NetworkManager::UserSetting::UserSetting(const Ptr &other) 0029 : Setting(other) 0030 , d_ptr(new UserSettingPrivate()) 0031 { 0032 setData(other->data()); 0033 } 0034 0035 NetworkManager::UserSetting::~UserSetting() 0036 { 0037 delete d_ptr; 0038 } 0039 0040 QString NetworkManager::UserSetting::name() const 0041 { 0042 Q_D(const UserSetting); 0043 0044 return d->name; 0045 } 0046 0047 void NetworkManager::UserSetting::addData(const QString &data, const QString &value) 0048 { 0049 Q_D(UserSetting); 0050 0051 d->data.insert(data, value); 0052 } 0053 0054 void NetworkManager::UserSetting::setData(const NMStringMap &data) 0055 { 0056 Q_D(UserSetting); 0057 0058 d->data = data; 0059 } 0060 0061 NMStringMap NetworkManager::UserSetting::data() const 0062 { 0063 Q_D(const UserSetting); 0064 0065 return d->data; 0066 } 0067 0068 void NetworkManager::UserSetting::fromMap(const QVariantMap &setting) 0069 { 0070 if (setting.contains(QLatin1String(NM_SETTING_USER_DATA))) { 0071 setData(qdbus_cast<NMStringMap>(setting.value(QLatin1String(NM_SETTING_USER_DATA)))); 0072 } 0073 } 0074 0075 QVariantMap NetworkManager::UserSetting::toMap() const 0076 { 0077 QVariantMap setting; 0078 0079 if (!data().isEmpty()) { 0080 setting.insert(QLatin1String(NM_SETTING_USER_DATA), QVariant::fromValue<NMStringMap>(data())); 0081 } 0082 0083 return setting; 0084 } 0085 0086 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::UserSetting &setting) 0087 { 0088 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0089 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0090 0091 dbg.nospace() << NM_SETTING_USER_DATA << ": " << setting.data() << '\n'; 0092 0093 return dbg.maybeSpace(); 0094 }