1/*
2 SPDX-FileCopyrightText: 2025 Martin Rodriguez Reboredo <yakoyoku@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#include "wifip2psetting.h"
8
9#include "utils.h"
10
11#include <QDebug>
12
13namespace NetworkManager
14{
15class WifiP2PSettingPrivate
16{
17public:
18 WifiP2PSettingPrivate();
19
20 QString name;
21 QString peer;
22 QByteArray wfdIEs;
23};
24
25}
26
27NetworkManager::WifiP2PSettingPrivate::WifiP2PSettingPrivate()
28 : name(NM_SETTING_WIFI_P2P_SETTING_NAME)
29{
30}
31
32NetworkManager::WifiP2PSetting::WifiP2PSetting()
33 : Setting(Setting::WifiP2P)
34 , d_ptr(std::make_unique<WifiP2PSettingPrivate>())
35{
36}
37
38NetworkManager::WifiP2PSetting::WifiP2PSetting(const Ptr &setting)
39 : Setting(setting)
40 , d_ptr(std::make_unique<WifiP2PSettingPrivate>())
41{
42 setPeer(setting->peer());
43 setWfdIEs(setting->wfdIEs());
44}
45
46NetworkManager::WifiP2PSetting::~WifiP2PSetting() = default;
47
48QString NetworkManager::WifiP2PSetting::name() const
49{
50 Q_D(const WifiP2PSetting);
51
52 return d->name;
53}
54
55QString NetworkManager::WifiP2PSetting::peer() const
56{
57 Q_D(const WifiP2PSetting);
58
59 return d->peer;
60}
61
62void NetworkManager::WifiP2PSetting::setPeer(const QString &peer)
63{
64 Q_D(WifiP2PSetting);
65
66 d->peer = peer;
67}
68
69QByteArray NetworkManager::WifiP2PSetting::wfdIEs() const
70{
71 Q_D(const WifiP2PSetting);
72
73 return d->wfdIEs;
74}
75
76void NetworkManager::WifiP2PSetting::setWfdIEs(const QByteArray &wfdIEs)
77{
78 Q_D(WifiP2PSetting);
79
80 d->wfdIEs = wfdIEs;
81}
82
83void NetworkManager::WifiP2PSetting::fromMap(const QVariantMap &setting)
84{
85 if (setting.contains(key: QLatin1String(NM_SETTING_WIFI_P2P_PEER))) {
86 setPeer(setting.value(key: QLatin1String(NM_SETTING_WIFI_P2P_PEER)).toString());
87 }
88
89 if (setting.contains(key: QLatin1String(NM_SETTING_WIFI_P2P_WFD_IES))) {
90 setWfdIEs(setting.value(key: QLatin1String(NM_SETTING_WIFI_P2P_WFD_IES)).toByteArray());
91 }
92}
93
94QVariantMap NetworkManager::WifiP2PSetting::toMap() const
95{
96 QVariantMap setting;
97
98 if (!peer().isEmpty()) {
99 setting.insert(key: QLatin1String(NM_SETTING_WIFI_P2P_PEER), value: peer());
100 }
101
102 if (!wfdIEs().isEmpty()) {
103 setting.insert(key: QLatin1String(NM_SETTING_WIFI_P2P_WFD_IES), value: wfdIEs());
104 }
105
106 return setting;
107}
108
109QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::WifiP2PSetting &setting)
110{
111 dbg.nospace() << "type: " << setting.typeAsString(type: setting.type()) << '\n';
112 dbg.nospace() << "initialized: " << !setting.isNull() << '\n';
113
114 dbg.nospace() << NM_SETTING_WIFI_P2P_PEER << ": " << setting.peer() << '\n';
115
116 dbg.nospace() << NM_SETTING_WIFI_P2P_WFD_IES << ": " << setting.wfdIEs() << '\n';
117
118 return dbg.maybeSpace();
119}
120

source code of networkmanager-qt/src/settings/wifip2psetting.cpp