mirror of
https://github.com/Snigdha-OS/snigdhaos-kernel-switcher.git
synced 2025-09-05 22:56:37 +02:00
Merge pull request #5 from iconized/master
chore(🤑): about dialogue design!
This commit is contained in:
67
ui/AboutDialog.py
Normal file
67
ui/AboutDialog.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# 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://snigdhaos.org/"
|
||||
authors = ["Eshan Roy", "Abhiraj Roy"]
|
||||
program_name = "SnigdhaOS Kernel Switcher"
|
||||
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 = "sks-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
|
Reference in New Issue
Block a user