File indexing completed on 2024-04-21 16:20:18
0001 /* 0002 SPDX-FileCopyrightText: 2013-2018 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 "networkitemslist.h" 0008 #include "networkmodelitem.h" 0009 0010 NetworkItemsList::NetworkItemsList(QObject *parent) 0011 : QObject(parent) 0012 { 0013 } 0014 0015 NetworkItemsList::~NetworkItemsList() 0016 { 0017 qDeleteAll(m_items); 0018 } 0019 0020 bool NetworkItemsList::contains(const NetworkItemsList::FilterType type, const QString ¶meter) const 0021 { 0022 for (NetworkModelItem *item : m_items) { 0023 switch (type) { 0024 case NetworkItemsList::ActiveConnection: 0025 if (item->activeConnectionPath() == parameter) { 0026 return true; 0027 } 0028 break; 0029 case NetworkItemsList::Connection: 0030 if (item->connectionPath() == parameter) { 0031 return true; 0032 } 0033 break; 0034 case NetworkItemsList::Device: 0035 if (item->devicePath() == parameter) { 0036 return true; 0037 } 0038 break; 0039 case NetworkItemsList::Name: 0040 if (item->name() == parameter) { 0041 return true; 0042 } 0043 break; 0044 case NetworkItemsList::Ssid: 0045 if (item->ssid() == parameter) { 0046 return true; 0047 } 0048 break; 0049 case NetworkItemsList::Uuid: 0050 if (item->uuid() == parameter) { 0051 return true; 0052 } 0053 break; 0054 case NetworkItemsList::Type: 0055 break; 0056 default: 0057 break; 0058 } 0059 } 0060 0061 return false; 0062 } 0063 0064 int NetworkItemsList::count() const 0065 { 0066 return m_items.count(); 0067 } 0068 0069 int NetworkItemsList::indexOf(NetworkModelItem *item) const 0070 { 0071 return m_items.indexOf(item); 0072 } 0073 0074 void NetworkItemsList::insertItem(NetworkModelItem *item) 0075 { 0076 m_items << item; 0077 } 0078 0079 NetworkModelItem *NetworkItemsList::itemAt(int index) const 0080 { 0081 return m_items.at(index); 0082 } 0083 0084 QList<NetworkModelItem *> NetworkItemsList::items() const 0085 { 0086 return m_items; 0087 } 0088 0089 void NetworkItemsList::removeItem(NetworkModelItem *item) 0090 { 0091 m_items.removeAll(item); 0092 } 0093 0094 QList<NetworkModelItem *> 0095 NetworkItemsList::returnItems(const NetworkItemsList::FilterType type, const QString ¶meter, const QString &additionalParameter) const 0096 { 0097 QList<NetworkModelItem *> result; 0098 0099 for (NetworkModelItem *item : m_items) { 0100 switch (type) { 0101 case NetworkItemsList::ActiveConnection: 0102 if (item->activeConnectionPath() == parameter) { 0103 result << item; 0104 } 0105 break; 0106 case NetworkItemsList::Connection: 0107 if (item->connectionPath() == parameter) { 0108 if (additionalParameter.isEmpty()) { 0109 result << item; 0110 } else { 0111 if (item->devicePath() == additionalParameter) { 0112 result << item; 0113 } 0114 } 0115 } 0116 break; 0117 case NetworkItemsList::Device: 0118 if (item->devicePath() == parameter) { 0119 result << item; 0120 } 0121 break; 0122 case NetworkItemsList::Name: 0123 if (item->name() == parameter) { 0124 result << item; 0125 } 0126 break; 0127 case NetworkItemsList::Ssid: 0128 if (item->ssid() == parameter) { 0129 if (additionalParameter.isEmpty()) { 0130 result << item; 0131 } else { 0132 if (item->devicePath() == additionalParameter) { 0133 result << item; 0134 } 0135 } 0136 } 0137 break; 0138 case NetworkItemsList::Uuid: 0139 if (item->uuid() == parameter) { 0140 result << item; 0141 } 0142 break; 0143 case NetworkItemsList::Type: 0144 break; 0145 } 0146 } 0147 0148 return result; 0149 } 0150 0151 QList<NetworkModelItem *> NetworkItemsList::returnItems(const NetworkItemsList::FilterType type, 0152 NetworkManager::ConnectionSettings::ConnectionType typeParameter) const 0153 { 0154 QList<NetworkModelItem *> result; 0155 0156 for (NetworkModelItem *item : m_items) { 0157 if (type == NetworkItemsList::Type) { 0158 if (item->type() == typeParameter) { 0159 result << item; 0160 } 0161 } 0162 } 0163 return result; 0164 }