def __init__(self, gfile=None, encoding="UTF-8"): self._settings = Settings.new() self.gfile = gfile self.encoding = encoding self.path = "" self.title = "" self.name = ""
def __init__(self, *args, **kwargs): super().__init__(*args, application_id="org.gnome.gitlab.somas.Apostrophe", flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE, **kwargs) self.window = None self.settings = Settings.new()
def __init__(self, text_view): self.settings = Settings.new() self.text_view = text_view self.text_view.connect("button-press-event", self.on_button_press_event) self.text_buffer = text_view.get_buffer() self.cursor_mark = self.text_buffer.create_mark( "click", self.text_buffer.get_iter_at_mark(self.text_buffer.get_insert())) self.latex_converter = latex_to_PNG.LatexToPNG() self.characters_per_line = self.settings.get_int("characters-per-line") self.popover = Gtk.Popover.new(self.text_view) self.popover.get_style_context().add_class("quick-preview-popup") self.popover.set_modal(True) self.preview_fns = { markup_regex.MATH: self.get_view_for_math, markup_regex.IMAGE: self.get_view_for_image, markup_regex.LINK: self.get_view_for_link, markup_regex.LINK_ALT: self.get_view_for_link, markup_regex.FOOTNOTE_ID: self.get_view_for_footnote, re.compile(r"(?P<text>\w+)"): self.get_view_for_lexikon }
def pandoc_convert(text, to="html5", args=[], outputfile=None): fr = Settings.new().get_value('input-format').get_string() or "markdown" args.extend(["--quiet"]) return pypandoc.convert_text(text, to, fr, extra_args=args, outputfile=outputfile)
def __init__(self, app): self.settings = Settings.new() self.builder = Gtk.Builder() self.builder.add_from_resource( "/org/gnome/gitlab/somas/Apostrophe/ui/Headerbar.ui") self.builder.add_from_resource( "/org/gnome/gitlab/somas/Apostrophe/ui/ExportPopover.ui") self.hb = self.builder.get_object("Headerbar") self.hb_revealer = self.builder.get_object("titlebar_revealer") self.preview_toggle_revealer = self.builder.get_object( "preview_switch_revealer") self.preview_switcher_icon = self.builder.get_object( "preview_switch_toggle_icon") self.__populate_layout_switcher_menu() self.update_preview_layout_icon() self.sync_scroll_switch = self.builder.get_object("sync_scroll_switch") self.sync_scroll_switch.set_active( self.settings.get_value("sync-scroll")) self.sync_scroll_switch.connect("state-set", self.__on_sync_scroll) self.menu_button = self.builder.get_object("menu_button") self.recents_button = self.builder.get_object("recents_button") self.export_button = self.builder.get_object("export_button") export_popover = self.builder.get_object("export_menu") self.preview_switch_button = self.builder.get_object( "preview_switch_button") self.export_button.set_popover(export_popover) add_menus(self, app) settings = Gtk.Settings.get_default() # TODO: use walrust operator whenever Python3.8 lands on SDK # if global_dark:= settings.props.gtk_theme_name.endswith("-dark"): global_dark = settings.props.gtk_theme_name.endswith("-dark") if global_dark: self.light_button.set_sensitive(False) self.light_button.set_tooltip_text( _("Light mode isn’t available while using a dark global theme") ) self.dark_button.set_active( self.settings.get_boolean("dark-mode") or global_dark) self.light_button.connect("toggled", self.__on_dark_mode) self.select_preview_layout_row()
def __init__(self, text_view, *targets): super().__init__() self.settings = Settings.new() self.target_list = Gtk.TargetList.new([]) if TARGET_URI in targets: self.target_list.add_uri_targets(TARGET_URI) if TARGET_TEXT in targets: self.target_list.add_text_targets(TARGET_TEXT) text_view.drag_dest_set_target_list(self.target_list) text_view.connect_after('drag-data-received', self.on_drag_data_received)
def __init__(self, main_window, content, editor, text_view): self.main_window = main_window self.main_window.connect("delete-event", self.on_window_closed) self.content = content self.editor = editor self.text_view = text_view self.settings = Settings.new() self.popover = None self.window = None self.headerbar = None self.mode = self.settings.get_enum("preview-mode") self.update_mode()
def __init__(self, application_id, *args, **kwargs): super().__init__(*args, application_id=application_id, flags=Gio.ApplicationFlags.HANDLES_OPEN, **kwargs) self.add_main_option("verbose", b"v", GLib.OptionFlags.NONE, GLib.OptionArg.NONE, "Verbose output", None) Handy.init() self.window = None self.settings = Settings.new() self.inhibitor = None self._application_id = application_id
class Theme: """ The Theme enum lists all supported themes using their "gtk-theme-name" value. The light variant is listed first, followed by the dark variant, if any. """ previous = None settings = Settings.new() def __init__(self, name, web_css_path, is_dark, inverse_name): self.name = name self.web_css_path = web_css_path self.is_dark = is_dark self.inverse_name = inverse_name @classmethod def get_for_name(cls, name, default=None): current_theme = default or defaultThemes[0] for theme in defaultThemes: if name == theme.name: current_theme = theme return current_theme @classmethod def get_current_changed(cls): theme_name = Gtk.Settings.get_default().get_property('gtk-theme-name') dark_mode = cls.settings.get_boolean('dark-mode') current_theme = cls.get_for_name(theme_name) if dark_mode != current_theme.is_dark and current_theme.inverse_name: current_theme = cls.get_for_name(current_theme.inverse_name, current_theme.name) changed = current_theme != cls.previous cls.previous = current_theme return current_theme, changed @classmethod def get_current(cls): current_theme, _ = cls.get_current_changed() return current_theme def __eq__(self, other): return isinstance(other, self.__class__) and \ self.name == other.name and \ self.web_css_path == other.web_css_path and \ self.is_dark == other.is_dark and \ self.inverse_name == other.inverse_name
def __init__(self, window, content, editor, text_view): self.text_view = text_view self.web_view = None self.web_view_pending_html = None self.preview_converter = PreviewConverter() self.preview_renderer = PreviewRenderer( window, content, editor, text_view) window.connect("style-updated", self.reload) self.text_changed_handler_id = None self.settings = Settings.new() self.web_scroll_handler_id = None self.text_scroll_handler_id = None self.loading = False self.shown = False
def __init__(self, stats_button, text_view): super().__init__() self.stats_button = stats_button self.stats_button.connect("clicked", self.on_stats_button_clicked) self.stats_button.connect("destroy", self.on_destroy) self.text_view = text_view self.text_view.get_buffer().connect("changed", self.on_text_changed) self.popover = None self.characters = 0 self.words = 0 self.sentences = 0 self.paragraphs = 0 self.read_time = (0, 0, 0) self.settings = Settings.new() self.stats_counter = StatsCounter(self.update_stats) self.update_default_stat()
def __init__(self, app): """Set up the main window""" super().__init__(application=Gio.Application.get_default(), title="Apostrophe") self.get_style_context().add_class('apostrophe-window') # Set UI builder = Gtk.Builder() builder.add_from_resource( "/org/gnome/gitlab/somas/Apostrophe/ui/Window.ui") root = builder.get_object("AppOverlay") self.connect("delete-event", self.on_delete_called) self.add(root) self.set_default_size(1000, 600) # Preferences self.settings = Settings.new() # Headerbars self.last_height = 0 self.headerbar = headerbars.MainHeaderbar(app) self.headerbar.hb_revealer.connect( "size_allocate", self.header_size_allocate) self.set_titlebar(self.headerbar.hb_revealer) # remove .titlebar class from hb_revealer # to don't mess things up on Elementary OS self.headerbar.hb_revealer.get_style_context().remove_class("titlebar") self.fs_headerbar = headerbars.FullscreenHeaderbar(builder, app) # Bind properties between normal and fs headerbar self.headerbar.light_button.bind_property( "active", self.fs_headerbar.light_button, "active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self.headerbar.dark_button.bind_property( "active", self.fs_headerbar.dark_button, "active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) # The dummy headerbar is a cosmetic hack to be able to # crossfade the hb on top of the window self.dm_headerbar = headerbars.DummyHeaderbar(app) root.add_overlay(self.dm_headerbar.hb_revealer) root.reorder_overlay(self.dm_headerbar.hb_revealer, 0) root.set_overlay_pass_through(self.dm_headerbar.hb_revealer, True) self.title_end = " – Apostrophe" self.set_headerbar_title("New File" + self.title_end) self.accel_group = Gtk.AccelGroup() self.add_accel_group(self.accel_group) self.scrolled_window = builder.get_object('editor_scrolledwindow') # Setup text editor self.text_view = TextView(self.settings.get_int("characters-per-line")) self.text_view.set_top_margin(80) self.text_view.connect('focus-out-event', self.focus_out) self.text_view.get_buffer().connect('changed', self.on_text_changed) self.text_view.show() self.scrolled_window.add(self.text_view) self.text_view.grab_focus() # Setup stats counter self.stats_revealer = builder.get_object('editor_stats_revealer') self.stats_button = builder.get_object('editor_stats_button') self.stats_handler = StatsHandler(self.stats_button, self.text_view) # Setup preview content = builder.get_object('content') editor = builder.get_object('editor') self.preview_handler = PreviewHandler(self, content, editor, self.text_view) # Setup header/stats bar self.headerbar_visible = True self.bottombar_visible = True self.buffer_modified_for_status_bar = False # Init file name with None self.set_filename() # Setting up spellcheck self.auto_correct = None self.toggle_spellcheck(self.settings.get_value("spellcheck")) self.did_change = False ### # Sidebar initialization test ### self.paned_window = builder.get_object("main_paned") self.sidebar_box = builder.get_object("sidebar_box") self.sidebar = Sidebar(self) self.sidebar_box.hide() ### # Search and replace initialization # Same interface as Sidebar ;) ### self.searchreplace = SearchAndReplace(self, self.text_view, builder) # EventBoxes self.headerbar_eventbox = builder.get_object("HeaderbarEventbox") self.headerbar_eventbox.connect('enter_notify_event', self.reveal_headerbar_bottombar) self.stats_revealer.connect('enter_notify_event', self.reveal_bottombar)
def __init__(self, *args, **kwargs): super().__init__(*args, application_id="de.wolfvollprecht.UberWriter", flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE, **kwargs) self.window = None self.settings = Settings.new()