jasonscheirer / Stumbler
My crappy warbiking software
Clone this repository (size: 11.5 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/jasonscheirer/stumbler/
| commit 7: | 657a246f2c6f |
| parent 6: | 012994305f04 |
| branch: | default |
Better main loop
Changed (Δ66 bytes):
raw changeset »
curses_ui.py (7 lines added, 5 lines removed)
1 |
1 |
import curses |
2 |
2 |
import datetime |
3 |
import signal |
|
3 |
4 |
from bikesniff import gpsfix, networks |
4 |
5 |
|
5 |
6 |
class CursesUI(object): |
| … | … | @@ -13,22 +14,23 @@ class CursesUI(object): |
13 |
14 |
curses.cbreak() |
14 |
15 |
self.stdscr.keypad(1) |
15 |
16 |
self.stdscr.nodelay(1) |
16 |
|
|
17 |
signal.signal(signal.SIGINT, self.shutdown) |
|
18 |
def shutdown(self, sig=None, frame=None): |
|
17 |
19 |
curses.nocbreak() |
18 |
20 |
self.stdscr.keypad(0) |
19 |
21 |
curses.echo() |
20 |
22 |
curses.endwin() |
23 |
self.reactor.stop() |
|
21 |
24 |
def update(self): |
22 |
25 |
try: |
23 |
self.stdscr.addstr(0, 0, str(datetime.datetime.now()), curses.A_BOLD) |
|
24 |
curses.setsyx(self.stdscr.height, self.stdscr.width) |
|
26 |
self.stdscr.addstr(1, 1, str(datetime.datetime.now()), curses.A_BOLD) |
|
27 |
self.stdscr.border() |
|
25 |
28 |
self.stdscr.refresh() |
26 |
29 |
except: |
27 |
30 |
pass |
28 |
31 |
finally: |
29 |
if self.stdscr.getch() in (27, ord('q'), ord('Q') |
|
32 |
if self.stdscr.getch() in (27, ord('q'), ord('Q'), curses.KEY_BREAK): |
|
30 |
33 |
self.shutdown() |
31 |
self.reactor.stop() |
|
32 |
34 |
else: |
33 |
35 |
self.reactor.callLater(0.5, self.update) |
34 |
36 |
