mirror of
https://github.com/Snigdha-OS/snigdhaos-kernel-switcher.git
synced 2025-09-06 07:05:12 +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