def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()
        self.view = ServiceLocator.get_main_window().headerbar.document_chooser
        self.workspace.register_observer(self)

        self.view.connect('closed', self.on_document_chooser_closed)
        self.view.search_entry.connect('search-changed',
                                       self.on_document_chooser_search_changed)
        auto_suggest_box = self.view.auto_suggest_box
        auto_suggest_box.connect('row-activated',
                                 self.on_document_chooser_selection)
    def __init__(self, document, document_view):
        self.document = document
        self.document_view = document_view
        self.main_window = ServiceLocator.get_main_window()
        self.font_manager = ServiceLocator.get_font_manager()
        self.font_manager.register_observer(self)

        self.view = view.DocumentAutocompleteView()
        self.mark_start = Gtk.TextMark.new('ac_session_start', True)
        self.mark_end = Gtk.TextMark.new('ac_session_end', False)
        self.matching_mark_start = Gtk.TextMark.new('ac_session_second_start', True)
        self.matching_mark_end = Gtk.TextMark.new('ac_session_second_end', False)

        self.provider = ServiceLocator.get_autocomplete_provider()

        self.blank_session = session_blank.SessionBlank(self, self.document)
        self.session = self.blank_session

        self.shortcuts_bar_height = 37
        self.cursor_offset = None

        char_width, line_height = self.font_manager.get_char_dimensions(self.document_view.source_view)
        self.view.scrolled_window.set_max_content_height(5 * line_height)
        self.view.scrolled_window.set_min_content_width(35 * char_width)

        self.focus_hide = False

        self.items = list()

        self.view.list.connect('row-activated', self.on_row_activated)
        self.view.list.connect('row-selected', self.on_row_selected)

        self.document.register_observer(self)
Beispiel #3
0
    def __init__(self, workspace):
        Observable.__init__(self)

        self.workspace = workspace
        self.view = ServiceLocator.get_main_window().help_panel

        self.path = 'file://' + os.path.join(
            ServiceLocator.get_resources_path(), 'help')
        self.home_uri = self.path + '/latex2e_0.html'
        self.current_uri = self.home_uri

        with open(
                os.path.join(ServiceLocator.get_resources_path(), 'help',
                             'search_index.pickle'), 'rb') as filehandle:
            self.search_index = pickle.load(filehandle)

        self.search_results_blank = list()
        self.search_results = self.search_results_blank
        self.query = ''

        self.controller = help_panel_controller.HelpPanelController(
            self, self.view)
        self.presenter = help_panel_presenter.HelpPanelPresenter(
            self, self.view)

        self.add_change_code('search_query_changed')
    def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()
        self.notebook = self.main_window.preview_panel.notebook

        self.workspace.register_observer(self)
        self.activate_blank_page()
Beispiel #5
0
    def __init__(self, document_switcher, workspace):
        self.document_switcher = document_switcher
        self.workspace = workspace
        self.button = ServiceLocator.get_main_window().headerbar.center_widget
        self.view = self.button.open_docs_popover

        self.observe_document_switcher_view()
Beispiel #6
0
    def __init__(self):
        self.view = ServiceLocator.get_main_window().welcome_screen

        self.text = list()
        self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.')
        self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.')
        self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.')
        self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.')
        self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.')
        self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.')
        self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.')
        self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.')
        self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.')
        self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.')
        self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.')
        self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.')
        self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.')
        self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.')
        self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.')
        self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.')
        self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.')
        self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.')
        self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.')
        self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.')
        self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.')
        self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.')
        self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.')
        self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.')
        self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.')
        self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.')
        self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.')
        self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.')
        self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.')
        self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.')

        self.font_desc = Pango.FontDescription.from_string('cmr10')
        self.angle = 0.18
        self.alpha = 0.065
        self.font_size = 40
        self.line_height = 70

        self.is_active = False
        self.lines_per_second = 0.25
        self.animate = False

        self.fg_color = None
        self.bg_color = None
        self.color_manager = ServiceLocator.get_color_manager()
        self.update_colors()
        self.view.get_style_context().connect('changed', self.update_colors)

        self.view_height = 0
        self.view_width = 0
        self.gradient_size = None
        self.gradient_surface = None
        self.update_gradient()
        self.view.connect('size-allocate', self.update_gradient)

        self.view.drawing_area.connect('draw', self.draw)
Beispiel #7
0
    def __init__(self, document_switcher, workspace):
        self.document_switcher = document_switcher
        self.workspace = workspace
        self.button = ServiceLocator.get_main_window().headerbar.center_widget
        self.view = self.button.open_docs_popover

        self.workspace.register_observer(self)
        self.document_switcher.register_observer(self)

        self.show_welcome_title()
Beispiel #8
0
    def __init__(self, model):
        Gtk.VBox.__init__(self)
        self.get_style_context().add_class('autocomplete')

        self.main_window = ServiceLocator.get_main_window()
        self.model = model
        self.content = self.model.document.content

        self.set_halign(Gtk.Align.START)
        self.set_valign(Gtk.Align.START)

        self.shortcutsbar_height = 37
        self.x_position, self.y_position = (None, None)

        self.list = Gtk.ListBox()
        self.list.set_selection_mode(Gtk.SelectionMode.SINGLE)
        self.list.set_can_focus(False)
        self.items = list()
        self.selected_index = 0

        self.scrolled_window = Gtk.ScrolledWindow()
        self.scrolled_window.set_propagate_natural_height(True)
        self.scrolled_window.add(self.list)

        self.infobox = Gtk.Label('')
        self.infobox.set_xalign(0)
        self.infobox.set_ellipsize(Pango.EllipsizeMode.END)
        self.infobox.set_max_width_chars(30)
        self.infobox.get_style_context().add_class('infobox')

        self.pack_start(self.scrolled_window, True, True, 0)
        self.pack_start(self.infobox, False, False, 0)
        self.list.show_all()
        self.infobox.show_all()

        self.font_manager = ServiceLocator.get_font_manager()
        self.font_manager.connect('font_string_changed',
                                  self.on_font_string_changed)

        self.focus_hide = False

        self.line_height, self.char_width, self.full_height = (None, None,
                                                               None)
        self.update_sizes()

        self.model.document_view.scrolled_window.get_vadjustment().connect(
            'value-changed', self.on_adjustment_value_changed)
        self.model.document_view.scrolled_window.get_hadjustment().connect(
            'value-changed', self.on_adjustment_value_changed)
        self.model.document_view.source_view.connect('focus-out-event',
                                                     self.on_focus_out)
        self.model.document_view.source_view.connect('focus-in-event',
                                                     self.on_focus_in)
        self.list.connect('row-selected', self.on_row_selected)
Beispiel #9
0
    def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()
        self.notebook = self.main_window.preview_panel.notebook

        self.workspace.connect('new_document', self.on_new_document)
        self.workspace.connect('document_removed', self.on_document_removed)
        self.workspace.connect('new_active_document', self.on_new_active_document)
        self.workspace.connect('root_state_change', self.on_root_state_change)

        self.activate_blank_page()
    def __init__(self, workspace):

        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()

        self.observe_workspace_view()
        
        self.untitled_documents_no = 0

        self.p_allocation = 0
        self.pp_allocation = 0
        self.s_allocation = 0
        self.bl_allocation = 0

        self.main_window.new_latex_document_action.connect('activate', self.on_new_latex_document_action_activated)
        self.main_window.new_bibtex_document_action.connect('activate', self.on_new_bibtex_document_action_activated)
        self.main_window.save_as_action.connect('activate', self.on_save_as_clicked)
        self.main_window.save_all_action.connect('activate', self.on_save_all_clicked)
        self.main_window.save_session_action.connect('activate', self.on_save_session_clicked)
        self.main_window.restore_session_action.connect('activate', self.on_restore_session_clicked)
        self.main_window.find_action.connect('activate', self.on_menu_find_clicked)
        self.main_window.find_next_action.connect('activate', self.find_next)
        self.main_window.find_prev_action.connect('activate', self.find_prev)
        self.main_window.find_replace_action.connect('activate', self.on_menu_find_replace_clicked)
        self.main_window.close_all_action.connect('activate', self.on_close_all_clicked)
        self.main_window.close_document_action.connect('activate', self.on_close_document_clicked)
        self.main_window.insert_before_after_action.connect('activate', self.insert_before_after)
        self.main_window.insert_symbol_action.connect('activate', self.insert_symbol)
        self.main_window.insert_before_document_end_action.connect('activate', self.insert_before_document_end)
        self.main_window.document_wizard_action.connect('activate', self.start_wizard)
        self.main_window.include_bibtex_file_action.connect('activate', self.start_include_bibtex_file_dialog)
        self.main_window.include_latex_file_action.connect('activate', self.start_include_latex_file_dialog)
        self.main_window.add_remove_packages_dialog_action.connect('activate', self.start_add_remove_packages_dialog)
        self.main_window.add_packages_action.connect('activate', self.add_packages)
        self.main_window.comment_uncomment_action.connect('activate', self.comment_uncomment)
        self.main_window.create_new_bibtex_entry_action.connect('activate', self.start_create_new_bibtex_entry_dialog)
        self.main_window.show_previous_bibtex_entries_action.connect('activate', self.start_show_previous_bibtex_entries_dialog)
        self.main_window.search_online_for_bibtex_entries_action.connect('activate', self.start_search_online_for_bibtex_entries_dialog)
        self.main_window.shortcuts_window_action.connect('activate', self.show_shortcuts_window)
        self.main_window.show_preferences_action.connect('activate', self.show_preferences_dialog)
        self.main_window.show_about_action.connect('activate', self.show_about_dialog)
        self.main_window.close_build_log_action.connect('activate', self.close_build_log)
        self.main_window.toggle_spellchecking_action.connect('activate', self.on_spellchecking_toggle_toggled)
        self.main_window.set_spellchecking_language_action.connect('activate', self.start_spellchecking_language_dialog)
        self.main_window.spellchecking_action.connect('activate', self.start_spellchecking_dialog)
        self.main_window.toggle_dark_mode_action.connect('activate', self.on_dark_mode_toggle_toggled)

        # populate workspace
        self.workspace.populate_from_disk()
        open_documents = self.workspace.open_documents
        if len(open_documents) > 0:
            self.workspace.set_active_document(open_documents[-1])
Beispiel #11
0
    def __init__(self, workspace):
        self.view = ServiceLocator.get_main_window().sidebar
        self.workspace = workspace

        self.data_provider = data_provider.DataProvider(self, workspace)

        self.create_document_structure_page()
        self.create_symbols_page()

        self.view.add_named(self.document_structure_page, 'document_structure')
        self.view.add_named(self.symbols_page.view, 'symbols')

        self.view.queue_draw()
Beispiel #12
0
    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)
Beispiel #13
0
    def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()
        self.workspace.register_observer(self)

        self.sidebars_initialized = False
        self.sidebar = self.main_window.sidebar
        self.sidebar_animating = False
        self.preview_animating = False
        self.build_log_animating = False
        self.activate_blank_slate_mode()

        def on_window_state(widget, event): self.on_realize()
        self.main_window.connect('draw', on_window_state)
Beispiel #14
0
    def __init__(self, document, document_view):
        self.document = document
        self.document_view = document_view
        self.main_window = ServiceLocator.get_main_window()

        self.view = view.DocumentAutocompleteView()

        self.provider = ServiceLocator.get_autocomplete_provider()

        self.states = dict()
        self.states['inactive'] = state_inactive.StateInactive(self)
        self.states[
            'active_invisible'] = state_active_invisible.StateActiveInvisible(
                self)
        self.states[
            'active_visible'] = state_active_visible.StateActiveVisible(self)
        self.active_state = None
        self.change_state('inactive')

        self.char_width, self.line_height = self.document.get_char_dimensions()
        self.shortcuts_bar_height = 37

        self.view.scrolled_window.set_max_content_height(5 * self.line_height)

        self.insert_iter_offset = None
        self.current_word = ""
        self.current_word_offset = None
        self.height = None
        self.width = None

        self.items = list()
        self.last_tabbed_command = None

        self.view.list.connect('row-activated', self.on_row_activated)
        self.view.list.connect('row-selected', self.on_row_selected)

        self.document_view.scrolled_window.get_vadjustment().connect(
            'value-changed', self.on_adjustment_value_changed)
        self.document_view.scrolled_window.get_hadjustment().connect(
            'value-changed', self.on_adjustment_value_changed)
        self.document_view.source_view.connect('focus-out-event',
                                               self.on_focus_out)
        self.document_view.source_view.connect('focus-in-event',
                                               self.on_focus_in)
        self.document.get_buffer().connect('changed', self.on_buffer_changed)
        self.document.get_buffer().connect('mark-set', self.on_mark_set)
        self.document.get_buffer().connect('mark-deleted',
                                           self.on_mark_deleted)
Beispiel #15
0
    def __init__(self, workspace):
        self.count = 0

        self.workspace = workspace
        self.view = ServiceLocator.get_main_window().help_panel

        self.view.content.connect('decide-policy', self.on_policy_decision)
        self.view.content.connect('context-menu', self.on_context_menu)

        self.uri = 'file://' + os.path.join(ServiceLocator.get_resources_path(), 'help', 'latex2e_unofficial_reference_manual_october_2018')
        self.view.content.load_uri(self.uri)

        self.view.content.get_back_forward_list().connect('changed', self.on_back_forward_list_changed)
        self.view.back_button.connect('clicked', self.on_back_button_clicked)
        self.view.next_button.connect('clicked', self.on_next_button_clicked)
        self.view.up_button.connect('clicked', self.on_up_button_clicked)
Beispiel #16
0
    def __init__(self, document_switcher, workspace):
        self.document_switcher = document_switcher
        self.workspace = workspace
        self.button = ServiceLocator.get_main_window().headerbar.center_widget
        self.view = self.button.open_docs_popover

        self.workspace.connect('new_document', self.on_new_document)
        self.workspace.connect('document_removed', self.on_document_removed)
        self.workspace.connect('new_inactive_document',
                               self.on_new_inactive_document)
        self.workspace.connect('new_active_document',
                               self.on_new_active_document)
        self.workspace.connect('root_state_change', self.on_root_state_change)
        self.document_switcher.connect('docswitcher_mode_change',
                                       self.on_docswitcher_mode_change)

        self.show_welcome_title()
Beispiel #17
0
    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)
Beispiel #18
0
    def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()

        self.main_window.latex_shortcutsbar.button_build_log.set_active(
            self.workspace.get_show_build_log())
        self.main_window.latex_shortcutsbar.button_build_log.connect(
            'clicked', self.on_build_log_button_clicked)
        self.main_window.latex_shortcutsbar.button_build_log.get_child(
        ).set_sensitive(False)

        self.workspace.connect('document_removed', self.on_document_removed)
        self.workspace.connect('new_active_document',
                               self.on_new_active_document)
        self.workspace.connect('new_inactive_document',
                               self.on_new_inactive_document)
        self.workspace.connect('show_build_log_state_change',
                               self.on_show_build_log_state_change)
    def __init__(self, workspace):

        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()

        self.observe_workspace_view()

        self.untitled_documents_no = 0

        self.p_allocation = 0
        self.pp_allocation = 0
        self.s_allocation = 0
        self.bl_allocation = 0

        # populate workspace
        self.workspace.populate_from_disk()
        open_documents = self.workspace.open_documents
        if len(open_documents) > 0:
            self.workspace.set_active_document(open_documents[-1])
Beispiel #20
0
    def __init__(self):
        self.view = ServiceLocator.get_main_window().sidebar

        # detect dark mode
        dm = 'True' if ServiceLocator.get_is_dark_mode() else 'False'

        # tabbed pages: name, icon name, tooltip, widget
        self.pages = list()
        self.pages.append([
            'greek_letters', 'own-symbols-greek-letters-symbolic',
            _('Greek Letters'),
            'sidebar_view.SidebarPageSymbolsList("greek_letters", 25, ' + dm +
            ')'
        ])
        self.pages.append([
            'arrows', 'own-symbols-arrows-symbolic',
            _('Arrows'),
            'sidebar_view.SidebarPageSymbolsList("arrows", 48, ' + dm + ')'
        ])
        self.pages.append([
            'relations', 'own-symbols-relations-symbolic',
            _('Relations'),
            'sidebar_view.SidebarPageSymbolsList("relations", 39, ' + dm + ')'
        ])
        self.pages.append([
            'operators', 'own-symbols-operators-symbolic',
            _('Operators'),
            'sidebar_view.SidebarPageSymbolsList("operators", 47, ' + dm + ')'
        ])
        self.pages.append([
            'misc_math', 'own-symbols-misc-math-symbolic',
            _('Misc. Math'),
            'sidebar_view.SidebarPageSymbolsList("misc_math", 42, ' + dm + ')'
        ])
        self.pages.append([
            'misc_text', 'own-symbols-misc-text-symbolic',
            _('Misc. Symbols'),
            'sidebar_view.SidebarPageSymbolsList("misc_text", 38, ' + dm + ')'
        ])
        self.page_views = list()
        self.init_page_stack()

        self.view.show_all()
    def __init__(self, workspace):

        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()

        self.main_window.headerbar.document_structure_toggle.connect(
            'toggled', self.on_document_structure_toggle_toggled)
        self.main_window.headerbar.symbols_toggle.connect(
            'toggled', self.on_symbols_toggle_toggled)
        self.main_window.headerbar.preview_toggle.connect(
            'toggled', self.on_preview_toggle_toggled)
        self.main_window.headerbar.help_toggle.connect(
            'toggled', self.on_help_toggle_toggled)

        # populate workspace
        self.workspace.populate_from_disk()
        open_documents = self.workspace.open_documents
        if len(open_documents) > 0:
            self.workspace.set_active_document(open_documents[-1])
Beispiel #22
0
    def __init__(self, workspace):
        self.workspace = workspace
        self.main_window = ServiceLocator.get_main_window()

        self.workspace.connect('new_document', self.on_new_document)
        self.workspace.connect('document_removed', self.on_document_removed)
        self.workspace.connect('new_active_document',
                               self.on_new_active_document)
        self.workspace.connect('new_inactive_document',
                               self.on_new_inactive_document)
        self.workspace.connect('set_show_symbols_or_document_structure',
                               self.on_set_show_symbols_or_document_structure)
        self.workspace.connect('set_show_preview_or_help',
                               self.on_set_show_preview_or_help)
        self.workspace.connect('show_build_log_state_change',
                               self.on_show_build_log_state_change)
        self.workspace.connect('set_dark_mode', self.on_set_dark_mode)

        self.activate_welcome_screen_mode()
        self.setup_paneds()
Beispiel #23
0
    def __init__(self, workspace):
        Observable.__init__(self)

        self.workspace = workspace
        self.view = ServiceLocator.get_main_window().help_panel

        self.path = 'file://' + os.path.join(
            ServiceLocator.get_resources_path(), 'help')
        self.home_uri = self.path + '/latex2e_0.html'
        self.current_uri = self.home_uri

        with open(
                os.path.join(ServiceLocator.get_resources_path(), 'help',
                             'search_index.pickle'), 'rb') as filehandle:
            self.search_index = pickle.load(filehandle)

        self.search_results_blank = list()
        self.search_results = self.search_results_blank
        self.query = ''

        GLib.idle_add(self.activate, priority=GLib.PRIORITY_LOW)
Beispiel #24
0
    def __init__(self, document, document_view):
        self.document = document
        self.document_view = document_view
        self.main_window = ServiceLocator.get_main_window()

        self.view = view.DocumentAutocompleteView()

        self.line_height = 0
        self.char_width = 0
        self.update_char_size()
        self.shortcuts_bar_height = 37
        self.number_of_matches = 0

        self.insert_iter_offset = None
        self.insert_iter_matched = False
        self.current_word = ""
        self.autocomplete_height = None
        self.autocomplete_width = None
        self.autocomplete_visible = False
        self.autocomplete_focus_was_visible = False

        self.static_proposals = dict()
        self.dynamic_proposals = dict()
        self.generate_proposals()
        GObject.timeout_add(500, self.generate_dynamic_proposals)

        self.view.list.connect('row-activated', self.on_autocomplete_row_activated)
        self.view.list.connect('row-selected', self.on_autocomplete_row_selected)

        self.document_view.scrolled_window.get_vadjustment().connect('value-changed', self.on_adjustment_value_changed)
        self.document_view.scrolled_window.get_hadjustment().connect('value-changed', self.on_adjustment_value_changed)
        self.document_view.source_view.connect('focus-out-event', self.on_focus_out)
        self.document_view.source_view.connect('focus-in-event', self.on_focus_in)
        self.document.get_buffer().connect('changed', self.on_buffer_changed)
        self.document.get_buffer().connect('mark-set', self.on_mark_set)
        self.document.get_buffer().connect('mark-deleted', self.on_mark_deleted)
 def __init__(self, workspace):
     self.workspace = workspace
     self.view = ServiceLocator.get_main_window().headerbar.document_chooser
     self.workspace.register_observer(self)
Beispiel #26
0
    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)
Beispiel #27
0
 def __init__(self, workspace):
     self.workspace = workspace
     self.main_window = ServiceLocator.get_main_window()
     self.workspace.register_observer(self)
     self.activate_blank_slate_mode()
 def on_reset_zoom(self, widget=None, event=None):
     ServiceLocator.get_main_window().reset_zoom_action.activate()
     return True
Beispiel #29
0
    def __init__(self, workspace):
        self.main_window = ServiceLocator.get_main_window()
        self.workspace = workspace

        self.setup_shortcuts()