def update_languages(self): srclang = self.controller.main_controller.lang_controller.source_lang.code tgtlang = self.controller.main_controller.lang_controller.target_lang.code for textview in self.sources: self._update_textview_language(textview, srclang) textview.modify_font(rendering.get_source_font_description()) # This causes some problems, so commented out for now #textview.get_pango_context().set_font_description(rendering.get_source_font_description()) for textview in self.targets: self._update_textview_language(textview, tgtlang) textview.modify_font(rendering.get_target_font_description()) textview.get_pango_context().set_font_description(rendering.get_target_font_description())
def update_languages(self): srclang = self.controller.main_controller.lang_controller.source_lang.code tgtlang = self.controller.main_controller.lang_controller.target_lang.code for textview in self.sources: self._update_textview_language(textview, srclang) textview.modify_font(rendering.get_source_font_description()) # This causes some problems, so commented out for now #textview.get_pango_context().set_font_description(rendering.get_source_font_description()) for textview in self.targets: self._update_textview_language(textview, tgtlang) textview.modify_font(rendering.get_target_font_description()) textview.get_pango_context().set_font_description( rendering.get_target_font_description())
def _layout_update_targets(self): num_target_widgets = len(self.targets) if num_target_widgets < self.MAX_TARGETS: # Technically the condition above will only be True when num_target_widgets == 0, ie. # no target text boxes has been created yet. self._create_targets() num_target_widgets = len(self.targets) if self.unit is None: if num_target_widgets >= 1: # The above condition should *never* be False textbox = self.targets[0] textbox.set_text(u'') textbox.parent.show_all() for i in range(1, num_target_widgets): self.targets[i].parent.hide_all() return num_unit_targets = 1 nplurals = 1 if self.unit.hasplural(): num_unit_targets = len(self.unit.target.strings) nplurals = self.controller.main_controller.lang_controller.target_lang.nplurals visible_sources = [src for src in self.sources if src.props.visible] rich_target = self.unit.rich_target rich_target_len = len(rich_target) for i in range(self.MAX_TARGETS): if i < nplurals: # plural forms already in file targetstr = u'' if i < rich_target_len and rich_target[i] is not None: targetstr = rich_target[i] self.targets[i].modify_font( rendering.get_target_font_description()) self.targets[i].set_text(targetstr) self.targets[i].parent.show_all() self.targets[i].selector_textboxes = visible_sources self.targets[i].selector_textbox = visible_sources[0] #logging.debug('Showing target #%d: %s' % (i, self.targets[i])) else: # outside plural range #logging.debug('Hiding target #%d: %s' % (i, self.targets[i])) self.targets[i].parent.hide_all()
def _layout_update_targets(self): num_target_widgets = len(self.targets) if num_target_widgets < self.MAX_TARGETS: # Technically the condition above will only be True when num_target_widgets == 0, ie. # no target text boxes has been created yet. self._create_targets() num_target_widgets = len(self.targets) if self.unit is None: if num_target_widgets >= 1: # The above condition should *never* be False textbox = self.targets[0] textbox.set_text(u'') textbox.parent.show_all() for i in range(1, num_target_widgets): self.targets[i].parent.hide_all() return num_unit_targets = 1 nplurals = 1 if self.unit.hasplural(): num_unit_targets = len(self.unit.target.strings) nplurals = self.controller.main_controller.lang_controller.target_lang.nplurals visible_sources = [src for src in self.sources if src.props.visible] rich_target = self.unit.rich_target rich_target_len = len(rich_target) for i in range(self.MAX_TARGETS): if i < nplurals: # plural forms already in file targetstr = u'' if i < rich_target_len and rich_target[i] is not None: targetstr = rich_target[i] self.targets[i].modify_font(rendering.get_target_font_description()) self.targets[i].set_text(targetstr) self.targets[i].parent.show_all() self.targets[i].selector_textboxes = visible_sources self.targets[i].selector_textbox = visible_sources[0] #logging.debug('Showing target #%d: %s' % (i, self.targets[i])) else: # outside plural range #logging.debug('Hiding target #%d: %s' % (i, self.targets[i])) self.targets[i].parent.hide_all()
def _create_targets(self): def on_textbox_n_press_event(textbox, event, eventname): """Handle special keypresses in the textarea.""" def target_key_press_event(textbox, event, eventname, next_textbox): if eventname == 'enter': if next_textbox is not None and next_textbox.props.visible: self.focus_text_view(next_textbox) else: # textbox is the last text view in this unit, so we need to move on # to the next one. textbox.parent.parent.emit('key-press-event', event) return True # Alt-Down elif eventname == 'alt-down': idle_add(self.copy_original, textbox) return True # Shift-Tab elif eventname == 'shift-tab': if self.focused_target_n > 0: self.focused_target_n -= 1 return True return False for i in range(len(self.targets), self.MAX_TARGETS): target = self._create_textbox(u'', editable=True, role='target', scroll_policy=gtk.POLICY_AUTOMATIC) textbox = target.get_child() textbox.modify_font(rendering.get_target_font_description()) textbox.selector_textboxes = self.sources textbox.selector_textbox = self.sources[0] textbox.connect('paste-clipboard', self._on_textbox_paste_clipboard, i) textbox.connect('text-inserted', self._on_target_insert_text, i) textbox.connect('text-deleted', self._on_target_delete_range, i) textbox.buffer.connect('changed', self._on_target_changed, i) self._widgets['vbox_targets'].pack_start(target) self.targets.append(textbox) for target, next_target in zip(self.targets, self.targets[1:] + [None]): target.connect('key-pressed', target_key_press_event, next_target)
def _create_targets(self): def on_textbox_n_press_event(textbox, event, eventname): """Handle special keypresses in the textarea.""" def target_key_press_event(textbox, event, eventname, next_textbox): if not eventname: return False if eventname in ('enter', 'ctrl-enter', 'ctrl-shift-enter'): if next_textbox is not None and next_textbox.props.visible: self.focus_text_view(next_textbox) else: if eventname == 'ctrl-enter' and self.unit.STATE: #Ctrl+Enter means additionally advance the unit in the workflow listnav = self._widgets['state'] listnav.move_state(1) elif eventname == 'ctrl-shift-enter' and self.unit.STATE: listnav = self._widgets['state'] listnav.move_state(-1) # textbox is the last text view in this unit, so we need to move on # to the next one. textbox.parent.parent.emit('key-press-event', event) return True # Alt-Down elif eventname == 'alt-down': idle_add(self.copy_original, textbox) return True # Shift-Tab elif eventname == 'shift-tab': if self.focused_target_n > 0: self.focused_target_n -= 1 return True # Ctrl-Tab elif eventname == 'ctrl-tab': self.controller.main_controller.lang_controller.view.focus() return True # Ctrl-Shift-Tab elif eventname == 'ctrl-shift-tab': self.controller.main_controller.mode_controller.view.focus() return True return False for i in range(len(self.targets), self.MAX_TARGETS): target = self._create_textbox(u'', editable=True, role='target', scroll_policy=gtk.POLICY_AUTOMATIC) textbox = target.get_child() textbox.modify_font(rendering.get_target_font_description()) textbox.selector_textboxes = self.sources textbox.selector_textbox = self.sources[0] textbox.connect('paste-clipboard', self._on_textbox_paste_clipboard, i) textbox.connect('text-inserted', self._on_target_insert_text, i) textbox.connect('text-deleted', self._on_target_delete_range, i) textbox.connect('changed', self._on_target_changed, i) self._widgets['vbox_targets'].pack_start(target) self.targets.append(textbox) for target, next_target in zip(self.targets, self.targets[1:] + [None]): target.connect('key-pressed', target_key_press_event, next_target) self.emit('targets-created', self.targets)