Ejemplo n.º 1
0
            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 = []
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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 = []
Ejemplo n.º 4
0
        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:
Ejemplo n.º 5
0
                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)