X-Git-Url: https://git.toastfreeware.priv.at/gregoa/zavai.git/blobdiff_plain/c29b91981041eead828f47c91351f781a8f340c0..e5c8560006e82846aff4d02de312a7dbe51ff07f:/plugins/55_gpx_trace.py diff --git a/plugins/55_gpx_trace.py b/plugins/55_gpx_trace.py index 7cffc08..6cc08ac 100644 --- a/plugins/55_gpx_trace.py +++ b/plugins/55_gpx_trace.py @@ -20,6 +20,32 @@ from gettext import gettext as _ import gtk import zavai +class GPSOn(gtk.ToggleAction): + states = [_("GPS always on"), _("GPS on when needed")] + + def __init__(self, registry, **kw): + self.state = 0 + super(GPSOn, self).__init__("menu.main.gps.alwayson", self.states[self.state], None, None) + + self.registry = registry + self.set_active(False) + + self.connect("toggled", self.on_toggle) + + def on_toggle(self, *args): + self.state = (self.state + 1) % len(self.states) + self.set_property("label", self.states[self.state]) + if self.get_active(): + self.start() + else: + self.stop() + + def start(self): + self.registry.resource("gps").connect("gps", self) + + def stop(self): + self.registry.resource("gps").disconnect("gps", self) + class GPXTracer(gtk.ToggleAction): states = [_("Start GPX trace"), _("Stop GPX trace")] @@ -109,3 +135,4 @@ def init(conf = None, registry = None, **kw): registry.register(GPXTracer(registry)) registry.register(GPXAudioTracer(registry)) registry.register(GPXWaypoint(registry)) + registry.register(GPSOn(registry))