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