Source code for mafw.steering_gui.dialogs.about_dialog

#  Copyright 2026 European Union
#  Author: Bulgheroni Antonio (antonio.bulgheroni@ec.europa.eu)
#  SPDX-License-Identifier: EUPL-1.2
"""Dialog presenting metadata about the Steering GUI application.

:Author: Bulgheroni Antonio (antonio.bulgheroni@ec.europa.eu)
:Description: Display icon, project description, URLs, and authorship to the user.
"""

from __future__ import annotations

from datetime import datetime
from pathlib import Path

from PySide6.QtCore import Qt
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import (
    QDialog,
    QHBoxLayout,
    QLabel,
    QPushButton,
    QVBoxLayout,
    QWidget,
)

from mafw.__about__ import __initial_development__, __version__


[docs] class AboutDialog(QDialog): """Show the About page for MAFw and the steering GUI. :param parent: Optional parent widget for window hierarchy. """ def __init__(self, parent: QWidget | None = None) -> None: super().__init__(parent) self.setWindowTitle('About MAFw') self.setModal(True) # Copyright year logic initial_year = __initial_development__ current_year = datetime.now().year # Format copyright year based on whether current year is different from initial if current_year > initial_year: self.copyright_year = f'{initial_year} - {current_year}' else: self.copyright_year = str(initial_year) self._setup_ui() self.adjustSize()
[docs] def _setup_ui(self) -> None: """Compose the dialog layout and populate the informative labels.""" icon_path = Path(__file__).parent.parent / 'resources' / 'mafw-logo.png' icon_label = QLabel() if icon_path.exists(): pixmap = QPixmap(icon_path) icon_label.setPixmap(pixmap.scaled(128, 128, Qt.AspectRatioMode.KeepAspectRatio)) text_layout = QVBoxLayout() text_layout.addWidget(QLabel('<h1>MAFw Steering GUI</h1>')) text_layout.addWidget(QLabel(f'Version {__version__}')) text_layout.addWidget(QLabel('<p>Visual tool to create, edit, validate and launch steering files.</p>')) text_layout.addWidget(QLabel(f'Copyright © {self.copyright_year} European Union')) text_layout.addWidget(QLabel('Author: Antonio Bulgheroni (antonio.bulgheroni@ec.europa.eu)')) license_label = QLabel( 'License: <a href="https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12">EUPL-1.2</a>' ) license_label.setOpenExternalLinks(True) text_layout.addWidget(license_label) source_code_label = QLabel('Source code: <a href="https://code.europa.eu/kada/mafw">GitLab</a>') source_code_label.setOpenExternalLinks(True) content_layout = QHBoxLayout() content_layout.addWidget(icon_label) content_layout.addLayout(text_layout) button_layout = QHBoxLayout() ok_button = QPushButton('OK') ok_button.clicked.connect(self.accept) button_layout.addStretch() button_layout.addWidget(ok_button) main_layout = QVBoxLayout() main_layout.addLayout(content_layout) main_layout.addLayout(button_layout) self.setLayout(main_layout)