v0.2 - drop fingerprinting, add LUFS cart normalisation, playlist save/load, editable history with TXT+CSV export
This commit is contained in:
+65
-9
@@ -7,7 +7,7 @@ from datetime import datetime
|
||||
|
||||
|
||||
THEMES = [
|
||||
# Original 4
|
||||
# Dark themes
|
||||
{
|
||||
'name': 'GREEN',
|
||||
'accent': '#00ff41',
|
||||
@@ -16,6 +16,7 @@ THEMES = [
|
||||
'bg2': '#111111',
|
||||
'border': '#1a3a1a',
|
||||
'text': '#cccccc',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'AMBER',
|
||||
@@ -25,6 +26,7 @@ THEMES = [
|
||||
'bg2': '#111100',
|
||||
'border': '#3a3000',
|
||||
'text': '#ddddcc',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'BLUE',
|
||||
@@ -34,6 +36,7 @@ THEMES = [
|
||||
'bg2': '#001122',
|
||||
'border': '#001a3a',
|
||||
'text': '#ccd8dd',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'RED',
|
||||
@@ -43,8 +46,8 @@ THEMES = [
|
||||
'bg2': '#110000',
|
||||
'border': '#3a0000',
|
||||
'text': '#ddcccc',
|
||||
'is_light': False,
|
||||
},
|
||||
# 10 New Bold Themes
|
||||
{
|
||||
'name': 'PURPLE',
|
||||
'accent': '#cc00ff',
|
||||
@@ -53,6 +56,7 @@ THEMES = [
|
||||
'bg2': '#1a001a',
|
||||
'border': '#3a003a',
|
||||
'text': '#ddccdd',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'CYAN',
|
||||
@@ -62,6 +66,7 @@ THEMES = [
|
||||
'bg2': '#001a1a',
|
||||
'border': '#003a3a',
|
||||
'text': '#ccdddd',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'ORANGE',
|
||||
@@ -71,6 +76,7 @@ THEMES = [
|
||||
'bg2': '#1a1100',
|
||||
'border': '#3a2200',
|
||||
'text': '#ddccbb',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'PINK',
|
||||
@@ -80,6 +86,7 @@ THEMES = [
|
||||
'bg2': '#1a000a',
|
||||
'border': '#3a0015',
|
||||
'text': '#ddccdd',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'LIME',
|
||||
@@ -89,6 +96,7 @@ THEMES = [
|
||||
'bg2': '#111a00',
|
||||
'border': '#223a00',
|
||||
'text': '#ddddcc',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'GOLD',
|
||||
@@ -98,6 +106,7 @@ THEMES = [
|
||||
'bg2': '#1a1a0a',
|
||||
'border': '#3a3a15',
|
||||
'text': '#ddddbb',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'VIOLET',
|
||||
@@ -107,6 +116,7 @@ THEMES = [
|
||||
'bg2': '#0a0015',
|
||||
'border': '#15002a',
|
||||
'text': '#ccbbdd',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'TURQUOISE',
|
||||
@@ -116,6 +126,7 @@ THEMES = [
|
||||
'bg2': '#001a15',
|
||||
'border': '#00382d',
|
||||
'text': '#ccddda',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'CRIMSON',
|
||||
@@ -125,6 +136,7 @@ THEMES = [
|
||||
'bg2': '#1a0005',
|
||||
'border': '#3a000a',
|
||||
'text': '#ddcccc',
|
||||
'is_light': False,
|
||||
},
|
||||
{
|
||||
'name': 'CHARTREUSE',
|
||||
@@ -134,6 +146,48 @@ THEMES = [
|
||||
'bg2': '#0a1a00',
|
||||
'border': '#153a00',
|
||||
'text': '#ddddcc',
|
||||
'is_light': False,
|
||||
},
|
||||
# Light themes
|
||||
{
|
||||
'name': 'LIGHT BLUE',
|
||||
'accent': '#0066cc',
|
||||
'accent_dim': '#0044aa',
|
||||
'bg': '#f5f5f5',
|
||||
'bg2': '#e8e8e8',
|
||||
'border': '#bbbbbb',
|
||||
'text': '#222222',
|
||||
'is_light': True,
|
||||
},
|
||||
{
|
||||
'name': 'LIGHT GREEN',
|
||||
'accent': '#00aa44',
|
||||
'accent_dim': '#008833',
|
||||
'bg': '#f0f5f0',
|
||||
'bg2': '#e0e8e0',
|
||||
'border': '#aaccaa',
|
||||
'text': '#112211',
|
||||
'is_light': True,
|
||||
},
|
||||
{
|
||||
'name': 'LIGHT AMBER',
|
||||
'accent': '#cc8800',
|
||||
'accent_dim': '#aa6600',
|
||||
'bg': '#f5f3f0',
|
||||
'bg2': '#e8e5e0',
|
||||
'border': '#ccbb99',
|
||||
'text': '#221100',
|
||||
'is_light': True,
|
||||
},
|
||||
{
|
||||
'name': 'LIGHT PURPLE',
|
||||
'accent': '#8844cc',
|
||||
'accent_dim': '#6622aa',
|
||||
'bg': '#f3f0f5',
|
||||
'bg2': '#e5e0e8',
|
||||
'border': '#ccbbdd',
|
||||
'text': '#221122',
|
||||
'is_light': True,
|
||||
},
|
||||
]
|
||||
|
||||
@@ -197,9 +251,6 @@ class TopBarWidget(QFrame):
|
||||
# Date
|
||||
self.date_label = QLabel("")
|
||||
self.date_label.setFont(QFont("Arial", 20, QFont.Bold))
|
||||
self.date_label.setStyleSheet(
|
||||
"color: #aaaaaa; background: transparent; border: none;"
|
||||
)
|
||||
self.date_label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
|
||||
layout.addWidget(self.date_label)
|
||||
|
||||
@@ -210,7 +261,7 @@ class TopBarWidget(QFrame):
|
||||
self.clock_label.setFont(QFont("Courier New", 42, QFont.Bold))
|
||||
self.clock_label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
|
||||
self.clock_label.setMinimumWidth(220)
|
||||
self._style_clock()
|
||||
self._style_clock_and_date()
|
||||
layout.addWidget(self.clock_label)
|
||||
|
||||
def _style_theme_btn(self):
|
||||
@@ -224,24 +275,29 @@ class TopBarWidget(QFrame):
|
||||
}}
|
||||
QPushButton:hover {{
|
||||
background-color: {theme['accent']};
|
||||
color: #000000;
|
||||
color: {'#ffffff' if not theme['is_light'] else '#000000'};
|
||||
}}
|
||||
QPushButton:pressed {{
|
||||
background-color: {theme['accent_dim']};
|
||||
}}
|
||||
""")
|
||||
|
||||
def _style_clock(self):
|
||||
def _style_clock_and_date(self):
|
||||
theme = THEMES[self._theme_index]
|
||||
self.clock_label.setStyleSheet(
|
||||
f"color: {theme['accent']}; background: transparent; border: none;"
|
||||
)
|
||||
# Date color adapts to light/dark
|
||||
date_color = '#555555' if theme['is_light'] else '#aaaaaa'
|
||||
self.date_label.setStyleSheet(
|
||||
f"color: {date_color}; background: transparent; border: none;"
|
||||
)
|
||||
|
||||
def _cycle_theme(self):
|
||||
self._theme_index = (self._theme_index + 1) % len(THEMES)
|
||||
self._apply_bar_style()
|
||||
self._style_theme_btn()
|
||||
self._style_clock()
|
||||
self._style_clock_and_date()
|
||||
self.theme_changed.emit(THEMES[self._theme_index])
|
||||
|
||||
def _update(self):
|
||||
|
||||
Reference in New Issue
Block a user