Esempio n. 1
0
    def init(self):
        self.update_switchers()
        self.view.style_switcher.set_active_id(self.settings.get_value('preferences', 'syntax_scheme'))
        self.view.style_switcher.connect('changed', self.on_style_switcher_changed, False)
        self.view.style_switcher_dark_mode.set_active_id(self.settings.get_value('preferences', 'syntax_scheme_dark_mode'))
        self.view.style_switcher_dark_mode.connect('changed', self.on_style_switcher_changed, True)

        self.view.style_switcher_label_light.connect('clicked', self.set_style_switcher_page, 'light')
        self.view.style_switcher_label_dark.connect('clicked', self.set_style_switcher_page, 'dark')

        source_language_manager = ServiceLocator.get_source_language_manager()
        source_language = source_language_manager.get_language('latex')
        self.view.source_buffer.set_language(source_language)
        self.update_font_color_preview()

        if ServiceLocator.get_is_dark_mode():
            self.view.style_switcher_label_dark.clicked()

        self.view.add_scheme_button.connect('clicked', self.on_add_scheme_button_clicked)
        self.view.remove_scheme_button.connect('clicked', self.on_remove_scheme_button_clicked)

        self.view.font_chooser_button.set_font(self.settings.get_value('preferences', 'font_string'))
        self.view.font_chooser_button.connect('font-set', self.on_font_set)
        self.view.option_use_system_font.set_active(self.settings.get_value('preferences', 'use_system_font'))
        self.view.font_chooser_revealer.set_reveal_child(not self.view.option_use_system_font.get_active())
        self.view.option_use_system_font.connect('toggled', self.on_use_system_font_toggled)
Esempio n. 2
0
    def __init__(self, document):
        GtkSource.Buffer.__init__(self)

        self.document = document
        self.view = GtkSource.View.new_with_buffer(self)
        self.view.set_monospace(True)
        self.view.set_smart_home_end(True)
        self.view.set_auto_indent(True)
        self.settings = ServiceLocator.get_settings()
        self.source_language_manager = ServiceLocator.get_source_language_manager(
        )
        self.source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager(
        )
        self.font_manager = ServiceLocator.get_font_manager()
        self.font_manager.register_observer(self)

        self.mover_mark = self.create_mark('mover', self.get_start_iter(),
                                           True)

        # set source language for syntax highlighting
        self.source_language = self.source_language_manager.get_language(
            self.document.get_gsv_language_name())
        self.set_language(self.source_language)
        self.update_syntax_scheme()

        self.search_settings = GtkSource.SearchSettings()
        self.search_context = GtkSource.SearchContext.new(
            self, self.search_settings)
        self.search_context.set_highlight(True)

        self.insert_position = 0

        self.synctex_tag_count = 0
        self.synctex_highlight_tags = dict()

        self.indentation_update = None
        self.indentation_tags = dict()
        self.tab_width = self.settings.get_value('preferences', 'tab_width')
        self.settings.register_observer(self)

        self.placeholder_tag = self.create_tag('placeholder')
        self.placeholder_tag.set_property('background', '#fce94f')
        self.placeholder_tag.set_property('foreground', '#000')

        self.connect('mark-set', self.on_mark_set)
        self.connect('mark-deleted', self.on_mark_deleted)
        self.connect('insert-text', self.on_insert_text)
        self.connect('delete-range', self.on_delete_range)
        self.connect('end-user-action', self.on_end_user_action)
        self.connect('changed', self.on_buffer_changed)
        self.connect('modified-changed', self.on_modified_changed)

        self.document.add_change_code('buffer_ready')

        self.view.set_left_margin(
            self.font_manager.get_char_width(self.view) - 3)
Esempio n. 3
0
    def init(self):
        self.update_switchers()
        self.view.style_switcher.set_active_id(
            self.settings.get_value('preferences', 'syntax_scheme'))
        self.view.style_switcher.connect('changed',
                                         self.on_style_switcher_changed, False)
        self.view.style_switcher_dark_mode.set_active_id(
            self.settings.get_value('preferences', 'syntax_scheme_dark_mode'))
        self.view.style_switcher_dark_mode.connect(
            'changed', self.on_style_switcher_changed, True)

        dark_mode_state = self.settings.get_value('preferences',
                                                  'prefer_dark_mode')
        self.view.option_dark_mode.set_active(dark_mode_state)
        self.view.option_dark_mode.connect('toggled',
                                           self.on_dark_mode_toggle_toggled)
        self.view.style_switcher_stack.set_visible_child_name(
            'dark' if dark_mode_state else 'light')
        self.update_font_color_preview()
        self.update_remove_button()

        ip_state = self.settings.get_value('preferences', 'invert_pdf')
        self.view.option_invert_preview.set_active(ip_state)
        self.view.option_invert_preview.connect('toggled',
                                                self.on_ip_toggle_toggled)

        source_language_manager = ServiceLocator.get_source_language_manager()
        source_language = source_language_manager.get_language('latex')
        self.view.source_buffer.set_language(source_language)
        self.update_font_color_preview()

        self.view.add_scheme_button.connect('clicked',
                                            self.on_add_scheme_button_clicked)
        self.view.remove_scheme_button.connect(
            'clicked', self.on_remove_scheme_button_clicked)

        self.view.font_chooser_button.set_font(
            self.settings.get_value('preferences', 'font_string'))
        self.view.font_chooser_button.connect('font-set', self.on_font_set)
        self.view.option_use_system_font.set_active(
            self.settings.get_value('preferences', 'use_system_font'))
        self.view.font_chooser_revealer.set_reveal_child(
            not self.view.option_use_system_font.get_active())
        self.view.option_use_system_font.connect(
            'toggled', self.on_use_system_font_toggled)
Esempio n. 4
0
    def __init__(self, language, document):
        Observable.__init__(self)
        self.document = document

        self.settings = ServiceLocator.get_settings()

        self.source_buffer = GtkSource.Buffer()
        self.source_view = GtkSource.View.new_with_buffer(self.source_buffer)
        self.source_language_manager = ServiceLocator.get_source_language_manager(
        )
        self.source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager(
        )
        if language == 'bibtex':
            self.source_language = self.source_language_manager.get_language(
                'bibtex')
        else:
            self.source_language = self.source_language_manager.get_language(
                'latex')
        self.source_buffer.set_language(self.source_language)
        self.update_syntax_scheme()

        self.scroll_to = None
        self.insert_position = 0

        self.synctex_tag_count = 0
        self.synctex_highlight_tags = dict()

        self.indentation_update = None
        self.indentation_tags = dict()

        self.placeholder_tag = self.source_buffer.create_tag('placeholder')
        self.placeholder_tag.set_property('background', '#fce94f')
        self.placeholder_tag.set_property('foreground', '#000')

        self.source_buffer.connect('mark-set', self.on_mark_set)
        self.source_buffer.connect('mark-deleted', self.on_mark_deleted)
        self.source_buffer.connect('insert-text', self.on_insert_text)
        self.source_buffer.connect('delete-range', self.on_delete_range)
        self.source_buffer.connect('changed', self.on_buffer_changed)
        self.source_buffer.connect('modified-changed',
                                   self.on_modified_changed)
        self.undo_manager = self.source_buffer.get_undo_manager()
        self.undo_manager.connect('can-undo-changed', self.on_can_undo_changed)
        self.undo_manager.connect('can-redo-changed', self.on_can_redo_changed)
        self.settings.connect('settings_changed', self.on_settings_changed)