File indexing completed on 2024-05-19 05:35:37
0001 # SPDX-License-Identifier: GPL-3.0-or-later 0002 # SPDX-FileCopyrightText: 2021 Anupam Basak <anupam.basak27@gmail.com> 0003 0004 import typing 0005 0006 import PySide2 0007 from PySide2.QtCore import QAbstractListModel, Qt, Slot, QProcess 0008 0009 0010 class WifiModel(QAbstractListModel): 0011 __wifiList = [] 0012 0013 BssidRole = Qt.UserRole + 1 0014 SsidRole = BssidRole + 1 0015 SignalRole = SsidRole + 1 0016 SecurityRole = SignalRole + 1 0017 IsSecuredRole = SecurityRole + 1 0018 0019 def __init__(self, parent=None): 0020 super().__init__(parent) 0021 0022 def roleNames(self) -> typing.Dict: 0023 roles = dict() 0024 roles[self.BssidRole] = b'bssid' 0025 roles[self.SsidRole] = b'ssid' 0026 roles[self.SignalRole] = b'signal' 0027 roles[self.SecurityRole] = b'security' 0028 roles[self.IsSecuredRole] = b'isSecured' 0029 0030 return roles 0031 0032 def data(self, index: PySide2.QtCore.QModelIndex, role: int) -> typing.Any: 0033 if role == self.BssidRole: 0034 return self.__wifiList[index.row()]['bssid'] 0035 elif role == self.SsidRole: 0036 return self.__wifiList[index.row()]['ssid'] 0037 elif role == self.SignalRole: 0038 return self.__wifiList[index.row()]['signal'] 0039 elif role == self.SecurityRole: 0040 return self.__wifiList[index.row()]['security'] 0041 elif role == self.IsSecuredRole: 0042 return self.__wifiList[index.row()]['isSecured'] 0043 0044 def rowCount(self, parent: PySide2.QtCore.QModelIndex) -> int: 0045 return len(self.__wifiList) 0046 0047 def addWifiItem(self, item): 0048 self.__wifiList.append(item) 0049 0050 def reset(self): 0051 self.__wifiList.clear() 0052 0053 def getWifiList(self): 0054 return self.__wifiList