gui.dialogs.about_dialog
1from PySide6.QtWidgets import ( 2 QDialog, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, 3) 4from PySide6.QtCore import Qt 5 6from lib import __version__ as _VERSION, APPIMAGE_VARIANT 7from lib.i18n import _ 8 9_AUTHOR = 'David Vaquero' 10_REPO_URL = 'https://gitlab.com/pepesan/temario-app' 11_WEB_URL = 'https://temario.app' 12 13 14class AboutDialog(QDialog): 15 def __init__(self, parent=None): 16 super().__init__(parent) 17 self.setWindowTitle(_('Acerca de Temario')) 18 self.setFixedWidth(360) 19 self.setModal(True) 20 self._build_ui() 21 22 def _build_ui(self) -> None: 23 layout = QVBoxLayout(self) 24 layout.setSpacing(10) 25 layout.setContentsMargins(24, 24, 24, 20) 26 27 title = QLabel('<b style="font-size:17px">Temario</b>') 28 title.setAlignment(Qt.AlignmentFlag.AlignCenter) 29 layout.addWidget(title) 30 31 ver = QLabel(f'v{_VERSION}') 32 ver.setObjectName('file_label') 33 ver.setAlignment(Qt.AlignmentFlag.AlignCenter) 34 layout.addWidget(ver) 35 36 if APPIMAGE_VARIANT == 'full': 37 variant_lbl = QLabel(_('AppImage · LibreOffice incluido')) 38 variant_lbl.setObjectName('file_label') 39 variant_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 40 layout.addWidget(variant_lbl) 41 elif APPIMAGE_VARIANT == 'slim': 42 variant_lbl = QLabel(_('AppImage · requiere libreoffice del sistema')) 43 variant_lbl.setObjectName('file_label') 44 variant_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 45 layout.addWidget(variant_lbl) 46 47 layout.addSpacing(6) 48 49 desc = QLabel(_('Generador de presentaciones ODP/PDF\na partir de ficheros YAML.')) 50 desc.setAlignment(Qt.AlignmentFlag.AlignCenter) 51 desc.setWordWrap(True) 52 layout.addWidget(desc) 53 54 layout.addSpacing(10) 55 56 for html in ( 57 f'{_("Desarrollador:")} <b>{_AUTHOR}</b>', 58 f'<a href="{_REPO_URL}">{_("Repositorio GitLab")}</a>', 59 f'<a href="{_WEB_URL}">{_WEB_URL}</a>', 60 ): 61 lbl = QLabel(html) 62 lbl.setOpenExternalLinks(True) 63 lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 64 layout.addWidget(lbl) 65 66 layout.addSpacing(14) 67 68 btn = QPushButton(_('Cerrar')) 69 btn.setDefault(True) 70 btn.clicked.connect(self.accept) 71 hlay = QHBoxLayout() 72 hlay.addStretch() 73 hlay.addWidget(btn) 74 hlay.addStretch() 75 layout.addLayout(hlay)
class
AboutDialog(PySide6.QtWidgets.QDialog):
15class AboutDialog(QDialog): 16 def __init__(self, parent=None): 17 super().__init__(parent) 18 self.setWindowTitle(_('Acerca de Temario')) 19 self.setFixedWidth(360) 20 self.setModal(True) 21 self._build_ui() 22 23 def _build_ui(self) -> None: 24 layout = QVBoxLayout(self) 25 layout.setSpacing(10) 26 layout.setContentsMargins(24, 24, 24, 20) 27 28 title = QLabel('<b style="font-size:17px">Temario</b>') 29 title.setAlignment(Qt.AlignmentFlag.AlignCenter) 30 layout.addWidget(title) 31 32 ver = QLabel(f'v{_VERSION}') 33 ver.setObjectName('file_label') 34 ver.setAlignment(Qt.AlignmentFlag.AlignCenter) 35 layout.addWidget(ver) 36 37 if APPIMAGE_VARIANT == 'full': 38 variant_lbl = QLabel(_('AppImage · LibreOffice incluido')) 39 variant_lbl.setObjectName('file_label') 40 variant_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 41 layout.addWidget(variant_lbl) 42 elif APPIMAGE_VARIANT == 'slim': 43 variant_lbl = QLabel(_('AppImage · requiere libreoffice del sistema')) 44 variant_lbl.setObjectName('file_label') 45 variant_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 46 layout.addWidget(variant_lbl) 47 48 layout.addSpacing(6) 49 50 desc = QLabel(_('Generador de presentaciones ODP/PDF\na partir de ficheros YAML.')) 51 desc.setAlignment(Qt.AlignmentFlag.AlignCenter) 52 desc.setWordWrap(True) 53 layout.addWidget(desc) 54 55 layout.addSpacing(10) 56 57 for html in ( 58 f'{_("Desarrollador:")} <b>{_AUTHOR}</b>', 59 f'<a href="{_REPO_URL}">{_("Repositorio GitLab")}</a>', 60 f'<a href="{_WEB_URL}">{_WEB_URL}</a>', 61 ): 62 lbl = QLabel(html) 63 lbl.setOpenExternalLinks(True) 64 lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) 65 layout.addWidget(lbl) 66 67 layout.addSpacing(14) 68 69 btn = QPushButton(_('Cerrar')) 70 btn.setDefault(True) 71 btn.clicked.connect(self.accept) 72 hlay = QHBoxLayout() 73 hlay.addStretch() 74 hlay.addWidget(btn) 75 hlay.addStretch() 76 layout.addLayout(hlay)
QDialog(self, /, parent: PySide6.QtWidgets.QWidget | None = None, f: PySide6.QtCore.Qt.WindowType = Default(Qt.WindowFlags), *, sizeGripEnabled: bool | None = None, modal: bool | None = None) -> None