diff --git a/aboutdialog.py b/aboutdialog.py new file mode 100644 index 0000000..584f8f2 --- /dev/null +++ b/aboutdialog.py @@ -0,0 +1,50 @@ +from PyQt6.QtCore import Qt +from PyQt6.QtGui import QFont +from PyQt6.QtWidgets import * + + +class AboutDialog(QDialog): + """Dialog for showing info about TortoiseHg""" + + def __init__(self, parent=None): + super(AboutDialog, self).__init__(parent) + self.setWindowTitle(self.tr("About")) + self.setModal(True) + + self.layout = QVBoxLayout(self) + heading_app_name = QLabel("RavenLog") + heading_app_name.setFont(QFont("default", 25)) + self.layout.addWidget(heading_app_name) + + tabs = QTabWidget() + tabs.addTab(self._about(), self.tr("About")) + tabs.addTab(self._license(), self.tr("License")) + + self.layout.addWidget(tabs) + + def _about(self) -> QWidget: + result = QWidget() + result.layout = QVBoxLayout(result) + + download_url_lbl = QLabel() + download_url_lbl.setMouseTracking(True) + download_url_lbl.setAlignment(Qt.AlignmentFlag.AlignLeft) + download_url_lbl.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse) + download_url_lbl.setOpenExternalLinks(True) + download_url_lbl.setText('%s' % + ('https://opentext.com/', + self.tr("License: GNU Lesser General Public License v3"))) + result.layout.addWidget(QLabel(self.tr("Log file viewer"))) + result.layout.addWidget(QLabel(self.tr("(c) 2021 Open Text Corporation"))) + result.layout.addWidget(QLabel(self.tr("Log file viewer"))) + result.layout.addWidget(download_url_lbl) + return result + + def _license(self) -> QWidget: + result = QWidget() + result.layout = QVBoxLayout(result) + + result.layout.addWidget(QLabel(self.tr("* Qt 6.2.0 (LGPLv3)"))) + result.layout.addWidget(QLabel(self.tr("* watchdog 2.16 (Apache)"))) + + return result diff --git a/main.py b/main.py index 93a098d..0f9fac3 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,7 @@ from PyQt6.QtCore import * from PyQt6.QtGui import * import sys +from aboutdialog import AboutDialog from bigtext import BigText from logFileModel import LogFileModel from settings import Settings @@ -52,6 +53,12 @@ class MainWindow(QMainWindow): def create_menu_bar(self) -> QMenuBar: menu_bar = QMenuBar() + menu_bar.addMenu(self.file_menu()) + menu_bar.addMenu(self.help_menu()) + + return menu_bar + + def file_menu(self) -> QMenu: file_menu = QMenu(self.tr("File", "name of the file menu"), self) open_file = QAction(self.tr("Open..."), self) @@ -62,10 +69,20 @@ class MainWindow(QMainWindow): file_menu.addAction(open_file) file_menu.addAction(close_action) + return file_menu - menu_bar.addMenu(file_menu) + def help_menu(self) -> QMenu: + help_menu = QMenu(self.tr("Help", "name of the help menu"), self) - return menu_bar + about_action = QAction(self.tr("About"), self) + about_action.triggered.connect(self._open_about_dialog) + help_menu.addAction(about_action) + + return help_menu + + def _open_about_dialog(self): + dialog = AboutDialog() + dialog.exec() def _open_file(self) -> None: dialog = QFileDialog(self)