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 }