# "qt/py/ui_AboutDialog.py", licensed under the MIT license # Copyright 2024-2025 NinjaCheetah and Contributors # Thanks Isla and Alex for making such a nice about dialog that I could then "borrow" :p import os import pathlib import webbrowser from PySide6.QtCore import Qt, QCoreApplication from PySide6.QtWidgets import QDialog, QLabel, QVBoxLayout, QPushButton from PySide6.QtGui import QIcon class AboutNUSGet(QDialog): def __init__(self, versions): super().__init__() self.setWindowTitle(self.tr("About NUSGet")) self.setFixedWidth(450) self.setFixedHeight(500) # Set background color to match main app self.setStyleSheet(""" Credits { background-color: #222222; color: #ffffff; } QLabel { color: #ffffff; } QLabel[class="title"] { font-size: 20px; font-weight: bold; color: #ffffff; } QLabel[class="version"] { font-size: 13px; color: #aaaaaa; } QLabel[class="copyright"] { font-size: 12px; color: #888888; } QLabel[class="header"] { font-size: 14px; font-weight: bold; border-bottom: 1px solid #444444; padding-bottom: 4px; margin-top: 8px; } QPushButton { outline: 0; show-decoration-selected: 1; background-color: transparent; border: 1px solid rgba(70, 70, 70, 1); border-radius: 8px; padding: 6px 10px; margin: 4px 0px; font-size: 13px; font-weight: 500; color: #ffffff; } QPushButton:hover { background-color: rgba(60, 60, 60, 1); border-color: #9c4ae8; } QPushButton:pressed { background-color: rgba(26, 115, 232, 0.15); border: 1px solid #6c1ae8; }""") # Create main layout self.layout = QVBoxLayout() self.layout.setSpacing(4) self.layout.setContentsMargins(30, 20, 30, 20) # Logo logo_label = QLabel() icon = QIcon(str(pathlib.Path(os.path.dirname(__file__)).parents[1].joinpath("resources", "icon.png"))) logo_pixmap = icon.pixmap(96, 96) logo_label.setPixmap(logo_pixmap) logo_label.setAlignment(Qt.AlignmentFlag.AlignCenter) # Title title_label = QLabel(self.tr("NUSGet")) title_label.setProperty("class", "title") title_label.setAlignment(Qt.AlignmentFlag.AlignCenter) # NUSGet Version version_label = QLabel(self.tr("Version {nusget_version}").format(nusget_version=versions[0])) version_label.setProperty("class", "version") version_label.setAlignment(Qt.AlignmentFlag.AlignCenter) # Library Versions libraries_label = QLabel(self.tr("Using libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version}") .format(libwiipy_version=versions[1], libtwlpy_version=versions[2])) libraries_label.setProperty("class", "version") libraries_label.setAlignment(Qt.AlignmentFlag.AlignCenter) # Copyright copyright_label = QLabel(self.tr("© 2024-2025 NinjaCheetah & Contributors")) copyright_label.setProperty("class", "copyright") copyright_label.setAlignment(Qt.AlignmentFlag.AlignCenter) # Add header section self.layout.addWidget(logo_label) self.layout.addWidget(title_label) self.layout.addWidget(version_label) self.layout.addWidget(libraries_label) self.layout.addWidget(copyright_label) self.layout.addSpacing(15) # External links layout links_layout = QVBoxLayout() # GitHub button self.github_button = QPushButton(self.tr("View Project on GitHub")) self.github_button.clicked.connect(lambda: webbrowser.open("https://github.com/NinjaCheetah/NUSGet")) links_layout.addWidget(self.github_button) # Add the links layout to main layout self.layout.addLayout(links_layout) self.layout.addSpacing(15) # Add a horizontal line line = QLabel() line.setStyleSheet("background-color: #444444; height: 1px;") line.setFixedHeight(1) self.layout.addWidget(line) self.layout.addSpacing(10) # Team members header team_header = QLabel(self.tr("Translations")) team_header.setProperty("class", "header") self.layout.addWidget(team_header) self.layout.addSpacing(5) # Team members with roles self.people = { "rougets": QLabel(self.tr( "French (Français): rougets")), "yeah-its-gloria": QLabel(self.tr( "German (Deutsch): yeah-its-gloria")), "LNLenost": QLabel(self.tr( "Italian (Italiano): LNLenost")), "DDinghoya": QLabel(self.tr( "Korean (\ud55c\uad6d\uc5b4): DDinghoya")), "rolfiee": QLabel(self.tr( "Norwegian (Norsk): rolfiee")), "NotImplementedLife": QLabel(self.tr( "Romanian (Rom\u00e2n\u0103): NotImplementedLife")), "DarkMatterCore": QLabel(self.tr( "Spanish (Español): DarkMatterCore")) } # Add team members to layout for credit in self.people.values(): credit.setOpenExternalLinks(True) credit.setContentsMargins(15, 0, 0, 0) self.layout.addWidget(credit) # Add spacer at the bottom self.layout.addStretch() self.setLayout(self.layout)