event = None instance = self.get_selected() if isinstance(instance, list): if len(instance) == 1: instance = instance[0] else: instance = None self._row_popup_menu.popup(event, instance) return True def _on_view__start_interactive_search(self, view): self._find_entry.show() self._find_entry.grab_focus() type_register(Grid) class PopupMenu(gtk.Menu): def __init__(self): self._instance = None self._signals = [] gtk.Menu.__init__(self) def clear(self): self._instance = None for child in self: self.remove(child) for menuitem, signal_id in self._signals: menuitem.disconnect(signal_id) self._signals = []
def _on_widget__create_clicked(self, widget, allowed_extents, done_cb): self.emit('create-clicked', allowed_extents, done_cb) def _on_widget__update_clicked(self, widget, entity_to_update, done_cb): self.emit('update-clicked', entity_to_update, done_cb) def _on_widget__value_changed(self, widget, field): value = self.get_value() ## print '%s changed to: %s %r:' % (field.name, value, value) self.emit('value-changed') def _on_widget__view_clicked(self, widget, entity_to_view): self.emit('view-clicked', entity_to_view) type_register(DynamicField) class FieldLabel(gtk.EventBox): __gtype_name__ = 'FieldLabel' def __init__(self): gtk.EventBox.__init__(self) self.set_visible_window(False) text = u'Field label:' label = gtk.Label() label.set_text(text) label.set_alignment(1.0, 0.5) label.set_padding(5, 0) label.show()
def _set_bindings(self): items = [ ('Insert', self.select_create_action), ('<Control><Shift>Return', self.select_create_action), ('<Control>Return', self.select_update_action), ('Delete', self.select_delete_action), ] self._bindings = dict([(gtk.accelerator_parse(name), func) for name, func in items]) # Hack to support these with CapsLock on. for name, func in items: keyval, mod = gtk.accelerator_parse(name) mod = mod | gtk.gdk.LOCK_MASK self._bindings[(keyval, mod)] = func type_register(EntityGrid) class PopupMenu(grid.PopupMenu): def __init__(self, entity_grid): self._entity_grid = entity_grid self._extent = None self._entity = None grid.PopupMenu.__init__(self) def get_actions(self): db = self._entity_grid._db extent = self._extent entity = self._entity items = []
visible = False extent = model[row_iter][OBJECT_COLUMN] if extent is not None: if self._show_hidden_extents or not extent.hidden: visible = True return visible def _set_bindings(self): items = [ ('Insert', self.select_create_action), ('<Control><Shift>Return', self.select_create_action), ] self._bindings = dict([(gtk.accelerator_parse(name), func) for name, func in items]) type_register(ExtentGrid) class PopupMenu(grid.PopupMenu): def __init__(self, extent_grid): grid.PopupMenu.__init__(self) self._extent_grid = extent_grid self._extent = None def get_actions(self): extent = self._extent items = [] # Get extent actions. actions = action.get_tx_actions(self._extent_grid._db, extent) if actions:
button.set_sensitive('update' in selected.t) def _reset_view_button_sensitivity(self): """Update the `_view_button` sensitivity based on whether or not the current value of the combobox allows viewing.""" button = self._view_button if button is not None: selected = self.get_selected() # UNASSIGNED. if selected is UNASSIGNED: button.set_sensitive(False) # Entity. elif isinstance(selected, Entity): button.set_sensitive('update' in selected.t) type_register(EntityChooser) class BaseComboBox(gtk.ComboBoxEntry): """Base class for common behavior.""" gsignal('value-changed') # Label to use for UNASSIGNED values. Useful if you want to make # the combo box more visually descriptive in the face of such # values. unassigned_label = '<UNASSIGNED>' def __init__(self): gtk.ComboBoxEntry.__init__(self) self.model = gtk.ListStore(str, object)