def sig_attach(self, widget=None): def window(widget): return Attachment( record, lambda: self.refresh_resources(reload=True)) def add_file(widget): filenames = common.file_selection(_("Select"), multi=True) if filenames: attachment = window(widget) for filename in filenames: attachment.add_file(filename) def preview(widget): children = self.attachment_preview.get_children() for child in children: self.attachment_preview.remove(child) if widget.get_active(): self.attachment_preview.add( self._attachment_preview_widget()) self.attachment_preview.get_parent().show() self.refresh_attachment_preview() else: self.attachment_screen = None self.attachment_preview.get_parent().hide() def activate(widget, callback): callback() button = self.buttons['attach'] if widget != button: if button.props.sensitive: button.props.active = True return record = self.screen.current_record menu = button._menu = Gtk.Menu() for name, callback in Attachment.get_attachments(record): item = Gtk.MenuItem(label=name) item.connect('activate', activate, callback) menu.add(item) menu.add(Gtk.SeparatorMenuItem()) add_item = Gtk.MenuItem(label=_("Add...")) add_item.connect('activate', add_file) menu.add(add_item) preview_item = Gtk.CheckMenuItem(label=_("Preview")) preview_item.set_active(bool( self.attachment_preview.get_children())) preview_item.connect('toggled', preview) menu.add(preview_item) manage_item = Gtk.MenuItem(label=_("Manage...")) manage_item.connect('activate', window) menu.add(manage_item) menu.show_all() menu.connect('deactivate', self._popup_menu_hide, button) self.action_popup(button)
def sig_attach(self, widget=None): def window(widget): return Attachment( record, lambda: self.update_attachment_count(reload=True)) def add_file(widget): filenames = common.file_selection(_("Select"), multi=True) if filenames: attachment = window(widget) for filename in filenames: attachment.add_file(filename) def activate(widget, callback): callback() button = self.buttons['attach'] if widget != button: if button.props.sensitive: button.props.active = True return record = self.screen.current_record menu = button._menu = Gtk.Menu() for name, callback in Attachment.get_attachments(record): item = Gtk.MenuItem() item.set_label(name) item.connect('activate', activate, callback) menu.add(item) menu.add(Gtk.SeparatorMenuItem()) add_item = Gtk.MenuItem() add_item.set_label(_("Add...")) add_item.connect('activate', add_file) menu.add(add_item) manage_item = Gtk.MenuItem() manage_item.set_label(_("Manage...")) manage_item.connect('activate', window) menu.add(manage_item) menu.show_all() menu.connect('deactivate', self._popup_menu_hide, button) self.action_popup(button)