File indexing completed on 2024-04-28 11:47:48
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 "matchsetting.h" 0008 #include "matchsetting_p.h" 0009 0010 #include <QDebug> 0011 0012 #if !NM_CHECK_VERSION(1, 14, 0) 0013 #define NM_SETTING_MATCH_SETTING_NAME "match" 0014 #define NM_SETTING_MATCH_INTERFACE_NAME "interface-name" 0015 #endif 0016 0017 NetworkManager::MatchSettingPrivate::MatchSettingPrivate() 0018 : name(NM_SETTING_MATCH_SETTING_NAME) 0019 { 0020 } 0021 0022 NetworkManager::MatchSetting::MatchSetting() 0023 : Setting(Setting::Match) 0024 , d_ptr(new MatchSettingPrivate()) 0025 { 0026 } 0027 0028 NetworkManager::MatchSetting::MatchSetting(const Ptr &other) 0029 : Setting(other) 0030 , d_ptr(new MatchSettingPrivate()) 0031 { 0032 setInterfaceName(other->interfaceName()); 0033 } 0034 0035 NetworkManager::MatchSetting::~MatchSetting() 0036 { 0037 delete d_ptr; 0038 } 0039 0040 QString NetworkManager::MatchSetting::name() const 0041 { 0042 Q_D(const MatchSetting); 0043 0044 return d->name; 0045 } 0046 0047 void NetworkManager::MatchSetting::setInterfaceName(const QStringList &name) 0048 { 0049 Q_D(MatchSetting); 0050 0051 d->interfaceName = name; 0052 } 0053 0054 QStringList NetworkManager::MatchSetting::interfaceName() const 0055 { 0056 Q_D(const MatchSetting); 0057 0058 return d->interfaceName; 0059 } 0060 0061 void NetworkManager::MatchSetting::fromMap(const QVariantMap &setting) 0062 { 0063 if (setting.contains(QLatin1String(NM_SETTING_MATCH_INTERFACE_NAME))) { 0064 setInterfaceName(setting.value(QLatin1String(NM_SETTING_MATCH_INTERFACE_NAME)).toStringList()); 0065 } 0066 } 0067 0068 QVariantMap NetworkManager::MatchSetting::toMap() const 0069 { 0070 QVariantMap setting; 0071 0072 if (!interfaceName().isEmpty()) { 0073 setting.insert(QLatin1String(NM_SETTING_MATCH_INTERFACE_NAME), interfaceName()); 0074 } 0075 0076 return setting; 0077 } 0078 0079 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::MatchSetting &setting) 0080 { 0081 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0082 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0083 0084 dbg.nospace() << NM_SETTING_MATCH_INTERFACE_NAME << ": " << setting.interfaceName() << '\n'; 0085 0086 return dbg.maybeSpace(); 0087 }