import textwrap from PyQt6.QtCore import Qt from PyQt6.QtGui import QFont, QPixmap from PyQt6.QtWidgets import * from label import Label from vbox import VBox class AboutDialog(QDialog): """Dialog for showing info about RavenLog""" def __init__(self, parent=None): super(AboutDialog, self).__init__(parent) self.setWindowTitle(self.tr("About RavenLog")) self.setModal(True) self.layout = QVBoxLayout(self) heading_app_name = QLabel("RavenLog") heading_app_name.setAlignment(Qt.AlignmentFlag.AlignLeft) heading_app_name.setFont(QFont("default", 25)) heading_app_name.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse) version = QLabel(self.tr("Version: {0}".format(self._version()))) version.setAlignment(Qt.AlignmentFlag.AlignLeft) app_icon = QLabel() app_icon.setPixmap(QPixmap("icon7.png")) heading = QWidget(self) hbox = QHBoxLayout(heading) hbox.addWidget(app_icon) hbox.addWidget(VBox(heading_app_name, version)) hbox.addSpacerItem(QSpacerItem(1, 1, hPolicy=QSizePolicy.Policy.Expanding)) heading.layout = hbox self.layout.addWidget(heading) tabs = QTabWidget() tabs.addTab(self._about(), self.tr("About")) tabs.addTab(self._license(), self.tr("License")) self.layout.addWidget(tabs) buttons = QDialogButtonBox(self) buttons.setStandardButtons(QDialogButtonBox.StandardButton.Ok) buttons.accepted.connect(self.close) self.layout.addWidget(buttons) def _about(self) -> QWidget: result = QWidget() result.layout = QVBoxLayout(result) label = Label(self.tr(textwrap.dedent(""" Log file viewer
(c) 2021 Open Text Corporation
License: to be decided"""))) result.layout.addWidget(label) return result def _license(self) -> QWidget: result = QWidget() result.layout = QVBoxLayout(result) result.layout.addWidget(Label(self.tr(textwrap.dedent(""" """)))) return result def _version(self): with open('VERSION.info', "rt") as f: line = f.readline() version = line.strip() return version