mirror of
https://github.com/darkzoul5/YoutubePlaylistSync.git
synced 2026-07-03 04:23:59 +03:00
feat: new colour scheme
This commit is contained in:
+72
-36
@@ -356,16 +356,24 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
def _apply_style(self) -> None:
|
||||
self.setStyleSheet(
|
||||
"""
|
||||
QMainWindow { background: #0f1115; color: #e6e6e6; }
|
||||
QWidget { font-size: 13px; color: #e6e6e6; }
|
||||
QMainWindow { background: #0f1218; color: #d7dce4; }
|
||||
QWidget { font-size: 13px; color: #d7dce4; }
|
||||
QWidget#playlistsPage,
|
||||
QWidget#queuePage,
|
||||
QWidget#logsPage,
|
||||
QWidget#settingsPage,
|
||||
QWidget#aboutPage {
|
||||
background: #0f1218;
|
||||
}
|
||||
QLabel#pageTitle { font-size: 18px; font-weight: 600; padding: 4px 0; }
|
||||
QLabel[muted="true"] { color: #aeb6c2; }
|
||||
QLabel[link="true"] { color: #8fb8ff; }
|
||||
QLabel[link="true"]:hover { color: #b8d2ff; }
|
||||
QLabel#cardTitle { font-size: 15px; font-weight: 600; color: #eef2f8; }
|
||||
QLabel[muted="true"] { color: #9aa3b2; }
|
||||
QLabel[link="true"] { color: #6c8bff; }
|
||||
QLabel[link="true"]:hover { color: #8ea7ff; }
|
||||
|
||||
QListWidget#sidebar {
|
||||
background: #0b0d11;
|
||||
border-right: 1px solid #20242d;
|
||||
background: #0d1015;
|
||||
border-right: 1px solid #2a3140;
|
||||
padding: 8px;
|
||||
}
|
||||
QListWidget#sidebar::item {
|
||||
@@ -374,66 +382,94 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
padding: 8px 10px;
|
||||
}
|
||||
QListWidget#sidebar::item:selected {
|
||||
background: #1e2633;
|
||||
background: #21304a;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
QTableWidget {
|
||||
background: #0f1115;
|
||||
gridline-color: #20242d;
|
||||
border: 1px solid #20242d;
|
||||
background: #171b22;
|
||||
gridline-color: #2a3140;
|
||||
border: 1px solid #2a3140;
|
||||
}
|
||||
QTableWidget::item {
|
||||
padding: 6px 8px;
|
||||
}
|
||||
QPlainTextEdit {
|
||||
background: #11151c;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 10px;
|
||||
color: #d7dce4;
|
||||
}
|
||||
QScrollBar:vertical {
|
||||
background: #0f1218;
|
||||
width: 12px;
|
||||
margin: 0px;
|
||||
}
|
||||
QScrollBar::handle:vertical {
|
||||
background: #34465f;
|
||||
min-height: 24px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
QScrollBar::handle:vertical:hover {
|
||||
background: #456183;
|
||||
}
|
||||
QScrollBar::add-line:vertical,
|
||||
QScrollBar::sub-line:vertical,
|
||||
QScrollBar::add-page:vertical,
|
||||
QScrollBar::sub-page:vertical {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
QGroupBox {
|
||||
border: 1px solid #20242d;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 12px;
|
||||
margin-top: 14px;
|
||||
padding: 12px;
|
||||
background: #0b0d11;
|
||||
background: #171b22;
|
||||
}
|
||||
QGroupBox::title {
|
||||
subcontrol-origin: margin;
|
||||
left: 12px;
|
||||
padding: 0 6px;
|
||||
color: #d5dae3;
|
||||
background: #0b0d11;
|
||||
color: #e2e7ef;
|
||||
background: #171b22;
|
||||
}
|
||||
QFrame#aboutCard {
|
||||
background: #0b0d11;
|
||||
border: 1px solid #20242d;
|
||||
background: #171b22;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 14px;
|
||||
}
|
||||
QLabel#cardTitle {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #f2f4f8;
|
||||
}
|
||||
QHeaderView::section {
|
||||
background: #0b0d11;
|
||||
color: #cfd3da;
|
||||
border: 1px solid #20242d;
|
||||
background: #171b22;
|
||||
color: #d7dce4;
|
||||
border: 1px solid #2a3140;
|
||||
padding: 6px;
|
||||
}
|
||||
QPushButton {
|
||||
background: #1e2633;
|
||||
border: 1px solid #2a3140;
|
||||
background: #1e2631;
|
||||
border: 1px solid #31405a;
|
||||
padding: 6px 10px;
|
||||
border-radius: 8px;
|
||||
color: #e6e6e6;
|
||||
color: #d7dce4;
|
||||
}
|
||||
QPushButton:hover { background: #243044; }
|
||||
QPushButton:hover { background: #26344a; }
|
||||
QPushButton:pressed { background: #1a2433; }
|
||||
|
||||
QFrame#playlistCard {
|
||||
background: #0b0d11;
|
||||
border: 1px solid #20242d;
|
||||
border-radius: 10px;
|
||||
background: #171b22;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 12px;
|
||||
padding: 10px;
|
||||
}
|
||||
QLineEdit, QComboBox {
|
||||
background: #0f1115;
|
||||
border: 1px solid #20242d;
|
||||
background: #11151c;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 8px;
|
||||
padding: 6px 8px;
|
||||
color: #e6e6e6;
|
||||
color: #d7dce4;
|
||||
}
|
||||
QLineEdit:focus, QComboBox:focus {
|
||||
border: 1px solid #6c8bff;
|
||||
}
|
||||
"""
|
||||
)
|
||||
|
||||
@@ -10,6 +10,7 @@ from ..smooth_scroll import enable_smooth_scrolling
|
||||
class LogsPage(QtWidgets.QWidget):
|
||||
def __init__(self, parent: QtWidgets.QWidget | None = None) -> None:
|
||||
super().__init__(parent)
|
||||
self.setObjectName("logsPage")
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
title = QtWidgets.QLabel("Logs")
|
||||
title.setObjectName("pageTitle")
|
||||
|
||||
@@ -36,6 +36,7 @@ class PlaylistManagerPage(QtWidgets.QWidget):
|
||||
parent: QtWidgets.QWidget | None = None,
|
||||
) -> None:
|
||||
super().__init__(parent)
|
||||
self.setObjectName("playlistsPage")
|
||||
self._settings = settings
|
||||
self._config_path = getattr(settings, "path", None)
|
||||
self._config: dict[str, Any] = {}
|
||||
@@ -50,6 +51,7 @@ class PlaylistManagerPage(QtWidgets.QWidget):
|
||||
header.setObjectName("pageTitle")
|
||||
|
||||
self._list = QtWidgets.QListWidget()
|
||||
self._list.setObjectName("playlistList")
|
||||
# Selection-based UI is intentionally disabled; actions happen per-card.
|
||||
self._list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.NoSelection)
|
||||
self._list.setSpacing(8)
|
||||
@@ -57,6 +59,20 @@ class PlaylistManagerPage(QtWidgets.QWidget):
|
||||
self._list.setWordWrap(True)
|
||||
self._list.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollMode.ScrollPerPixel)
|
||||
enable_smooth_scrolling(self._list)
|
||||
self._list.setStyleSheet(
|
||||
"""
|
||||
QListWidget#playlistList {
|
||||
background: #0f1218;
|
||||
border: none;
|
||||
}
|
||||
QListWidget#playlistList::viewport {
|
||||
background: #0f1218;
|
||||
}
|
||||
QListWidget#playlistList::item {
|
||||
background: transparent;
|
||||
}
|
||||
"""
|
||||
)
|
||||
|
||||
self._add_btn = QtWidgets.QPushButton("Add")
|
||||
self._add_btn.clicked.connect(self._add_playlist)
|
||||
@@ -410,6 +426,16 @@ class _PlaylistCard(QtWidgets.QFrame):
|
||||
super().__init__(parent)
|
||||
self.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
|
||||
self.setObjectName("playlistCard")
|
||||
self.setAttribute(QtCore.Qt.WidgetAttribute.WA_StyledBackground, True)
|
||||
self.setStyleSheet(
|
||||
"""
|
||||
QFrame#playlistCard {
|
||||
background: #171b22;
|
||||
border: 1px solid #2a3140;
|
||||
border-radius: 12px;
|
||||
}
|
||||
"""
|
||||
)
|
||||
self._index = index
|
||||
self._active = False
|
||||
self._paused = False
|
||||
|
||||
@@ -10,6 +10,7 @@ class QueuePage(QtWidgets.QWidget):
|
||||
|
||||
def __init__(self, parent: QtWidgets.QWidget | None = None) -> None:
|
||||
super().__init__(parent)
|
||||
self.setObjectName("queuePage")
|
||||
# Map (playlist_id, video_id) to a stable item; its `.row()` tracks sorting moves.
|
||||
self._rows_by_key: dict[tuple[str, str], QtWidgets.QTableWidgetItem] = {}
|
||||
self._pending_by_key: dict[tuple[str, str], dict] = {}
|
||||
|
||||
@@ -11,6 +11,7 @@ from ..config_store import load_config, save_config
|
||||
class SettingsPage(QtWidgets.QWidget):
|
||||
def __init__(self, parent: QtWidgets.QWidget | None = None) -> None:
|
||||
super().__init__(parent)
|
||||
self.setObjectName("settingsPage")
|
||||
self._config_path: Path | None = None
|
||||
self._config: dict[str, Any] = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user