diff --git a/data/ui/Recents.ui b/data/ui/Recents.ui new file mode 100644 index 0000000..cfe3ada --- /dev/null +++ b/data/ui/Recents.ui @@ -0,0 +1,31 @@ + + + + + + + text/x-markdown + + + + False + False + + + 200 + True + False + start + recent_md_filter + 20 + False + False + mru + + + main + 1 + + + + diff --git a/uberwriter/UberwriterWindow.py b/uberwriter/UberwriterWindow.py index 73b4a08..4fad649 100644 --- a/uberwriter/UberwriterWindow.py +++ b/uberwriter/UberwriterWindow.py @@ -986,43 +986,13 @@ class UberwriterWindow(Gtk.ApplicationWindow): def open_recent(self, _widget, data=None): """open the given recent document """ + print("open") if data: if self.check_change() == Gtk.ResponseType.CANCEL: return self.load_file(data) - def generate_recent_files_menu(self): - """Generate a menu of recent opened .md files - - Returns: - GtkMenu -- the menu of recent items - """ - - # Recent file filter - self.recent_manager = Gtk.RecentManager.get_default() - - self.recent_files_menu = Gtk.RecentChooserMenu.new_for_manager( - self.recent_manager) - self.recent_files_menu.set_sort_type(Gtk.RecentSortType.MRU) - - recent_filter = Gtk.RecentFilter.new() - recent_filter.add_mime_type('text/x-markdown') - self.recent_files_menu.set_filter(recent_filter) - menu = Gtk.Menu.new() - - for entry in self.recent_files_menu.get_items(): - if entry.exists(): - item = Gtk.MenuItem.new_with_label(entry.get_display_name()) - item.connect('activate', self.open_recent, entry.get_uri()) - menu.append(item) - item.show() - - menu.show() - return menu - # menu.attach_to_widget(widget) - # parent_menu.show() - def poll_for_motion(self): """check if the user has moved the cursor to show the headerbar diff --git a/uberwriter/headerbars.py b/uberwriter/headerbars.py index 3ee21e0..bb48be2 100644 --- a/uberwriter/headerbars.py +++ b/uberwriter/headerbars.py @@ -21,6 +21,7 @@ from gettext import gettext as _ from gi.repository import Gtk from uberwriter_lib.helpers import get_builder +from uberwriter_lib.AppWindow import Application as app class MainHeaderbar: #pylint: disable=too-few-public-methods """Sets up the main application headerbar @@ -104,8 +105,13 @@ def buttons(): Returns: [NamedTupple] -- tupple of Gtk.Buttons """ + builder_window_menu = get_builder('Menu') model = builder_window_menu.get_object("Menu") + recents_builder = get_builder('Recents') + recents = recents_builder.get_object("recent_md_popover") + recents_wd = recents_builder.get_object("recent_md_widget") + recents_wd.connect('item-activated', app.on_open_recent) Button = namedtuple("Button", "new open recent save search menu") btn = Button(Gtk.Button().new_with_label(_("New")), @@ -119,6 +125,7 @@ def buttons(): btn.recent.set_image(Gtk.Image.new_from_icon_name("go-down-symbolic", Gtk.IconSize.BUTTON)) btn.recent.set_tooltip_text(_("Open Recent")) + btn.recent.set_popover(recents) btn.search.set_tooltip_text(_("Search and replace")) btn.menu.set_tooltip_text(_("Menu")) btn.menu.set_image(Gtk.Image.new_from_icon_name("open-menu-symbolic", @@ -127,7 +134,6 @@ def buttons(): btn.menu.set_menu_model(model) btn.new.set_action_name("app.new") btn.open.set_action_name("app.open") - btn.recent.set_action_name("app.open_recent") btn.save.set_action_name("app.save") btn.search.set_action_name("app.search") diff --git a/uberwriter_lib/AppWindow.py b/uberwriter_lib/AppWindow.py index ec69134..318d0be 100644 --- a/uberwriter_lib/AppWindow.py +++ b/uberwriter_lib/AppWindow.py @@ -230,8 +230,9 @@ class Application(Gtk.Application): def on_open(self, _action, _value): self.window.open_document() - def on_open_recent(self, action, value): - pass + def on_open_recent(self): + print(self) + #self.window.load_file(self.get_current_uri()) def on_example(self, _action, _value): self.window.open_uberwriter_markdown()