def timelist(action, view, bflist, button, margin, xalign, yalign, hover, icns, defcon):
if action == 0: timelist = bflist.get_back_list_with_limit(10)
else: timelist = bflist.get_forward_list_with_limit(10)
popover = Gtk.Popover()
menu = Gtk.Box(orientation = Gtk.Orientation.VERTICAL)
menu.set_property('margin', margin)
popover.set_relative_to(button)
popover.set_position(Gtk.PositionType.BOTTOM)
popover.add(menu)
for item in timelist:
url = item.get_uri()
title = item.get_title()
if item.get_title(): title = minify(title, 50)
else: title = minify(url, 50)
link = Gtk.ModelButton()
link.set_alignment(xalign, yalign)
link.set_label(title)
link.set_hexpand(True)
link_icon = Gtk.Image()
link_icon.set_from_file("{}text-x-generic.svg".format(icns))
if not defcon and icons_pop:
favicon = get_favicon(view, url, (16, 16))
if favicon: link_icon.set_from_pixbuf(favicon)
grid_timelist = Gtk.Grid()
grid_timelist.set_column_spacing(10)
grid_timelist.attach(link_icon, 0, 1, 1, 1)
grid_timelist.attach(link, 1, 1, 1, 1)
grid_timelist.set_column_homogeneous(False)
link.connect("clicked", lambda throw_away=0, url=url: view.load_uri(url))
link.connect("enter", lambda throw_away=0, url=url: hover.set_text(minify(url, 100)))
link.connect("leave", lambda x: hover.set_text(""))
menu.pack_start(grid_timelist, False, False, 0)
popover.show_all()
评论列表
文章目录