Mercurial > libervia-web
diff browser_side/panels.py @ 315:09205b410a53
browser_side: handle successive click on blog post "edit" and "comment" icons
author | souliane <souliane@mailoo.org> |
---|---|
date | Thu, 02 Jan 2014 16:10:27 +0100 |
parents | 70ac3067d641 |
children | 462a0a8894e3 |
line wrap: on
line diff
--- a/browser_side/panels.py Mon Dec 30 13:02:03 2013 +0100 +++ b/browser_side/panels.py Thu Jan 02 16:10:27 2014 +0100 @@ -422,7 +422,7 @@ def _setContent(self): """Actually set the entry content (header, icons, bubble...)""" self.delete_label = self.update_label = self.comment_label = None - self.bubble = self.editbox = None + self.bubble = self.editbox = self._current_comment = None self._setHeader() if self.empty: self.editable_content = ['', const.SYNTAX_XHTML] @@ -505,8 +505,10 @@ def removeNewEntry(): if self.empty: self._blog_panel.removeEntry(self.type, self.id) - if self.type == 'main_item': + if self.type == 'main_item': # restore the "New message" button self._blog_panel.setUniBox(enable=False) + else: # allow to create a new comment + self._parent_entry._current_comment = None if cancel or new_text == self.editable_content[0] or new_text == "": removeNewEntry() @@ -528,17 +530,17 @@ """Set the bubble or the editor @param edit: set to True to display the editor""" if edit: + if self.editbox and self.editbox.getVisible(): + self.editbox.setFocus(True) + return if self.empty or self.xhtml: - if not self.editbox: - - def cb(result): - self._updateContent(result == richtext.CANCEL) + def cb(result): + self._updateContent(result == richtext.CANCEL) - options = ('no_recipient', 'no_sync_unibox', 'no_style', 'update_msg', 'no_close') - editor = richtext.RichTextEditor(self._blog_panel.host, self.panel, cb, options=options) - editor.setWidth('100%') - self.editbox = editor.textarea - + options = ('no_recipient', 'no_sync_unibox', 'no_style', 'update_msg', 'no_close') + editor = richtext.RichTextEditor(self._blog_panel.host, self.panel, cb, options=options) + editor.setWidth('100%') + self.editbox = editor.textarea editor.setVisible(True) # needed to build the toolbar if self.editable_content[0]: self._blog_panel.host.bridge.call('syntaxConvert', lambda d: self._setOriginalText(d, editor), @@ -590,6 +592,9 @@ def _comment(self): """Add an empty entry for a new comment""" + if self._current_comment: + self._current_comment.editbox.setFocus(True) + return data = {'id': str(time()), 'new': True, 'type': 'comment', @@ -599,6 +604,7 @@ } entry = self._blog_panel.addEntry(data) entry._parent_entry = self + self._current_comment = entry entry.setEntryDialog(edit=True)