mirror of
https://github.com/kbumsik/VirtScreen.git
synced 2025-03-09 15:40:18 +00:00
Backend: show ip list
This commit is contained in:
parent
85b0670a92
commit
3a76aa7ef7
2 changed files with 37 additions and 12 deletions
|
@ -329,7 +329,9 @@ class Backend(QObject):
|
|||
|
||||
# Signals
|
||||
onVirtScreenCreatedChanged = pyqtSignal(bool)
|
||||
onVirtScreenIndexChanged = pyqtSignal(int)
|
||||
onVncStateChanged = pyqtSignal(VNCState)
|
||||
onIPAddressesChanged = pyqtSignal()
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super(Backend, self).__init__(parent)
|
||||
|
@ -348,6 +350,8 @@ class Backend(QObject):
|
|||
self._vncPort = 5900
|
||||
self._vncPassword = ""
|
||||
self._vncState = Backend.VNCState.OFF
|
||||
self._ipAddresses: List[str] = []
|
||||
self.updateIPAddresses()
|
||||
# Primary screen and mouse posistion
|
||||
self._primary: DisplayProperty() = self.xrandr.get_primary_screen()
|
||||
self._cursor_x: int
|
||||
|
@ -387,7 +391,7 @@ class Backend(QObject):
|
|||
def screens(self):
|
||||
return QQmlListProperty(DisplayProperty, self, self._screens)
|
||||
|
||||
@pyqtProperty(int)
|
||||
@pyqtProperty(int, notify=onVirtScreenIndexChanged)
|
||||
def virtScreenIndex(self):
|
||||
return self._virtScreenIndex
|
||||
@virtScreenIndex.setter
|
||||
|
@ -418,6 +422,10 @@ class Backend(QObject):
|
|||
def vncState(self, state):
|
||||
self._vncState = state
|
||||
self.onVncStateChanged.emit(self._vncState)
|
||||
|
||||
@pyqtProperty('QStringList', notify=onIPAddressesChanged)
|
||||
def ipAddresses(self):
|
||||
return self._ipAddresses
|
||||
|
||||
@pyqtProperty(DisplayProperty)
|
||||
def primary(self):
|
||||
|
@ -507,6 +515,20 @@ class Backend(QObject):
|
|||
else:
|
||||
print("stopVNC called while it is not running")
|
||||
|
||||
@pyqtSlot()
|
||||
def updateIPAddresses(self):
|
||||
self._ipAddresses.clear()
|
||||
for interface in interfaces():
|
||||
if interface == 'lo':
|
||||
continue
|
||||
addresses = ifaddresses(interface).get(AF_INET, None)
|
||||
if addresses is None:
|
||||
continue
|
||||
for link in addresses:
|
||||
if link is not None:
|
||||
self._ipAddresses.append(link['addr'])
|
||||
self.onIPAddressesChanged.emit()
|
||||
|
||||
@pyqtSlot()
|
||||
def quitProgram(self):
|
||||
QApplication.instance().quit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue