Ejemplo n.º 1
0
    def __init__(self, settings):
        super().__init__()
        self.set_relative_to(None)

        self.settings = settings

        zoom_out_button = Gtk.Button.new_from_icon_name(
            "zoom-out-symbolic", Gtk.IconSize.MENU)
        zoom_out_button.set_action_name('document.zoom_out')
        zoom_out_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>minus', ), _('Zoom Out')))

        self.zoom_default_button = Gtk.Button(
            "100%", action_name='document.zoom_default')
        self.zoom_default_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>0', ), _('Zoom 1:1')))

        zoom_in_button = Gtk.Button.new_from_icon_name("zoom-in-symbolic",
                                                       Gtk.IconSize.MENU)
        zoom_in_button.set_action_name('document.zoom_in')
        zoom_in_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>equal', '<Control>plus'),
                                         _('Zoom In')))

        font_size_grid = Gtk.Grid(column_homogeneous=True,
                                  hexpand=True,
                                  margin=12)
        font_size_grid.get_style_context().add_class(Gtk.STYLE_CLASS_LINKED)
        font_size_grid.add(zoom_out_button)
        font_size_grid.add(self.zoom_default_button)
        font_size_grid.add(zoom_in_button)

        preferences_menuitem = Gtk.ModelButton(text=_("Preferences"),
                                               action_name='app.preferences')
        about_menuitem = Gtk.ModelButton(text=_("About"),
                                         action_name='app.about')
        shortcuts_menuitem = Gtk.ModelButton(text=_("Shortcuts"),
                                             action_name='app.shortcuts')
        quit_menuitem = Gtk.ModelButton(text=_("Quit"), action_name='app.quit')

        menu_separator = Gtk.Separator(margin_top=12,
                                       orientation=Gtk.Orientation.HORIZONTAL)

        menu_grid = Gtk.Grid(margin_bottom=3,
                             orientation=Gtk.Orientation.VERTICAL,
                             width_request=200)
        menu_grid.attach(font_size_grid, 0, 0, 3, 1)
        menu_grid.attach(preferences_menuitem, 0, 1, 3, 1)
        menu_grid.attach(shortcuts_menuitem, 0, 2, 3, 1)
        menu_grid.attach(about_menuitem, 0, 3, 3, 1)
        menu_grid.attach(menu_separator, 0, 4, 3, 1)
        menu_grid.attach(quit_menuitem, 0, 5, 3, 1)

        self.add(menu_grid)

        menu_grid.show_all()

        self.zoom_default_button.set_label(f"{settings.get_int('zoom')}%")
        self.settings.connect('changed', self.on_settings_changed)
Ejemplo n.º 2
0
    def __init__(self, settings):
        super().__init__()

        self.document_mode_active = False
        self.settings = settings

        self.set_title(APP_TITLE)
        self.set_subtitle(APP_SUBTITLE)
        self.set_has_subtitle(True)
        self.set_show_close_button(True)
        self.get_style_context().add_class('norka-header')

        self.add_button = Gtk.Button.new_from_icon_name(
            'document-new', Gtk.IconSize.LARGE_TOOLBAR)
        self.add_button.set_visible(True)
        self.add_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>n', ),
                                         'Create new document'))
        self.add_button.set_action_name('document.create')

        self.back_button = Gtk.Button.new_with_label('Documents')
        self.back_button.set_valign(Gtk.Align.CENTER)
        self.back_button.get_style_context().add_class('back-button')
        self.back_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(
                ('<Control>w', ),
                'Save document and return to documents list'))
        self.back_button.set_visible(False)
        self.back_button.set_action_name('document.close')

        self.export_button = Gtk.Button.new_from_icon_name(
            'document-save-as', Gtk.IconSize.LARGE_TOOLBAR)
        self.export_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>e', ),
                                         'Export document to file'))
        self.export_button.set_action_name('document.export')
        self.export_button.set_visible(False)

        self.menu_button = Gtk.MenuButton(tooltip_text="Menu")
        self.menu_button.set_image(
            Gtk.Image.new_from_icon_name('open-menu',
                                         Gtk.IconSize.LARGE_TOOLBAR))
        self.menu_button.set_popover(MenuPopover(settings=self.settings))
        self.menu_button.set_visible(True)

        self.pack_start(self.back_button)
        self.pack_start(self.add_button)
        self.pack_end(self.menu_button)
        self.pack_end(self.export_button)
Ejemplo n.º 3
0
    def __init__(self, settings, **kwargs):
        super().__init__(**kwargs)

        self.builder = Gtk.Builder.new_from_resource(
            f'{RESOURCE_PREFIX}/ui/headerbar.ui')
        self.header_box: Gtk.Stack = self.builder.get_object('header_box')
        self.grid_header: Handy.HeaderBar = self.builder.get_object(
            'grid_header')
        self.editor_header: Handy.HeaderBar = self.builder.get_object(
            'editor_header')
        self.loader_spinner: Gtk.Spinner = self.builder.get_object(
            'loader_spinner')
        self.editor_spinner: Gtk.Spinner = self.builder.get_object(
            'editor_spinner')
        self.subtitle_path_label: Gtk.Label = self.builder.get_object(
            'subtitle_path_label')
        self.title_label: Gtk.Label = self.builder.get_object('title_label')
        self.subtitle_label: Gtk.Label = self.builder.get_object(
            'subtitle_label')
        self.subtitle_eventbox: Gtk.EventBox = self.builder.get_object(
            'subtitle_eventbox')

        self.stats_mode = StatsMode.STATS

        self.document_mode_active = False
        self.settings = settings

        self.stats = None
        self.document_path = "/"

        self.header_box.set_visible_child_name("grid_header")
        self.add(self.header_box)

        self.subtitle_eventbox.connect('button-release-event',
                                       self.change_subtitle_mode)

        self.import_button: Gtk.Button = self.builder.get_object(
            "import_button")
        self.import_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>o', ),
                                         _('Import file to Norka')))
        #
        self.add_button: Gtk.Button = self.builder.get_object("add_button")
        self.add_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>n', ),
                                         _('Create new document')))

        self.add_folder_button: Gtk.Button = self.builder.get_object(
            "add_folder_button")
        self.add_folder_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control><Shift>n', ),
                                         _('Create new folder')))

        self.back_button: Gtk.Button = self.builder.get_object("back_button")
        self.back_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(
                ('<Control>w', ),
                _('Save document and return to documents list')))

        # # self.search_button = Gtk.ToggleButton()
        # # self.search_button.set_image(Gtk.Image.new_from_icon_name('edit-find', Gtk.IconSize.LARGE_TOOLBAR))
        # # self.search_button.set_tooltip_markup(Granite.markup_accel_tooltip(('<Control>f',), 'Find text'))
        # # self.search_button.set_action_name('document.search_text')
        # # self.search_button.set_visible(False)

        self.print_button: Gtk.ToggleButton() = self.builder.get_object(
            "print_button")
        self.print_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(('<Control>p', ),
                                         _('Print the document')))

        self.extended_stats_button: Gtk.ToggleButton(
        ) = self.builder.get_object("extended_stats_button")
        self.extended_stats_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(None, _('Show document info')))

        self.share_app_menu: Gtk.MenuButton = self.builder.get_object(
            "share_app_menu")
        self.share_app_menu.set_image(
            Gtk.Image.new_from_icon_name('document-save-as',
                                         Gtk.IconSize.LARGE_TOOLBAR))
        self.share_app_menu.set_popover(MenuExport(settings=self.settings))

        self.archived_button: Gtk.ToggleButton() = self.builder.get_object(
            "archived_button")
        self.archived_button.set_tooltip_markup(
            Granite.markup_accel_tooltip(None, _('Show Archived files')))

        self.grid_menu_button: Gtk.MenuButton = self.builder.get_object(
            "grid_menu_button")
        self.grid_menu_button.set_image(
            Gtk.Image.new_from_icon_name('open-menu',
                                         Gtk.IconSize.LARGE_TOOLBAR))
        self.grid_menu_button.set_popover(MenuPopover(settings=self.settings))
        self.editor_menu_button: Gtk.MenuButton = self.builder.get_object(
            "editor_menu_button")
        self.editor_menu_button.set_image(
            Gtk.Image.new_from_icon_name('open-menu',
                                         Gtk.IconSize.LARGE_TOOLBAR))
        self.editor_menu_button.set_popover(
            MenuPopover(settings=self.settings))
Ejemplo n.º 4
0
    def __init__(self, settings):
        super().__init__()

        self.document_mode_active = False
        self.settings = settings

        self.set_title(_("Norka"))
        self.set_subtitle(APP_SUBTITLE)
        self.set_has_subtitle(True)
        self.set_show_close_button(True)
        self.get_style_context().add_class('norka-header')

        self.spinner = Gtk.Spinner(visible=False)

        self.import_button = Gtk.Button.new_from_icon_name('document-open', Gtk.IconSize.LARGE_TOOLBAR)
        self.import_button.set_visible(True)
        self.import_button.set_tooltip_markup(Granite.markup_accel_tooltip(('<Control>o',), _('Import file to Norka')))
        self.import_button.set_action_name('document.import')

        self.add_button = Gtk.Button.new_from_icon_name('document-new', Gtk.IconSize.LARGE_TOOLBAR)
        self.add_button.set_visible(True)
        self.add_button.set_tooltip_markup(Granite.markup_accel_tooltip(('<Control>n',), _('Create new document')))
        self.add_button.set_action_name('document.create')

        self.back_button = Gtk.Button.new_with_label(_('Documents'))
        self.back_button.set_valign(Gtk.Align.CENTER)
        self.back_button.get_style_context().add_class('back-button')
        self.back_button.set_tooltip_markup(Granite.markup_accel_tooltip(
            ('<Control>w',),
            _('Save document and return to documents list')))
        self.back_button.set_visible(False)
        self.back_button.set_action_name('document.close')

        # self.search_button = Gtk.ToggleButton()
        # self.search_button.set_image(Gtk.Image.new_from_icon_name('edit-find', Gtk.IconSize.LARGE_TOOLBAR))
        # self.search_button.set_tooltip_markup(Granite.markup_accel_tooltip(('<Control>f',), 'Find text'))
        # self.search_button.set_action_name('document.search_text')
        # self.search_button.set_visible(False)

        self.share_app_menu = Gtk.MenuButton(tooltip_text=_("Share"))
        self.share_app_menu.set_image(Gtk.Image.new_from_icon_name('document-save-as', Gtk.IconSize.LARGE_TOOLBAR))
        self.share_app_menu.set_popover(MenuExport(settings=self.settings))

        self.archived_button = Gtk.ToggleButton()
        self.archived_button.set_image(Gtk.Image.new_from_icon_name('user-trash', Gtk.IconSize.LARGE_TOOLBAR))
        self.archived_button.set_tooltip_markup(Granite.markup_accel_tooltip(None, _('Show Archived files')))
        self.archived_button.set_action_name('document.toggle_archived')
        self.archived_button.set_visible(True)

        self.menu_button = Gtk.MenuButton(tooltip_text=_("Menu"))
        self.menu_button.set_image(Gtk.Image.new_from_icon_name('open-menu', Gtk.IconSize.LARGE_TOOLBAR))
        self.menu_button.set_popover(MenuPopover(settings=self.settings))
        self.menu_button.set_visible(True)

        self.pack_start(self.back_button)
        self.pack_start(self.add_button)
        self.pack_start(self.import_button)
        self.pack_start(self.spinner)
        self.pack_end(self.menu_button)
        self.pack_end(self.share_app_menu)
        self.pack_end(self.archived_button)
Ejemplo n.º 5
0
    def __init__(self, settings):
        super().__init__()
        self.set_constrain_to(Gtk.PopoverConstraint.NONE)

        self.settings = settings

        self.export_plain = Gtk.Button(
            label=_("Text"),
            action_name="document.export",
            tooltip_text=_("Export document to plain text file"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_plain.set_image(
            Gtk.Image.new_from_resource(f"{RESOURCE_PREFIX}/icons/text.svg"))

        self.export_markdown = Gtk.Button(
            label=_("Markdown"),
            action_name="document.export-markdown",
            tooltip_markup=Granite.markup_accel_tooltip(
                ("<Control><Shift>s", ), _("Export document to markdown")),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_markdown.set_image(
            Gtk.Image.new_from_resource(
                f"{RESOURCE_PREFIX}/icons/text-markdown.svg"))

        self.export_html = Gtk.Button(
            _("Html"),
            action_name="document.export-html",
            tooltip_text=_("Export document to HTML"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_html.set_tooltip_text(_("Export document to HTML"))
        self.export_html.set_image(
            Gtk.Image.new_from_resource(
                f"{RESOURCE_PREFIX}/icons/text-html.svg"))

        self.export_pdf = Gtk.Button(
            _("Pdf"),
            action_name="document.export-pdf",
            tooltip_text=_("Export document to PDF"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP,
        )
        self.export_pdf.set_tooltip_text(_("Export document to PDF"))
        self.export_pdf.set_image(
            Gtk.Image.new_from_resource(
                f"{RESOURCE_PREFIX}/icons/application-pdf.svg"))

        self.export_docx = Gtk.Button(
            _("Docx"),
            action_name="document.export-docx",
            tooltip_text=_("Export document to Docx"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_docx.set_tooltip_text(_("Export document to Docx"))
        self.export_docx.set_image(
            Gtk.Image.new_from_resource(
                f"{RESOURCE_PREFIX}/icons/application-msword.svg"))

        export_grid_1 = Gtk.Grid()
        export_grid_1.attach(self.export_plain, 0, 1, 1, 1)
        export_grid_1.attach(self.export_markdown, 1, 1, 1, 1)
        export_grid_1.attach(self.export_html, 2, 1, 1, 1)

        export_grid_2 = Gtk.Grid()
        export_grid_2.attach(self.export_pdf, 0, 1, 1, 1)
        export_grid_2.attach(self.export_docx, 1, 1, 1, 1)

        self.carousel = Handy.Carousel()
        self.carousel_indicator = Handy.CarouselIndicatorLines(
            carousel=self.carousel)
        self.carousel.insert(export_grid_1, 0)
        self.carousel.insert(export_grid_2, 1)

        self.export_file = Gtk.ModelButton()
        self.export_file.get_child().destroy()
        self.export_file.add(
            Granite.AccelLabel(label=_("Export to file"),
                               accel_string='<Control><Shift>s'))
        self.export_file.set_action_name("document.export")

        self.export_medium = Gtk.ModelButton()
        self.export_medium.get_child().destroy()
        self.export_medium.add(Granite.AccelLabel(label=_("To Medium")))
        self.export_medium.set_action_name("document.export-medium")

        self.export_writeas = Gtk.ModelButton()
        self.export_writeas.get_child().destroy()
        self.export_writeas.add(Granite.AccelLabel(label=_("To Write.as")))
        self.export_writeas.set_action_name("document.export-writeas")

        menu_grid = Gtk.Grid(margin_bottom=3,
                             margin_top=3,
                             orientation=Gtk.Orientation.VERTICAL,
                             width_request=200)
        menu_grid.attach(
            Granite.HeaderLabel(_("Files"), margin_left=12, margin_right=12),
            0, 0, 3, 1)
        menu_grid.attach(self.carousel, 0, 1, 3, 1)
        menu_grid.attach(self.carousel_indicator, 0, 2, 3, 1)

        menu_grid.attach(
            Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL,
                          margin_top=12), 0, 2, 3, 1)
        menu_grid.attach(
            Granite.HeaderLabel(_("Internet"), margin_left=12,
                                margin_right=12), 0, 3, 3, 1)
        menu_grid.attach(self.export_medium, 0, 4, 3, 1)
        menu_grid.attach(self.export_writeas, 0, 5, 3, 1)

        self.add(menu_grid)

        menu_grid.show_all()
        self.export_pdf.set_visible(False)
Ejemplo n.º 6
0
    def __init__(self, settings):
        super().__init__()
        self.set_relative_to(None)

        self.settings = settings

        self.export_plain = Gtk.Button(
            label=_("Text"),
            action_name="document.export",
            tooltip_text=_("Export document to plain text file"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_plain.set_image(
            Gtk.Image.new_from_resource("/com/github/tenderowl/norka/icons/text.svg"))

        self.export_markdown = Gtk.Button(
            label=_("Markdown"),
            action_name="document.export-markdown",
            tooltip_markup=Granite.markup_accel_tooltip(
                ("<Control><Shift>s",), _("Export document to markdown")),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_markdown.set_image(
            Gtk.Image.new_from_resource("/com/github/tenderowl/norka/icons/text-markdown.svg"))

        self.export_html = Gtk.Button(
            _("Html"),
            action_name="document.export-html",
            tooltip_text=_("Export document to HTML"),
            relief=Gtk.ReliefStyle.NONE,
            always_show_image=True,
            image_position=Gtk.PositionType.TOP)
        self.export_html.set_tooltip_text(_("Export document to HTML"))
        self.export_html.set_image(
            Gtk.Image.new_from_resource("/com/github/tenderowl/norka/icons/text-html.svg"))

        self.export_file = Gtk.ModelButton()
        self.export_file.get_child().destroy()
        self.export_file.add(Granite.AccelLabel(label=_("Export to file"), accel_string='<Control><Shift>s'))
        self.export_file.set_action_name("document.export")

        self.export_medium = Gtk.ModelButton()
        self.export_medium.get_child().destroy()
        self.export_medium.add(Granite.AccelLabel(label=_("To Medium")))
        self.export_medium.set_action_name("document.export-medium")

        self.export_writeas = Gtk.ModelButton()
        self.export_writeas.get_child().destroy()
        self.export_writeas.add(Granite.AccelLabel(label=_("To Write.as")))
        self.export_writeas.set_action_name("document.export-writeas")

        menu_grid = Gtk.Grid(margin_bottom=3, margin_top=3, orientation=Gtk.Orientation.VERTICAL, width_request=200)
        menu_grid.attach(Granite.HeaderLabel(_("Files"), margin_left=12, margin_right=12), 0, 0, 3, 1)
        menu_grid.attach(self.export_plain, 0, 1, 1, 1)
        menu_grid.attach(self.export_markdown, 1, 1, 1, 1)
        menu_grid.attach(self.export_html, 2, 1, 1, 1)

        menu_grid.attach(Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL, margin_top=12), 0, 2, 3, 1)
        menu_grid.attach(Granite.HeaderLabel(_("Internet"), margin_left=12, margin_right=12), 0, 3, 3, 1)
        menu_grid.attach(self.export_medium, 0, 4, 3, 1)
        menu_grid.attach(self.export_writeas, 0, 5, 3, 1)

        self.add(menu_grid)

        menu_grid.show_all()