-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver_screen_here.py
More file actions
27 lines (22 loc) · 925 Bytes
/
server_screen_here.py
File metadata and controls
27 lines (22 loc) · 925 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""%here server screen."""
from enum_here import ServerState
from kivy.app import App
from kivy.clock import Clock, mainthread
from kivy.uix.screenmanager import ScreenManager
class ServerScreenManager(ScreenManager):
"""Screen manager for server %here section."""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.update_event = Clock.schedule_interval(self.update, 0.5)
@mainthread
def update(self, _=None):
"""Determines server state, and switch to appropriate screen."""
app = App.get_running_app()
if app.ssh_server_config_ready.is_set():
if app.ssh_server_started.is_set():
self.current = ServerState.ready
Clock.unschedule(self.update_event)
else:
self.current = ServerState.starting_server
else:
self.current = ServerState.not_configured