From fe51aa6c8690c71a5ff29bb4590ed641f7ced429 Mon Sep 17 00:00:00 2001 From: Ignacio Rodríguez Date: Fri, 06 Dec 2013 18:26:19 +0000 Subject: Allow save current radio button to datastore --- diff --git a/stopwatch.py b/stopwatch.py index d4a94d6..68a78a7 100644 --- a/stopwatch.py +++ b/stopwatch.py @@ -145,12 +145,13 @@ class WatchModel(): thread.start_new_thread(self._view_listener, (self._state,)) class OneWatchView(): - def __init__(self, mywatch, myname, mymarks, timer, activity): + def __init__(self, mywatch, myname, mymarks, timer, activity, counter): self._logger = logging.getLogger('stopwatch.OneWatchView') self._watch_model = mywatch self._name_model = myname self._marks_model = mymarks self._timer = timer + self._counter_number = counter self._update_lock = threading.Lock() self._state = None @@ -159,7 +160,6 @@ class OneWatchView(): self._offset = self._timer.get_offset() self._radiobutton = gtk.RadioButton() - self._radiobutton.connect('clicked', self.counter_changed) self._name = gtk.Entry() self._name_changed_handler = self._name.connect('changed', self._name_cb) @@ -256,8 +256,11 @@ class OneWatchView(): thread.start_new_thread(self._start_running, ()) - def counter_changed(self, counter): - self.counter = counter + def activated(self): + return self._radiobutton.get_active() + + def get_number(self): + return self._counter_number def update_state(self, q): self._logger.debug("update_state: "+str(q)) @@ -437,7 +440,8 @@ class GUIView(): marks_handler = dobject.UnorderedHandler("marks"+str(i), tubebox) marks_model = dobject.AddOnlySet(marks_handler, translator = dobject.float_translator) self._markers.append(marks_model) - watch_view = OneWatchView(watch_model, name_model, marks_model, timer, activity) + watch_view = OneWatchView(watch_model, name_model, marks_model, + timer, activity, i) if not level: level = watch_view._radiobutton @@ -476,14 +480,23 @@ class GUIView(): self._markers[i].update(marks[i]) def get_all(self): - return (self.timer.get_offset(), self.get_names(), self.get_state(), self.get_marks()) + radiobutton_number = 0 + for view in self._views: + if view.activated(): + radiobutton_number = view.get_number() + + return (self.timer.get_offset(), self.get_names(), + self.get_state(), self.get_marks(), radiobutton_number) def set_all(self, q): self.timer.set_offset(q[0]) self.set_names(q[1]) self.set_state(q[2]) self.set_marks(q[3]) + current_radio = int(q[4]) + for v in self._views: + self._views[current_radio]._radiobutton.set_active(True) v.refresh() def pause(self): -- cgit v0.9.1