add about page

This commit is contained in:
2026-06-03 17:42:16 +03:00
parent 42ba6310a3
commit 4dc7d95123
2 changed files with 60 additions and 1 deletions
+4 -1
View File
@@ -15,6 +15,7 @@ from .pages.playlists import PlaylistManagerPage
from .pages.queue import QueuePage from .pages.queue import QueuePage
from .pages.logs import LogsPage from .pages.logs import LogsPage
from .pages.settings import SettingsPage from .pages.settings import SettingsPage
from .pages.about import AboutPage
class MainWindow(QtWidgets.QMainWindow): class MainWindow(QtWidgets.QMainWindow):
@@ -47,17 +48,19 @@ class MainWindow(QtWidgets.QMainWindow):
self._queue_page = QueuePage() self._queue_page = QueuePage()
self._logs_page = LogsPage() self._logs_page = LogsPage()
self._settings_page = SettingsPage() self._settings_page = SettingsPage()
self._about_page = AboutPage()
self._pages: list[QtWidgets.QWidget] = [ self._pages: list[QtWidgets.QWidget] = [
self._playlists_page, self._playlists_page,
self._queue_page, self._queue_page,
self._logs_page, self._logs_page,
self._settings_page, self._settings_page,
self._about_page,
] ]
for p in self._pages: for p in self._pages:
self._stack.addWidget(p) self._stack.addWidget(p)
for label in ("Playlists", "Queue", "Logs", "Settings"): for label in ("Playlists", "Queue", "Logs", "Settings", "About"):
item = QtWidgets.QListWidgetItem(label) item = QtWidgets.QListWidgetItem(label)
item.setSizeHint(QtCore.QSize(200, 36)) item.setSizeHint(QtCore.QSize(200, 36))
self._nav.addItem(item) self._nav.addItem(item)
+56
View File
@@ -0,0 +1,56 @@
from __future__ import annotations
from PySide6 import QtCore, QtWidgets
class AboutPage(QtWidgets.QWidget):
def __init__(self, parent: QtWidgets.QWidget | None = None) -> None:
super().__init__(parent)
layout = QtWidgets.QVBoxLayout(self)
title = QtWidgets.QLabel("About")
title.setObjectName("pageTitle")
layout.addWidget(title)
subtitle = QtWidgets.QLabel(
"ytpl-sync is a desktop app for keeping local copies of YouTube playlists in sync."
)
subtitle.setWordWrap(True)
layout.addWidget(subtitle)
info_box = QtWidgets.QGroupBox("Project")
info_layout = QtWidgets.QFormLayout(info_box)
author = QtWidgets.QLabel("Dark_Zoul")
info_layout.addRow("Author", author)
repo = QtWidgets.QLabel(
'<a href="https://github.com/darkzoul5/YoutubePlaylistSync">'
"https://github.com/darkzoul5/YoutubePlaylistSync</a>"
)
repo.setTextInteractionFlags(
QtCore.Qt.TextInteractionFlag.TextBrowserInteraction
)
repo.setOpenExternalLinks(True)
repo.setWordWrap(True)
info_layout.addRow("Repository", repo)
layout.addWidget(info_box)
suggestions_box = QtWidgets.QGroupBox("Suggestions")
suggestions_layout = QtWidgets.QVBoxLayout(suggestions_box)
suggestions = [
"Keep yt-dlp updated regularly so site extraction stays reliable.",
"Open issues with a playlist URL or log snippet when a sync fails.",
"Use the release builds when you want a ready-to-run binary package.",
]
for text in suggestions:
label = QtWidgets.QLabel(f"{text}")
label.setWordWrap(True)
suggestions_layout.addWidget(label)
suggestions_layout.addStretch(1)
layout.addWidget(suggestions_box)
layout.addStretch(1)