def __init__(self, document, document_view): self.document = document self.view = document_view self.settings = ServiceLocator.get_settings() self.font_manager = ServiceLocator.get_font_manager() self.indentation_update = None self.view.source_view.set_show_line_numbers(False) self.view.source_view.set_insert_spaces_instead_of_tabs( self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.source_view.set_tab_width( self.settings.get_value('preferences', 'tab_width')) self.view.source_view.set_highlight_current_line( self.settings.get_value('preferences', 'highlight_current_line')) self.document.content.source_buffer.set_highlight_matching_brackets( self.settings.get_value('preferences', 'highlight_matching_brackets')) if self.settings.get_value('preferences', 'enable_line_wrapping'): self.view.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) else: self.view.source_view.set_wrap_mode(Gtk.WrapMode.NONE) self.view.source_view.set_left_margin( self.font_manager.get_char_width() - 1) self.settings.connect('settings_changed', self.on_settings_changed) self.font_manager.connect('font_string_changed', self.on_font_string_changed)
def __init__(self): Observable.__init__(self) self.settings = ServiceLocator.get_settings() self.displayname = '' self.filename = None self.save_date = None self.deleted_on_disk_dialog_shown_after_last_save = False self.last_activated = 0 self.dark_mode = False self.is_root = False self.root_is_set = False self.source_buffer = source_buffer.SourceBuffer(self) self.view = document_view.DocumentView(self, self.source_buffer.view) self.gutter = gutter.Gutter(self, self.view) self.search = search.Search(self, self.view, self.view.search_bar) self.spellchecker = spellchecker.Spellchecker(self.view.source_view) self.document_switcher_item = document_switcher_item.DocumentSwitcherItem( self) self.context_menu = context_menu.ContextMenu(self, self.view) self.shortcutsbar = shortcutsbar_presenter.ShortcutsbarPresenter( self, self.view) self.presenter = document_presenter.DocumentPresenter(self, self.view) self.controller = document_controller.DocumentController( self, self.view) self.line_numbers = line_numbers.LineNumbers(self, self.view)
def __init__(self, document, document_view): self.document = document self.view = document_view self.settings = ServiceLocator.get_settings() self.view.source_view.set_show_line_numbers(self.settings.get_value('preferences', 'show_line_numbers')) self.view.source_view.set_insert_spaces_instead_of_tabs(self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.source_view.set_tab_width(self.settings.get_value('preferences', 'tab_width')) self.view.source_view.set_highlight_current_line(self.settings.get_value('preferences', 'highlight_current_line')) self.document.source_buffer.set_highlight_matching_brackets(self.settings.get_value('preferences', 'highlight_matching_brackets')) if self.settings.get_value('preferences', 'enable_line_wrapping'): self.view.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) else: self.view.source_view.set_wrap_mode(Gtk.WrapMode.NONE) undo_manager = self.document.source_buffer.get_undo_manager() def can_undo_changed(manager, user_data=None): self.view.menu_item_undo.set_sensitive(manager.can_undo()) undo_manager.connect('can-undo-changed', can_undo_changed) can_undo_changed(undo_manager) def can_redo_changed(manager, user_data=None): self.view.menu_item_redo.set_sensitive(manager.can_redo()) undo_manager.connect('can-redo-changed', can_redo_changed) can_redo_changed(undo_manager) if self.document.is_latex_document(): self.view.menu_item_show_in_preview.set_sensitive(False) self.document.register_observer(self) self.settings.register_observer(self)
def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.settings = ServiceLocator.get_settings() self.current_values = dict() self.page_formats = { 'US Letter': 'letterpaper', 'US Legal': 'legalpaper', 'A4': 'a4paper', 'A5': 'a5paper', 'B5': 'b5paper' } self.view = view.DocumentWizardView(self.main_window) self.pages = list() self.pages.append(DocumentClassPage(self.current_values)) self.pages.append(ArticleSettingsPage(self.current_values)) self.pages.append(ReportSettingsPage(self.current_values)) self.pages.append(BookSettingsPage(self.current_values)) self.pages.append(LetterSettingsPage(self.current_values)) self.pages.append(BeamerSettingsPage(self.current_values)) self.pages.append(GeneralSettingsPage(self.current_values)) for page in self.pages: self.view.notebook.append_page(page.view) self.is_not_setup = True
def __init__(self, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.items = list() self.view = build_widget_view.BuildWidgetView() self.view.stop_button.connect('clicked', self.on_stop_build_button_click) self.view.clean_button.connect('clicked', self.on_clean_button_click) self.view.build_button.show_all() self.view.stop_button.hide() self.build_button_state = ('idle', int(time.time() * 1000)) self.set_clean_button_state() self.document.connect('filename_change', self.on_filename_change) self.document.build_system.connect('build_state_change', self.on_build_state_change) self.document.build_system.connect('build_state', self.on_build_state) self.settings.connect('settings_changed', self.on_settings_changed) self.view.build_timer.connect('notify::child-revealed', self.on_revealer_finished)
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.view.set_left_margin(6) self.settings = ServiceLocator.get_settings() resources_path = ServiceLocator.get_resources_path() self.mover_mark = self.create_mark('mover', self.get_start_iter(), True) # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'language-specs'), )) self.source_language = self.source_language_manager.get_language( self.document.get_gsv_language_name()) self.set_language(self.source_language) self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'styles'), )) self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme( 'setzer') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme( 'setzer-dark') 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.view.connect('key-press-event', self.on_keypress) 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.document.add_change_code('buffer_ready')
def __init__(self, workspace): self.view = symbols_page_view.SymbolsPageView() self.workspace = workspace self.scroll_to = None self.recent = ServiceLocator.get_settings().get_value('app_recent_symbols', 'symbols') self.recent_details = list() self.recent_view_size = None self.update_recent_widget() self.view.show_all() for symbols_list_view in self.view.symbols_views: symbols_list_view.connect('size-allocate', self.on_symbols_view_size_allocate) symbols_list_view.connect('button-press-event', self.on_flowbox_clicked, symbols_list_view) self.view.vbox.connect('size-allocate', self.on_scroll_or_resize) self.view.scrolled_window.get_vadjustment().connect('value-changed', self.on_scroll_or_resize) self.view.vbox.connect('realize', self.on_scroll_or_resize) self.view.next_button.connect('clicked', self.on_next_button_clicked) self.view.prev_button.connect('clicked', self.on_prev_button_clicked) self.view.search_button.connect('toggled', self.on_search_button_toggled) self.view.search_close_button.connect('clicked', self.on_search_close_button_clicked) self.view.search_entry.connect('stop-search', self.on_search_stopped) self.view.search_entry.connect('search-changed', self.on_search_changed) self.update_symbols()
def __init__(self, document, doclist_item): self.document = document self.settings = ServiceLocator.get_settings() self.doclist_item = doclist_item self.modified_state = document.get_modified() self.document.register_observer(self) self.document.get_buffer().connect('modified-changed', self.on_modified_change)
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)
def __init__(self, model): self.model = model self.source_view = self.model.document.view.source_view self.settings = ServiceLocator.get_settings() if self.settings.get_value('preferences', 'enable_code_folding'): self.model.enable_code_folding() else: self.model.disable_code_folding() self.settings.connect('settings_changed', self.on_settings_changed)
def __init__(self, model): self.model = model self.source_view = self.model.document.view.source_view self.settings = ServiceLocator.get_settings() if self.settings.get_value('preferences', 'enable_code_folding'): self.model.enable_code_folding() else: self.model.disable_code_folding() self.settings.register_observer(self)
def __init__(self, main_window): self.main_window = main_window self.settings = ServiceLocator.get_settings() self.styles = ['plain', 'abbrv', 'alpha', 'apalike', 'ieeetr'] self.style_names = ['Plain', 'Abbrv', 'Alpha', 'Apalike', 'iEEEtr'] self.natbib_styles = ['plainnat', 'abbrvnat', 'unsrtnat', 'achemso'] self.natbib_style_names = ['Plainnat', 'Abbrvnat', 'Unsrtnat', 'Achemso'] self.current_values = dict() self.view = view.IncludeBibTeXFileView(self.main_window) self.is_not_setup = True
def __init__(self, document, document_view): self.document = document self.source_view = document_view.source_view self.adjustment = document_view.scrolled_window.get_vadjustment() self.widgets = list() self.total_size = 0 self.lines = list() self.current_line = 0 self.font_manager = ServiceLocator.get_font_manager() self.font_manager.connect('font_string_changed', self.on_font_string_changed) self.view = Gtk.DrawingArea() self.view.set_valign(Gtk.Align.FILL) self.view.set_halign(Gtk.Align.START) self.view.connect('draw', self.on_draw) self.view.show_all() def on_realize(widget): widget.get_window().set_pass_through(True) self.view.connect('realize', on_realize) self.style_context = self.view.get_style_context() self.color_manager = ServiceLocator.get_color_manager() self.bg_color = None self.fg_color = None self.cl_color = None self.border_color = None self.update_colors() self.source_view.get_style_context().connect('changed', self.update_colors) document_view.overlay.add_overlay(self.view) document_view.overlay.set_overlay_pass_through(self.view, True) self.char_width, self.line_height = self.font_manager.get_char_dimensions( ) self.source_view.connect('button-press-event', self.on_click) self.source_view.connect('enter-notify-event', self.on_pointer_movement) self.source_view.connect('leave-notify-event', self.on_pointer_movement) self.source_view.connect('motion-notify-event', self.on_pointer_movement) self.highlight_current_line = False settings = ServiceLocator.get_settings() self.set_line_highlighting( settings.get_value('preferences', 'highlight_current_line')) settings.connect('settings_changed', self.on_settings_changed)
def __init__(self): Observable.__init__(self) self.settings = ServiceLocator.get_settings() self.displayname = '' self.filename = None self.save_date = None self.last_activated = 0 self.parser = None self.source_buffer = source_buffer.SourceBuffer(self) self.source_buffer.connect('changed', self.on_buffer_changed)
def __init__(self, workspace): Observable.__init__(self) self.workspace = workspace self.settings = ServiceLocator.get_settings() self.document = None self.items = list() self.hover_item = None self.view = ServiceLocator.get_main_window().build_log self.presenter = build_log_presenter.BuildLogPresenter(self, self.view) self.controller = build_log_controller.BuildLogController( self, self.view)
def __init__(self, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.active_query = None # possible states: idle, ready_for_building # building_in_progress, building_to_stop self.build_state = 'idle' # possible values: build, forward_sync, build_and_forward_sync self.build_mode = 'build_and_forward_sync' self.document_has_been_built = False self.build_time = None self.last_build_start_time = None self.has_synctex_file = False self.backward_sync_data = None self.forward_sync_arguments = None self.can_sync = False self.update_can_sync() self.build_log_data = { 'items': list(), 'error_count': 0, 'warning_count': 0, 'badbox_count': 0 } self.builders = dict() self.builders['build_latex'] = builder_build_latex.BuilderBuildLaTeX() self.builders[ 'build_bibtex'] = builder_build_bibtex.BuilderBuildBibTeX() self.builders['build_biber'] = builder_build_biber.BuilderBuildBiber() self.builders[ 'build_makeindex'] = builder_build_makeindex.BuilderBuildMakeindex( ) self.builders[ 'build_glossaries'] = builder_build_glossaries.BuilderBuildGlossaries( ) self.builders[ 'forward_sync'] = builder_forward_sync.BuilderForwardSync() self.builders[ 'backward_sync'] = builder_backward_sync.BuilderBackwardSync() self.document.preview.connect('pdf_changed', self.update_can_sync) GObject.timeout_add(50, self.results_loop)
def __init__(self): Observable.__init__(self) self.settings = ServiceLocator.get_settings() self.displayname = '' self.filename = None self.save_date = None self.last_activated = 0 self.source_buffer = None self.search_settings = None self.search_context = None self.parser = None self.init_buffer()
def __init__(self): Observable.__init__(self) self.pathname = ServiceLocator.get_config_folder() self.open_documents = list() self.open_latex_documents = list() self.root_document = None self.recently_opened_documents = dict() self.untitled_documents_no = 0 self.active_document = None self.can_sync = False self.sync_document = None self.update_sync_document() self.recently_opened_session_files = dict() self.session_file_opened = None self.settings = ServiceLocator.get_settings() self.inline_spellchecking = self.settings.get_value( 'preferences', 'inline_spellchecking') self.spellchecking_language_code = self.settings.get_value( 'preferences', 'spellchecking_language_code') self.dark_mode = self.settings.get_value('preferences', 'prefer_dark_mode') self.invert_pdf = self.settings.get_value('preferences', 'invert_pdf') self.sidebar = sidebar.Sidebar(self) self.welcome_screen = welcome_screen.WelcomeScreen() self.show_symbols = self.settings.get_value('window_state', 'show_symbols') self.show_document_structure = self.settings.get_value( 'window_state', 'show_document_structure') self.sidebar_position = self.settings.get_value( 'window_state', 'sidebar_paned_position') self.show_help = self.settings.get_value('window_state', 'show_help') self.show_preview = self.settings.get_value('window_state', 'show_preview') self.preview_position = self.settings.get_value( 'window_state', 'preview_paned_position') self.build_log = build_log.BuildLog(self) self.show_build_log = self.settings.get_value('window_state', 'show_build_log') self.build_log_position = self.settings.get_value( 'window_state', 'build_log_paned_position') self.shortcutsbar = shortcutsbar.Shortcutsbar(self) self.shortcuts = shortcuts.Shortcuts(self)
def __init__(self, workspace): Observable.__init__(self) self.workspace = workspace self.settings = ServiceLocator.get_settings() self.document = None self.items = list() self.symbols = { 'Badbox': 'own-badbox-symbolic', 'Error': 'dialog-error-symbolic', 'Warning': 'dialog-warning-symbolic' } self.view = ServiceLocator.get_main_window().build_log self.presenter = build_log_presenter.BuildLogPresenter(self, self.view) self.controller = build_log_controller.BuildLogController( self, self.view)
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)
def __init__(self, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.items = list() self.view = build_widget_view.BuildWidgetView() self.view.stop_button.connect('clicked', self.on_stop_build_button_click) self.view.clean_button.connect('clicked', self.on_clean_button_click) self.view.build_button.show_all() self.view.stop_button.hide() self.build_button_state = ('idle', int(time.time() * 1000)) self.set_clean_button_state() self.document.register_observer(self) self.settings.register_observer(self)
def __init__(self, document, document_view): self.source_view = document_view.source_view self.line_height = 0 self.char_width = 0 self.font_desc = None self.font_size = None self.font_changed = True self.glyph_index = None self.extents = None self.size = 0 self.visible = False self.update_size() document.gutter.add_widget(self) settings = ServiceLocator.get_settings() self.set_visibility(settings.get_value('preferences', 'show_line_numbers')) settings.connect('settings_changed', self.on_settings_changed)
def __init__(self, document, document_view): self.document = document self.view = document_view self.settings = ServiceLocator.get_settings() self.view.source_view.set_show_line_numbers(False) self.view.source_view.set_insert_spaces_instead_of_tabs( self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.source_view.set_tab_width( self.settings.get_value('preferences', 'tab_width')) self.view.source_view.set_highlight_current_line( self.settings.get_value('preferences', 'highlight_current_line')) self.document.source_buffer.set_highlight_matching_brackets( self.settings.get_value('preferences', 'highlight_matching_brackets')) if self.settings.get_value('preferences', 'enable_line_wrapping'): self.view.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) else: self.view.source_view.set_wrap_mode(Gtk.WrapMode.NONE) self.document.register_observer(self) self.settings.register_observer(self)
def __init__(self): Observable.__init__(self) self.pathname = ServiceLocator.get_config_folder() self.open_documents = list() self.open_latex_documents = list() self.master_document = None self.recently_opened_documents = dict() self.untitled_documents_no = 0 self.active_document = None self.recently_opened_session_files = dict() self.session_file_opened = None self.settings = ServiceLocator.get_settings() self.inline_spellchecking = self.settings.get_value( 'preferences', 'inline_spellchecking') self.spellchecking_language_code = self.settings.get_value( 'preferences', 'spellchecking_language_code') self.dark_mode = self.settings.get_value('preferences', 'prefer_dark_mode') self.sidebar = sidebar.Sidebar() self.show_sidebar = self.settings.get_value('window_state', 'show_sidebar') self.sidebar_position = self.settings.get_value( 'window_state', 'sidebar_paned_position') self.show_help = self.settings.get_value('window_state', 'show_help') self.show_preview = self.settings.get_value('window_state', 'show_preview') self.preview_position = self.settings.get_value( 'window_state', 'preview_paned_position') self.build_log = build_log.BuildLog(self) self.show_build_log = self.settings.get_value('window_state', 'show_build_log') self.build_log_position = self.settings.get_value( 'window_state', 'build_log_paned_position') self.shortcuts = shortcuts.Shortcuts(self)
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.view.set_left_margin(6) self.settings = ServiceLocator.get_settings() resources_path = ServiceLocator.get_resources_path() # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language = self.source_language_manager.get_language( self.document.get_gsv_language_name()) self.set_language(self.source_language) self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'styles'), )) self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme( 'setzer') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme( 'setzer-dark') self.search_settings = GtkSource.SearchSettings() self.search_context = GtkSource.SearchContext.new( self, self.search_settings) self.search_context.set_highlight(True) self.synctex_tag_count = 0 self.synctex_highlight_tags = dict() self.document.add_change_code('buffer_ready')
def __init__(self, document): self.document = document self.build_system = build_system.BuildSystem() self.settings = ServiceLocator.get_settings() self.document.register_observer(self) self.build_system.register_observer(self)
def __init__(self, main_window): self.main_window = main_window self.settings = ServiceLocator.get_settings()
def on_set_dark_mode(self, workspace, darkmode_enabled): settings = ServiceLocator.get_settings() settings.gtksettings.get_default().set_property( 'gtk-application-prefer-dark-theme', darkmode_enabled)
def __init__(self, workspace): self.workspace = workspace main_window = ServiceLocator.get_main_window() settings = ServiceLocator.get_settings() self.new_latex_document_action = Gio.SimpleAction.new('new-latex-document', None) self.new_bibtex_document_action = Gio.SimpleAction.new('new-bibtex-document', None) self.open_document_dialog_action = Gio.SimpleAction.new('open-document-dialog', None) self.build_action = Gio.SimpleAction.new('build', None) self.save_and_build_action = Gio.SimpleAction.new('save-and-build', None) self.save_action = Gio.SimpleAction.new('save', None) self.save_as_action = Gio.SimpleAction.new('save-as', None) self.save_all_action = Gio.SimpleAction.new('save-all', None) self.save_session_action = Gio.SimpleAction.new('save-session', None) self.restore_session_action = Gio.SimpleAction.new('restore-session', GLib.VariantType('as')) self.find_action = Gio.SimpleAction.new('find', None) self.find_next_action = Gio.SimpleAction.new('find-next', None) self.find_prev_action = Gio.SimpleAction.new('find-prev', None) self.find_replace_action = Gio.SimpleAction.new('find-replace', None) self.close_all_action = Gio.SimpleAction.new('close-all-documents', None) self.close_document_action = Gio.SimpleAction.new('close-active-document', None) self.insert_before_after_action = Gio.SimpleAction.new('insert-before-after', GLib.VariantType('as')) self.insert_symbol_action = Gio.SimpleAction.new('insert-symbol', GLib.VariantType('as')) self.insert_before_document_end_action = Gio.SimpleAction.new('insert-before-document-end', GLib.VariantType('as')) self.document_wizard_action = Gio.SimpleAction.new('show-document-wizard', None) self.create_new_bibtex_entry_action = Gio.SimpleAction.new('create-new-bibtex-entry', None) self.show_previous_bibtex_entries_action = Gio.SimpleAction.new('show-previous-bibtex-entries', None) self.search_online_for_bibtex_entries_action = Gio.SimpleAction.new('search-online-for-bibtex-entries', None) self.include_bibtex_file_action = Gio.SimpleAction.new('include-bibtex-file', None) self.include_latex_file_action = Gio.SimpleAction.new('include-latex-file', None) self.add_remove_packages_dialog_action = Gio.SimpleAction.new('add-remove-packages-dialog', None) self.add_packages_action = Gio.SimpleAction.new('add-packages', GLib.VariantType('as')) self.comment_uncomment_action = Gio.SimpleAction.new('comment-uncomment', None) self.shortcuts_window_action = Gio.SimpleAction.new('show-shortcuts-window', None) self.show_preferences_action = Gio.SimpleAction.new('show-preferences-dialog', None) self.show_about_action = Gio.SimpleAction.new('show-about-dialog', None) self.quit_action = Gio.SimpleAction.new('quit', None) self.close_build_log_action = Gio.SimpleAction.new('close-build-log', None) sc_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'inline_spellchecking')) self.toggle_spellchecking_action = Gio.SimpleAction.new_stateful('toggle-spellchecking', None, sc_default) self.set_spellchecking_language_action = Gio.SimpleAction.new('set-spellchecking-language', None) self.spellchecking_action = Gio.SimpleAction.new('spellchecking', None) dm_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'prefer_dark_mode')) self.toggle_dark_mode_action = Gio.SimpleAction.new_stateful('toggle-dark-mode', None, dm_default) settings.gtksettings.get_default().set_property('gtk-application-prefer-dark-theme', dm_default) ip_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'invert_pdf')) self.toggle_invert_pdf_action = Gio.SimpleAction.new_stateful('toggle-invert-pdf', None, ip_default) self.zoom_out_action = Gio.SimpleAction.new('zoom-out', None) self.zoom_in_action = Gio.SimpleAction.new('zoom-in', None) self.reset_zoom_action = Gio.SimpleAction.new('reset-zoom', None) main_window.add_action(self.new_latex_document_action) main_window.add_action(self.new_bibtex_document_action) main_window.add_action(self.open_document_dialog_action) main_window.add_action(self.build_action) main_window.add_action(self.save_and_build_action) main_window.add_action(self.save_action) main_window.add_action(self.save_as_action) main_window.add_action(self.save_all_action) main_window.add_action(self.save_session_action) main_window.add_action(self.restore_session_action) main_window.add_action(self.find_action) main_window.add_action(self.find_next_action) main_window.add_action(self.find_prev_action) main_window.add_action(self.find_replace_action) main_window.add_action(self.close_all_action) main_window.add_action(self.close_document_action) main_window.add_action(self.insert_before_after_action) main_window.add_action(self.insert_symbol_action) main_window.add_action(self.insert_before_document_end_action) main_window.add_action(self.document_wizard_action) main_window.add_action(self.create_new_bibtex_entry_action) main_window.add_action(self.show_previous_bibtex_entries_action) main_window.add_action(self.search_online_for_bibtex_entries_action) main_window.add_action(self.include_bibtex_file_action) main_window.add_action(self.include_latex_file_action) main_window.add_action(self.add_remove_packages_dialog_action) main_window.add_action(self.add_packages_action) main_window.add_action(self.comment_uncomment_action) main_window.add_action(self.shortcuts_window_action) main_window.add_action(self.show_preferences_action) main_window.add_action(self.show_about_action) main_window.add_action(self.quit_action) main_window.add_action(self.close_build_log_action) main_window.add_action(self.toggle_spellchecking_action) main_window.add_action(self.set_spellchecking_language_action) main_window.add_action(self.spellchecking_action) main_window.add_action(self.toggle_dark_mode_action) main_window.add_action(self.toggle_invert_pdf_action) main_window.add_action(self.zoom_out_action) main_window.add_action(self.zoom_in_action) main_window.add_action(self.reset_zoom_action) self.new_latex_document_action.connect('activate', self.on_new_latex_document_action_activated) self.new_bibtex_document_action.connect('activate', self.on_new_bibtex_document_action_activated) self.open_document_dialog_action.connect('activate', self.on_open_document_dialog_action_activated) self.build_action.connect('activate', self.on_build_action_activated) self.save_and_build_action.connect('activate', self.on_save_and_build_action_activated) self.save_action.connect('activate', self.on_save_button_click) self.save_as_action.connect('activate', self.on_save_as_clicked) self.save_all_action.connect('activate', self.on_save_all_clicked) self.save_session_action.connect('activate', self.on_save_session_clicked) self.restore_session_action.connect('activate', self.on_restore_session_clicked) self.find_action.connect('activate', self.on_menu_find_clicked) self.find_next_action.connect('activate', self.find_next) self.find_prev_action.connect('activate', self.find_prev) self.find_replace_action.connect('activate', self.on_menu_find_replace_clicked) self.close_all_action.connect('activate', self.on_close_all_clicked) self.close_document_action.connect('activate', self.on_close_document_clicked) self.insert_before_after_action.connect('activate', self.insert_before_after) self.insert_symbol_action.connect('activate', self.insert_symbol) self.insert_before_document_end_action.connect('activate', self.insert_before_document_end) self.document_wizard_action.connect('activate', self.start_wizard) self.include_bibtex_file_action.connect('activate', self.start_include_bibtex_file_dialog) self.include_latex_file_action.connect('activate', self.start_include_latex_file_dialog) self.add_remove_packages_dialog_action.connect('activate', self.start_add_remove_packages_dialog) self.add_packages_action.connect('activate', self.add_packages) self.comment_uncomment_action.connect('activate', self.comment_uncomment) self.create_new_bibtex_entry_action.connect('activate', self.start_create_new_bibtex_entry_dialog) self.show_previous_bibtex_entries_action.connect('activate', self.start_show_previous_bibtex_entries_dialog) self.search_online_for_bibtex_entries_action.connect('activate', self.start_search_online_for_bibtex_entries_dialog) self.shortcuts_window_action.connect('activate', self.show_shortcuts_window) self.show_preferences_action.connect('activate', self.show_preferences_dialog) self.show_about_action.connect('activate', self.show_about_dialog) self.close_build_log_action.connect('activate', self.close_build_log) self.toggle_spellchecking_action.connect('activate', self.on_spellchecking_toggle_toggled) self.set_spellchecking_language_action.connect('activate', self.start_spellchecking_language_dialog) self.spellchecking_action.connect('activate', self.start_spellchecking_dialog) self.toggle_dark_mode_action.connect('activate', self.on_dark_mode_toggle_toggled) self.toggle_invert_pdf_action.connect('activate', self.on_invert_pdf_toggle_toggled) self.zoom_out_action.connect('activate', self.on_zoom_out) self.zoom_in_action.connect('activate', self.on_zoom_in) self.reset_zoom_action.connect('activate', self.on_reset_zoom) self.font_manager = ServiceLocator.get_font_manager() self.update_zoom_actions() self.workspace.register_observer(self) self.font_manager.register_observer(self)
def change_notification(self, change_code, notifying_object, parameter): if change_code == 'new_document': document = parameter document.set_dark_mode(ServiceLocator.get_is_dark_mode()) if document.is_latex_document(): self.main_window.latex_notebook.append_page(document.view) elif document.is_bibtex_document(): self.main_window.bibtex_notebook.append_page(document.view) else: self.main_window.others_notebook.append_page(document.view) if change_code == 'document_removed': document = parameter if document.is_latex_document(): self.main_window.latex_notebook.remove(document.view) elif document.is_bibtex_document(): self.main_window.bibtex_notebook.remove(document.view) else: self.main_window.others_notebook.remove(document.view) if self.workspace.active_document == None: self.activate_welcome_screen_mode() if change_code == 'new_active_document': document = parameter if document.is_latex_document(): notebook = self.main_window.latex_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() try: self.main_window.preview_paned_overlay.add_overlay( document.autocomplete.view) document.autocomplete.update() except AttributeError: pass self.update_latex_shortcuts_bar() self.activate_latex_documents_mode() elif document.is_bibtex_document(): notebook = self.main_window.bibtex_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() self.update_bibtex_shortcuts_bar() self.activate_bibtex_documents_mode() else: notebook = self.main_window.others_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() self.update_others_shortcuts_bar() self.activate_other_documents_mode() if change_code == 'new_inactive_document': document = parameter if document.is_latex_document(): try: self.main_window.preview_paned_overlay.remove( document.autocomplete.view) except AttributeError: pass self.main_window.latex_shortcuts_bar.top_icons.remove( document.view.wizard_button) if change_code == 'set_show_sidebar': self.animate_sidebar(parameter, True) if change_code == 'set_show_preview_or_help': if self.workspace.show_preview: self.main_window.preview_help_stack.set_visible_child_name( 'preview') self.focus_active_document() elif self.workspace.show_help: self.main_window.preview_help_stack.set_visible_child_name( 'help') if self.main_window.help_panel.stack.get_visible_child_name( ) == 'search': self.main_window.help_panel.search_entry.set_text('') self.main_window.help_panel.search_entry.grab_focus() else: self.focus_active_document() else: self.focus_active_document() self.animate_preview(self.workspace.show_preview, self.workspace.show_help, True) if change_code == 'show_build_log_state_change': self.build_log_animate(parameter, True) if change_code == 'set_dark_mode': ServiceLocator.get_settings().gtksettings.get_default( ).set_property('gtk-application-prefer-dark-theme', parameter)