diff options
Diffstat (limited to 'sensor_toolbar.py')
-rw-r--r-- | sensor_toolbar.py | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/sensor_toolbar.py b/sensor_toolbar.py index 5338e38..711146e 100644 --- a/sensor_toolbar.py +++ b/sensor_toolbar.py @@ -26,14 +26,16 @@ from config import ICONS_DIR, CAPTURE_GAIN, MIC_BOOST, XO1, XO15, XO175, XO4 from sugar.graphics.toolbutton import ToolButton from sugar.graphics.menuitem import MenuItem -from sugar.graphics.combobox import ComboBox -from sugar.graphics.toolcombobox import ToolComboBox from sugar.graphics.radiotoolbutton import RadioToolButton import logging log = logging.getLogger('measure-activity') log.setLevel(logging.DEBUG) LOG_TIMER_VALUES = [1, 10, 300, 3000, 18000] # In 10th second intervals +LOG_TIMER_LABELS = {1: _('1/10 second'), 10: _('1 second'), + 300: _('30 seconds'), 3000: _('5 minutes'), + 30000: _('30 minutes')} + def _is_xo(hw): ''' Return True if this is xo hardware ''' @@ -120,8 +122,13 @@ of XO)") + ' ' self.insert(separator, -1) self._log_value = LOG_TIMER_VALUES[1] + self.log_label = gtk.Label(self._log_to_string(self._log_value)) + toolitem = gtk.ToolItem() + toolitem.add(self.log_label) + self.insert(toolitem, -1) + self._log_button = ToolButton('timer-10') - self._log_button.set_tooltip(_('Select log')) + self._log_button.set_tooltip(_('Select logging interval')) self._log_button.connect('clicked', self._log_selection_cb) self.insert(self._log_button, -1) self._setup_log_palette() @@ -129,13 +136,18 @@ of XO)") + ' ' # Set up Logging/Stop Logging Button self._record = ToolButton('media-record') self.insert(self._record, -1) - self._record.set_tooltip(_('Start Recording')) + self._record.set_tooltip(_('Start logging')) self._record.connect('clicked', self.record_control_cb) separator = gtk.SeparatorToolItem() separator.props.draw = True self.insert(separator, -1) + toolitem = gtk.ToolItem() + self.trigger_label = gtk.Label(_('Trigger')) + toolitem.add(self.trigger_label) + self.insert(toolitem, -1) + # Set up Trigger Combo box self.trigger_none = RadioToolButton() self.trigger_none.set_named_icon('trigger-none') @@ -174,6 +186,7 @@ of XO)") + ' ' def set_log_idx(self, idx): self._log_value = LOG_TIMER_VALUES[idx] + self.log_label.set_text(self._log_to_string(self._log_value)) if hasattr(self, '_log_button'): self._log_button.set_icon('timer-%d' % (self._log_value)) @@ -189,27 +202,20 @@ of XO)") + ' ' def _log_to_seconds(self, tenth_seconds): return tenth_seconds / 10. - def _log_to_string(self, seconds): - tenth_seconds = seconds / 10 - if seconds == 1: - return _('1/10 second') + def _log_to_string(self, tenth_seconds): + if tenth_seconds in LOG_TIMER_LABELS: + return LOG_TIMER_LABELS[tenth_seconds] else: - return ngettext('%d second', '%d seconds', tenth_seconds) % \ - tenth_seconds + return _('1 second') def _setup_log_palette(self): self._log_palette = self._log_button.get_palette() - for seconds in LOG_TIMER_VALUES: - tenth_seconds = seconds / 10 - if seconds == 1: - text = _('1/10 second') - else: - text = ngettext('%d second', '%d seconds', tenth_seconds) % \ - tenth_seconds - menu_item = MenuItem(icon_name='timer-%d' % (seconds), - text_label=text) - menu_item.connect('activate', self._log_selected_cb, seconds) + for tenth_seconds in LOG_TIMER_VALUES: + text = self._log_to_string(tenth_seconds) + menu_item = MenuItem(icon_name='timer-%d' % (tenth_seconds), + text_label=self._log_to_string(tenth_seconds)) + menu_item.connect('activate', self._log_selected_cb, tenth_seconds) self._log_palette.menu.append(menu_item) menu_item.show() @@ -252,7 +258,7 @@ of XO)") + ' ' if button is None: value = self.activity.wave.TRIGGER_NONE if self.activity.wave.get_fft_mode(): - self.trigger_combo.set_active(self.activity.wave.TRIGGER_NONE) + self.trigger_none.set_active(True) else: self.activity.wave.set_trigger(value) @@ -400,7 +406,7 @@ of XO)") + ' ' ''' Called when an analog sensor is selected ''' self.activity.wave.set_mag_params(self.gain, self.y_mag) self.update_string_for_textbox() - self.update_trigger_control_cb(None) + self.update_trigger_control_cb(None, self.activity.wave.TRIGGER_NONE) self.activity.audiograb.start_grabbing() return False |