Beispiel #1
0
    def __init__(self, *args, **kwargs):
        super(MeldSourceView, self).__init__(*args, **kwargs)
        bind_settings(self)

        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
Beispiel #2
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.drag_dest_add_uri_targets()

        # Most bindings are on SourceView, except the Page Up/Down ones
        # which are on TextView.
        binding_set_names = ('GtkSourceView', 'GtkTextView')
        for set_name in binding_set_names:
            binding_set = Gtk.binding_set_find(set_name)
            for key, modifiers in self.replaced_entries:
                Gtk.binding_entry_remove(binding_set, key, modifiers)

        self.anim_source_id = None
        self.animating_chunks = []
        self.syncpoints = []
        self._show_line_numbers = None

        buf = MeldBuffer()
        inline_tag = GtkSource.Tag.new("inline")
        inline_tag.props.draw_spaces = True
        buf.get_tag_table().add(inline_tag)
        buf.create_tag("dimmed")
        self.set_buffer(buf)
        self.connect('notify::overscroll-num-lines', self.notify_overscroll)
Beispiel #3
0
    def __init__(self, *args, **kwargs):
        super(MeldSourceView, self).__init__(*args, **kwargs)
        bind_settings(self)

        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
Beispiel #4
0
    def override_key_bindings(select):
        """Override the default TextView keybinding to either always force
           the extension the selection, or not"""

        global should_extend_selection

        t = Gtk.TextView()  # make sure the BindingSet was created
        bind = Gtk.binding_set_find("GtkTextView")

        def override(key, mvt, step):
            # pygobject does not have a binding to
            # gtk_binding_entry_add_signal, which would be more convenient and
            # efficient than going through a string.
            # Gtk.binding_entry_remove(bind, key, modifier)
            subst = (key, mvt, step, 1 if select else 0)
            Gtk.binding_entry_add_signal_from_string(
                bind, 'bind "%s" {"move_cursor" (%s,%s,%s)}' % subst)

        should_extend_selection = select

        override("Right", "visual-positions", 1)
        override("KP_Right", "visual-positions", 1)
        override("Left", "visual-positions", -1)
        override("KP_Left", "visual-positions", -1)

        override("<ctrl>Right", "words", 1)
        override("<ctrl>KP_Right", "words", 1)
        override("<ctrl>Left", "words", -1)
        override("<ctrl>KP_Left", "words", -1)

        override("Up", "display-lines", -1)
        override("KP_Up", "display-lines", -1)
        override("Down", "display-lines", 1)
        override("KP_Down", "display-lines", 1)

        override("<ctrl>Up", "paragraph", -1)
        override("<ctrl>KP_Up", "paragraph", -1)
        override("<ctrl>Down", "paragraph", 1)
        override("<ctrl>KP_Down", "paragraph", 1)

        override("Home", "display-line-ends", -1)
        override("KP_Home", "display-line-ends", -1)
        override("End", "display-line-ends", 1)
        override("KP_End", "display-line-ends", 1)

        override("<ctrl>Home", "buffer-ends", -1)
        override("<ctrl>KP_Home", "buffer-ends", -1)
        override("<ctrl>End", "buffer-ends", 1)
        override("<ctrl>KP_End", "buffer-ends", 1)

        override("Page_Up", "pages", -1)
        override("KP_Page_Up", "pages", -1)
        override("Page_Down", "pages", 1)
        override("KP_Page_Down", "pages", 1)

        override("<ctrl>Page_Up", "horizontal-pages", -1)
        override("<ctrl>KP_Page_Up", "horizontal-pages", -1)
        override("<ctrl>Page_Down", "horizontal-pages", 1)
        override("<ctrl>KP_Page_Down", "horizontal-pages", 1)
Beispiel #5
0
    def override_key_bindings(select):
        """Override the default TextView keybinding to either always force
           the extension the selection, or not"""

        global should_extend_selection

        t = Gtk.TextView()   # make sure the BindingSet was created
        bind = Gtk.binding_set_find("GtkTextView")

        def override(key, mvt, step):
            # pygobject does not have a binding to
            # gtk_binding_entry_add_signal, which would be more convenient and
            # efficient than going through a string.
            # Gtk.binding_entry_remove(bind, key, modifier)
            subst = (key, mvt, step, 1 if select else 0)
            Gtk.binding_entry_add_signal_from_string(
                bind, 'bind "%s" {"move_cursor" (%s,%s,%s)}' % subst)

        should_extend_selection = select

        override("Right",    "visual-positions", 1)
        override("KP_Right", "visual-positions", 1)
        override("Left",     "visual-positions", -1)
        override("KP_Left",  "visual-positions", -1)

        override("<ctrl>Right", "words", 1)
        override("<ctrl>KP_Right", "words", 1)
        override("<ctrl>Left", "words", -1)
        override("<ctrl>KP_Left", "words", -1)

        override("Up", "display-lines", -1)
        override("KP_Up", "display-lines", -1)
        override("Down", "display-lines", 1)
        override("KP_Down", "display-lines", 1)

        override("<ctrl>Up", "paragraph", -1)
        override("<ctrl>KP_Up", "paragraph", -1)
        override("<ctrl>Down", "paragraph", 1)
        override("<ctrl>KP_Down", "paragraph", 1)

        override("Home", "display-line-ends", -1)
        override("KP_Home", "display-line-ends", -1)
        override("End", "display-line-ends", 1)
        override("KP_End", "display-line-ends", 1)

        override("<ctrl>Home", "buffer-ends", -1)
        override("<ctrl>KP_Home", "buffer-ends", -1)
        override("<ctrl>End", "buffer-ends", 1)
        override("<ctrl>KP_End", "buffer-ends", 1)

        override("Page_Up", "pages", -1)
        override("KP_Page_Up", "pages", -1)
        override("Page_Down", "pages", 1)
        override("KP_Page_Down", "pages", 1)

        override("<ctrl>Page_Up", "horizontal-pages", -1)
        override("<ctrl>KP_Page_Up", "horizontal-pages", -1)
        override("<ctrl>Page_Down", "horizontal-pages", 1)
        override("<ctrl>KP_Page_Down", "horizontal-pages", 1)
Beispiel #6
0
    def __init__(self, *args, **kwargs):
        super(MeldSourceView, self).__init__(*args, **kwargs)
        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
        self.anim_source_id = None
        self.animating_chunks = []
        self.syncpoints = []
        self._show_line_numbers = None

        buf = MeldBuffer()
        buf.create_tag("inline")
        buf.create_tag("dimmed")
        self.set_buffer(buf)

        meldsettings.connect('changed', self.on_setting_changed)
Beispiel #7
0
    def __init__(self, *args, **kwargs):
        super(MeldSourceView, self).__init__(*args, **kwargs)
        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
        self.anim_source_id = None
        self.animating_chunks = []
        self.syncpoints = []
        self._show_line_numbers = None

        buf = meldbuffer.MeldBuffer()
        buf.create_tag("inline")
        self.set_buffer(buf)

        meldsettings.connect('changed', self.on_setting_changed)
        self.on_setting_changed(meldsettings, 'font')
        self.on_setting_changed(meldsettings, 'style-scheme')
Beispiel #8
0
    def __init__(self, *args, **kwargs):
        super(MeldSourceView, self).__init__(*args, **kwargs)
        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
        self.anim_source_id = None
        self.animating_chunks = []
        self.syncpoints = []
        self._show_line_numbers = None

        buf = MeldBuffer()
        inline_tag = GtkSource.Tag.new("inline")
        inline_tag.props.draw_spaces = True
        buf.get_tag_table().add(inline_tag)
        buf.create_tag("dimmed")
        self.set_buffer(buf)

        meldsettings.connect('changed', self.on_setting_changed)
Beispiel #9
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.drag_dest_add_uri_targets()

        binding_set = Gtk.binding_set_find('GtkSourceView')
        for key, modifiers in self.replaced_entries:
            Gtk.binding_entry_remove(binding_set, key, modifiers)
        self.anim_source_id = None
        self.animating_chunks = []
        self.syncpoints = []
        self._show_line_numbers = None

        buf = MeldBuffer()
        inline_tag = GtkSource.Tag.new("inline")
        inline_tag.props.draw_spaces = True
        buf.get_tag_table().add(inline_tag)
        buf.create_tag("dimmed")
        self.set_buffer(buf)