67 lines
2 KiB
Python
67 lines
2 KiB
Python
# This class stores static information about the app, and is displayed in the about window
|
|
import os
|
|
import gi
|
|
import libs.functions as fn
|
|
|
|
gi.require_version("Gtk", "4.0")
|
|
from gi.repository import Gtk, Gio, Gdk
|
|
|
|
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
|
|
|
|
class AboutDialog(Gtk.AboutDialog):
|
|
def __init__(self, manager_gui, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
website = "http://arcolinux.info/"
|
|
authors = ["Erik Dubois", "Fennec"]
|
|
program_name = "Arch Linux Kernel Manager"
|
|
comments = (
|
|
f"Add/Remove Officially supported Linux kernels on Arch based systems\n"
|
|
f"Powered by the Arch Linux Archive (a.k.a ALA)\n"
|
|
f"Community based Linux kernels are also supported\n"
|
|
f"Developed in Python with GTK 4\n"
|
|
)
|
|
|
|
icon_name = "akm-tux"
|
|
|
|
self.set_transient_for(manager_gui)
|
|
self.set_modal(True)
|
|
self.set_authors(authors)
|
|
self.set_program_name(program_name)
|
|
self.set_comments(comments)
|
|
self.set_website(website)
|
|
|
|
self.set_logo_icon_name(icon_name)
|
|
self.set_version("Version %s" % manager_gui.app_version)
|
|
|
|
self.connect("activate-link", self.on_activate_link)
|
|
|
|
tux_icon = Gdk.Texture.new_from_file(
|
|
file=Gio.File.new_for_path(
|
|
os.path.join(base_dir, "images/96x96/akm-tux.png")
|
|
)
|
|
)
|
|
|
|
self.set_logo(tux_icon)
|
|
|
|
def on_activate_link(self, about_dialog, uri):
|
|
try:
|
|
cmd = ["sudo", "-u", fn.sudo_username, "xdg-open", uri]
|
|
|
|
proc = fn.subprocess.Popen(
|
|
cmd,
|
|
shell=False,
|
|
stdout=fn.subprocess.PIPE,
|
|
stderr=fn.subprocess.STDOUT,
|
|
universal_newlines=True,
|
|
)
|
|
|
|
out, err = proc.communicate(timeout=50)
|
|
|
|
fn.logger.warning(out)
|
|
|
|
except Exception as e:
|
|
fn.logger.error("Exception in activate_link(): %s" % e)
|
|
|
|
return True
|