diff options
author | Walter Bender <walter.bender@gmail.com> | 2013-03-28 00:22:12 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2013-03-28 00:22:12 (GMT) |
commit | 97f01ec01636c444f4e49e23736fef172ee91f78 (patch) | |
tree | f1ecc867a35ee76a744d11c32b91ef388b673082 /src/jarabe/journal/expandedentry.py | |
parent | 71f52033fd48d38bcfe37a9ba3d8a889affac4cd (diff) |
Pass a widget to _create_scrollable so code can be used for multiple widgets
Diffstat (limited to 'src/jarabe/journal/expandedentry.py')
-rw-r--r-- | src/jarabe/journal/expandedentry.py | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py index 5959d2a..c3598cb 100644 --- a/src/jarabe/journal/expandedentry.py +++ b/src/jarabe/journal/expandedentry.py @@ -60,6 +60,21 @@ class BuddyList(Gtk.Alignment): self.add(hbox) +class DescTagsView(Gtk.TextView): + def __init__(self, parent): + Gtk.TextView.__init__(self) + text_buffer = Gtk.TextBuffer() + self._parent = parent + self.set_buffer(text_buffer) + self.set_left_margin(style.DEFAULT_PADDING) + self.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) + self.connect('focus-out-event', + self._description_tags_focus_out_event_cb) + + def _description_tags_focus_out_event_cb(self, text_view, event): + self._parent._update_entry() + + class ExpandedEntry(Gtk.EventBox): def __init__(self): Gtk.EventBox.__init__(self) @@ -320,40 +335,35 @@ class ExpandedEntry(Gtk.EventBox): else: return vbox - def _create_scrollable(self, label): + def _create_scrollable(self, widget, label=None): vbox = Gtk.VBox() vbox.props.spacing = style.DEFAULT_SPACING - text = Gtk.Label() - text.set_markup('<span foreground="%s">%s</span>' % ( - style.COLOR_BUTTON_GREY.get_html(), label)) + if label is not None: + text = Gtk.Label() + text.set_markup('<span foreground="%s">%s</span>' % ( + style.COLOR_BUTTON_GREY.get_html(), label)) - halign = Gtk.Alignment.new(0, 0, 0, 0) - halign.add(text) - vbox.pack_start(halign, False, False, 0) + halign = Gtk.Alignment.new(0, 0, 0, 0) + halign.add(text) + vbox.pack_start(halign, False, False, 0) scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scrolled_window.set_shadow_type(Gtk.ShadowType.ETCHED_IN) - text_buffer = Gtk.TextBuffer() - text_view = Gtk.TextView() - text_view.set_buffer(text_buffer) - text_view.set_left_margin(style.DEFAULT_PADDING) - text_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) - scrolled_window.add(text_view) + scrolled_window.add(widget) vbox.pack_start(scrolled_window, True, True, 0) - text_view.connect('focus-out-event', - self._description_tags_focus_out_event_cb) - - return vbox, text_view + return vbox, widget def _create_description(self): - return self._create_scrollable(_('Description:')) + return self._create_scrollable(DescTagsView(self), + label=_('Description:')) def _create_tags(self): - return self._create_scrollable(_('Tags:')) + return self._create_scrollable(DescTagsView(self), + label=_('Tags:')) def _title_notify_text_cb(self, entry, pspec): if not self._update_title_sid: |