File indexing completed on 2024-11-10 10:59:59
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 #ifndef PLASMA_NM_MODEL_NETWORK_MODEL_ITEM_H 0008 #define PLASMA_NM_MODEL_NETWORK_MODEL_ITEM_H 0009 0010 #include <NetworkManagerQt/ActiveConnection> 0011 #include <NetworkManagerQt/Connection> 0012 #include <NetworkManagerQt/ConnectionSettings> 0013 #include <NetworkManagerQt/Device> 0014 #include <NetworkManagerQt/Utils> 0015 #include <NetworkManagerQt/VpnConnection> 0016 0017 class Q_DECL_EXPORT NetworkModelItem : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 enum ItemType { UnavailableConnection, AvailableConnection, AvailableAccessPoint }; 0022 0023 explicit NetworkModelItem(QObject *parent = nullptr); 0024 explicit NetworkModelItem(const NetworkModelItem *item, QObject *parent = nullptr); 0025 ~NetworkModelItem() override; 0026 0027 QString activeConnectionPath() const; 0028 void setActiveConnectionPath(const QString &path); 0029 0030 QString connectionPath() const; 0031 void setConnectionPath(const QString &path); 0032 0033 NetworkManager::ActiveConnection::State connectionState() const; 0034 void setConnectionState(NetworkManager::ActiveConnection::State state); 0035 0036 QStringList details() const; 0037 0038 QString deviceName() const; 0039 void setDeviceName(const QString &name); 0040 0041 QString devicePath() const; 0042 void setDevicePath(const QString &path); 0043 0044 QString deviceState() const; 0045 void setDeviceState(const NetworkManager::Device::State state); 0046 0047 bool duplicate() const; 0048 0049 void setIcon(const QString &icon); 0050 QString icon() const 0051 { 0052 return m_icon; 0053 } 0054 0055 ItemType itemType() const; 0056 0057 NetworkManager::WirelessSetting::NetworkMode mode() const; 0058 void setMode(const NetworkManager::WirelessSetting::NetworkMode mode); 0059 0060 QString name() const; 0061 void setName(const QString &name); 0062 0063 QString originalName() const; 0064 0065 QString sectionType() const; 0066 0067 NetworkManager::WirelessSecurityType securityType() const; 0068 void setSecurityType(NetworkManager::WirelessSecurityType type); 0069 0070 int signal() const; 0071 void setSignal(int signal); 0072 0073 bool slave() const; 0074 void setSlave(bool slave); 0075 0076 QString specificPath() const; 0077 void setSpecificPath(const QString &path); 0078 0079 QString ssid() const; 0080 void setSsid(const QString &ssid); 0081 0082 QDateTime timestamp() const; 0083 void setTimestamp(const QDateTime &date); 0084 0085 NetworkManager::ConnectionSettings::ConnectionType type() const; 0086 void setType(NetworkManager::ConnectionSettings::ConnectionType type); 0087 0088 QString accessibleDescription() const; 0089 0090 QString uni() const; 0091 0092 QString uuid() const; 0093 void setUuid(const QString &uuid); 0094 0095 QString vpnState() const; 0096 void setVpnState(NetworkManager::VpnConnection::State state); 0097 0098 QString vpnType() const; 0099 void setVpnType(const QString &type); 0100 0101 qulonglong rxBytes() const; 0102 void setRxBytes(qulonglong bytes); 0103 0104 qulonglong txBytes() const; 0105 void setTxBytes(qulonglong bytes); 0106 0107 bool delayModelUpdates() const; 0108 void setDelayModelUpdates(bool delay); 0109 0110 bool operator==(const NetworkModelItem *item) const; 0111 0112 QVector<int> changedRoles() const 0113 { 0114 return m_changedRoles; 0115 } 0116 void clearChangedRoles() 0117 { 0118 m_changedRoles.clear(); 0119 } 0120 0121 public Q_SLOTS: 0122 void invalidateDetails(); 0123 0124 private: 0125 QString computeIcon() const; 0126 void refreshIcon(); 0127 void updateDetails() const; 0128 0129 QString m_activeConnectionPath; 0130 QString m_connectionPath; 0131 NetworkManager::ActiveConnection::State m_connectionState; 0132 QString m_devicePath; 0133 QString m_deviceName; 0134 NetworkManager::Device::State m_deviceState; 0135 mutable QStringList m_details; 0136 mutable bool m_detailsValid; 0137 bool m_delayModelUpdates; 0138 bool m_duplicate; 0139 NetworkManager::WirelessSetting::NetworkMode m_mode; 0140 QString m_name; 0141 NetworkManager::WirelessSecurityType m_securityType; 0142 int m_signal; 0143 bool m_slave; 0144 QString m_specificPath; 0145 QString m_ssid; 0146 QDateTime m_timestamp; 0147 NetworkManager::ConnectionSettings::ConnectionType m_type; 0148 QString m_accessibleDescription; 0149 QString m_uuid; 0150 QString m_vpnType; 0151 NetworkManager::VpnConnection::State m_vpnState; 0152 qulonglong m_rxBytes; 0153 qulonglong m_txBytes; 0154 QString m_icon; 0155 QVector<int> m_changedRoles; 0156 }; 0157 0158 #endif // PLASMA_NM_MODEL_NETWORK_MODEL_ITEM_H