aboutsummaryrefslogtreecommitdiff
path: root/src/application.py
blob: 5b5e061ae1ddbfecb78a5da4b37325ab388a5001 (plain)
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
31
32
33
34
35
36
37
38
# To add CSS
# https://github.com/Taiko2k/GTK4PythonTutorial/blob/main/README.md#adding-your-custom-css-stylesheet

import gi
gi.require_version('Adw', '1')
from gi.repository import Adw, Gtk, Gdk

from src.main_window import MainWindow

class Application(Adw.Application):
    def __init__(self, resources, library, ereader, conn, **kwargs):
        super().__init__(**kwargs)
        self.connect('activate', self._on_activate)

        self._resources = resources
        self._library = library
        self._ereader = ereader
        self._conn = conn

        # Dark theme
        sm = self.get_style_manager()
        sm.set_color_scheme(Adw.ColorScheme.PREFER_DARK)

        # Style
        self._load_style()

    def _on_activate(self, app):
        self.win = MainWindow(self._resources, self._library, self._ereader, self._conn, application=app)
        self.win.present()

    def _load_style(self):
        provider = Gtk.CssProvider()
        provider.load_from_path(f'{self._resources}/style.css')
        Gtk.StyleContext.add_provider_for_display(
            Gdk.Display.get_default(),
            provider,
            Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
        )