functions.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:poseidon 作者: sidus-dev 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号