File: locked_headerbar.py

package info (click to toggle)
secrets 11.0-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 3,744 kB
  • sloc: python: 6,509; xml: 7; makefile: 4
file content (30 lines) | stat: -rw-r--r-- 862 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# SPDX-License-Identifier: GPL-3.0-only
from gi.repository import Adw, Gtk

from gsecrets.recent_files_menu import RecentFilesMenu
from gsecrets.recent_manager import RecentManager


@Gtk.Template(resource_path="/org/gnome/World/Secrets/gtk/locked_headerbar.ui")
class LockedHeaderBar(Adw.Bin):
    __gtype_name__ = "LockedHeaderBar"

    title = Gtk.Template.Child()
    split_button = Gtk.Template.Child()

    def __init__(self):
        super().__init__()

        self.recents = RecentManager()
        self.set_menu()
        self.recents.changed.connect(self.on_settings_changed)

    def set_menu(self):
        menu = RecentFilesMenu()
        if menu.is_empty:
            self.split_button.set_menu_model(None)
        else:
            self.split_button.set_menu_model(menu.menu)

    def on_settings_changed(self, _recents):
        self.set_menu()