# HG changeset patch # User souliane # Date 1448542266 -3600 # Node ID e67d8c13ba224e16b96ec4788586388a4ebe4b50 # Parent 5b28bca05d236dd81663e302fbfd60a990e40680 browser_side (blog): fixes switching between display/edit modes and raw/rich text diff -r 5b28bca05d23 -r e67d8c13ba22 src/browser/sat_browser/blog.py --- a/src/browser/sat_browser/blog.py Wed Nov 25 18:40:37 2015 +0100 +++ b/src/browser/sat_browser/blog.py Thu Nov 26 13:51:06 2015 +0100 @@ -150,10 +150,9 @@ else: log.error("Bad entry mode: %s" % self.mode) self.bubble.addStyleName("bubble") - self._showSyntaxSwitchButton(False) self.entry_dialog.add(self.bubble) self.bubble.addEditListener(self._showWarning) # FIXME: remove edit listeners - self._setEditable() + self.setEditable(self.editable) def _setIcons(self): """Set the entry icons (delete, update, comment)""" @@ -188,61 +187,34 @@ self.comments_panel.addStyleName('subPanel') self.add(self.comments_panel) - def _setEditable(self): - self.bubble.edit(self.editable) - if self.editable: - self._showSyntaxSwitchButton() - def setEditable(self, editable=True): + """Toggle the bubble between display and edit mode. + + @param editable (bool) + """ self.editable = editable - self._setEditable() + self.bubble.edit(self.editable) + self.updateSyntaxSwitchButton() - def _showSyntaxSwitchButton(self, show=True): - if show: + def updateSyntaxSwitchButton(self): + """Set the visibility of the button to switch between blog and microblog.""" + try: + self.toggle_syntax_button.removeFromParent() + except (AttributeError, TypeError): + pass + if self.editable: if self.mode == C.ENTRY_MODE_TEXT: - html = 'rich text' + html = _(u'switch to blog') + title = _(u'compose a rich text message with a title - suitable for writing articles') else: - html = 'raw text' - self.toggle_syntax_button = HTML(html) + html = _(u'switch to microblog') + title = _(u'compose a short message without title - suitable for sharing news') + self.toggle_syntax_button = HTML(html, Title=title) self.toggle_syntax_button.addClickListener(self.toggleContentSyntax) self.toggle_syntax_button.addStyleName('mb_entry_toggle_syntax') self.entry_dialog.add(self.toggle_syntax_button) self.toggle_syntax_button.setStyleAttribute('top', '-20px') # XXX: need to force CSS self.toggle_syntax_button.setStyleAttribute('left', '-20px') - else: - try: - self.toggle_syntax_button.removeFromParent() - except (AttributeError, TypeError): - pass - - - def edit(self, edit=True): - """Toggle the bubble between display and edit mode""" - try: - self.toggle_syntax_button.removeFromParent() - except (AttributeError, TypeError): - pass - self.bubble.edit(edit) - if edit: - if self.mode in ENTRY_RICH: - # image = 'A' - html = 'raw text' - # title = _('Switch to raw text edition') - else: - # image = '' - html = 'rich text' - # title = _('Switch to rich text edition') - self.toggle_syntax_button = HTML(html) - self.toggle_syntax_button.addClickListener(self.toggleContentSyntax) - self.toggle_syntax_button.addStyleName('mb_entry_toggle_syntax') - self.entry_dialog.add(self.toggle_syntax_button) - self.toggle_syntax_button.setStyleAttribute('top', '-20px') # XXX: need to force CSS - self.toggle_syntax_button.setStyleAttribute('left', '-20px') - - # def updateAvatar(self, new_avatar): - # """Change the avatar of the entry - # @param new_avatar: path to the new image""" - # self.avatar.setUrl(new_avatar) def onClick(self, sender): if sender == self: @@ -250,7 +222,7 @@ elif sender == self.delete_label: self._onRetractClick() elif sender == self.update_label: - self.edit(True) + self.setEditable(True) elif sender == self.comment_label: self._onCommentClick() # elif sender == self.show_comments_link: @@ -300,7 +272,8 @@ # we don't keep edit entries for comments self.delete() else: - self._showSyntaxSwitchButton(False) + self.editable = False + self.updateSyntaxSwitchButton() def _showWarning(self, sender, keycode, modifiers): if keycode == keyb.KEY_ENTER & keyb.MODIFIER_SHIFT: # FIXME: fix edit_listeners, it's dirty (we have to check keycode/modifiers twice !)