def do_realize(self): Gtk.ApplicationWindow.do_realize(self) app = self.get_application() menu = app.get_menu_by_id("gear-menu") self.gear_menu_button.set_popover( Gtk.Popover.new_from_model(self.gear_menu_button, menu)) filter_model = app.get_menu_by_id("text-filter-menu") self.text_filter_button.set_popover( Gtk.Popover.new_from_model(self.text_filter_button, filter_model)) filter_menu = app.get_menu_by_id("folder-status-filter-menu") self.folder_filter_button.set_popover( Gtk.Popover.new_from_model(self.folder_filter_button, filter_menu)) vc_filter_model = app.get_menu_by_id('vc-status-filter-menu') self.vc_filter_button.set_popover( Gtk.Popover.new_from_model(self.vc_filter_button, vc_filter_model)) meld_settings = get_meld_settings() self.update_text_filters(meld_settings) self.update_filename_filters(meld_settings) self.settings_handlers = [ meld_settings.connect("text-filters-changed", self.update_text_filters), meld_settings.connect("file-filters-changed", self.update_filename_filters), ] meld.ui.util.extract_accels_from_menu(menu, self.get_application())
def __init__(self, filediff): super().__init__() self.set_transient_for(filediff.get_toplevel()) self.filediff = filediff buf = GtkSource.Buffer() self.textview.set_buffer(buf) lang = LanguageManager.get_language_from_mime_type("text/x-diff") buf.set_language(lang) buf.set_highlight_syntax(True) self.index_map = { self.left_radiobutton: (0, 1), self.right_radiobutton: (1, 2) } self.left_patch = True self.reverse_patch = self.reverse_checkbutton.get_active() if self.filediff.num_panes < 3: self.side_selection_label.hide() self.side_selection_box.hide() meld_settings = get_meld_settings() self.textview.modify_font(meld_settings.font) self.textview.set_editable(False) meld_settings.connect('changed', self.on_setting_changed)
def associate(self, filediff, left_view, right_view): self.filediff = filediff self.views = [left_view, right_view] if self.get_direction() == Gtk.TextDirection.RTL: self.views.reverse() self.view_indices = [filediff.textview.index(t) for t in self.views] meld_settings = get_meld_settings() self.on_setting_changed(meld_settings, 'style-scheme') meld_settings.connect('changed', self.on_setting_changed)
def do_realize(self): bind_settings(self) def wrap_mode_from_bool(binding, from_value): if from_value: settings_mode = settings.get_enum('wrap-mode') if settings_mode == Gtk.WrapMode.NONE: mode = Gtk.WrapMode.WORD else: mode = settings_mode else: mode = Gtk.WrapMode.NONE return mode def wrap_mode_to_bool(binding, from_value): return bool(from_value) self.bind_property( 'wrap-mode-bool', self, 'wrap-mode', GObject.BindingFlags.BIDIRECTIONAL, wrap_mode_from_bool, wrap_mode_to_bool, ) self.wrap_mode_bool = wrap_mode_to_bool(None, self.props.wrap_mode) def draw_spaces_from_bool(binding, from_value): return GtkSource.DrawSpacesFlags.ALL if from_value else 0 def draw_spaces_to_bool(binding, from_value): return bool(from_value) self.bind_property( 'draw-spaces-bool', self, 'draw-spaces', GObject.BindingFlags.BIDIRECTIONAL, draw_spaces_from_bool, draw_spaces_to_bool, ) self.draw_spaces_bool = draw_spaces_to_bool(None, self.props.draw_spaces) meld_settings = get_meld_settings() self.on_setting_changed(meld_settings, 'font') self.on_setting_changed(meld_settings, 'style-scheme') self.get_buffer().set_style_scheme(meld_settings.style_scheme) meld_settings.connect('changed', self.on_setting_changed) return GtkSource.View.do_realize(self)
def do_realize(self): self.set_events( Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK ) self.connect('notify::action-mode', lambda *args: self.queue_draw()) meld_settings = get_meld_settings() meld_settings.connect('changed', self.on_setting_changed) self.on_setting_changed(meld_settings, 'style-scheme') return Gtk.DrawingArea.do_realize(self)
def __init__(self, from_pane, to_pane, linediffer): super().__init__() self.set_renderer_defaults() self.from_pane = from_pane self.to_pane = to_pane # FIXME: Don't pass in the linediffer; pass a generator like elsewhere self.linediffer = linediffer self.num_line_digits = 0 self.changed_handler_id = None meld_settings = get_meld_settings() meld_settings.connect('changed', self.on_setting_changed) self.on_setting_changed(meld_settings, 'style-scheme')
def do_realize(self): if not self.adjustment: log.critical( f'{self.__gtype_name__} initialized without an adjustment') return Gtk.DrawingArea.do_realize(self) self.set_events(Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) self.adjustment.connect('changed', lambda w: self.queue_draw()) self.adjustment.connect('value-changed', lambda w: self.queue_draw()) meld_settings = get_meld_settings() meld_settings.connect('changed', self.on_setting_changed) self.on_setting_changed(meld_settings, 'style-scheme') return Gtk.DrawingArea.do_realize(self)
def __init__(self, parent): super().__init__() self.set_transient_for(parent.get_toplevel()) selected = parent._get_selected_files() try: to_commit = parent.vc.get_files_to_commit(selected) topdir = parent.vc.root if to_commit: to_commit = ["\t" + s for s in to_commit] else: to_commit = ["\t" + _("No files will be committed")] except NotImplementedError: topdir = os.path.dirname(os.path.commonprefix(selected)) to_commit = ["\t" + s[len(topdir) + 1:] for s in selected] self.changedfiles.set_text("(in %s)\n%s" % (topdir, "\n".join(to_commit))) font = get_meld_settings().font self.textview.modify_font(font) commit_prefill = parent.vc.get_commit_message_prefill() if commit_prefill: buf = self.textview.get_buffer() buf.set_text(commit_prefill) buf.place_cursor(buf.get_start_iter()) # Try and make the textview wide enough for a standard 80-character # commit message. context = self.textview.get_pango_context() metrics = context.get_metrics(None, None) char_width = metrics.get_approximate_char_width() / Pango.SCALE width_request, height_request = self.scrolledwindow1.get_size_request() self.scrolledwindow1.set_size_request(80 * char_width, height_request) settings.bind('vc-show-commit-margin', self.textview, 'show-right-margin', Gio.SettingsBindFlags.DEFAULT) settings.bind('vc-commit-margin', self.textview, 'right-margin-position', Gio.SettingsBindFlags.DEFAULT) settings.bind('vc-break-commit-message', self, 'break-commit-message', Gio.SettingsBindFlags.DEFAULT) self.show_all()