Various tweaks to theme, more code coverage

This commit is contained in:
Miguel Jacq 2025-11-06 11:47:00 +11:00
parent c3b83b0238
commit 7c3ec19748
Signed by: mig5
GPG key ID: 59B3F0C24135C6A9
17 changed files with 812 additions and 49 deletions

View file

@ -1 +0,0 @@
from .main import main

View file

@ -359,8 +359,8 @@ class MainWindow(QMainWindow):
def _apply_link_css(self):
if self.themes and self.themes.current() == Theme.DARK:
anchor = "#FFA500" # Orange links
visited = "#B38000" # Visited links color
anchor = Theme.ORANGE_ANCHOR.value
visited = Theme.ORANGE_ANCHOR_VISITED.value
css = f"""
a {{ color: {anchor}; text-decoration: underline; }}
a:visited {{ color: {visited}; }}
@ -385,31 +385,35 @@ class MainWindow(QMainWindow):
app_pal = QApplication.instance().palette()
if theme == Theme.DARK:
orange = QColor("#FFA500")
black = QColor(0, 0, 0)
highlight = QColor(Theme.ORANGE_ANCHOR.value)
black = QColor(0, 0, 0)
highlight_css = Theme.ORANGE_ANCHOR.value
# Per-widget palette: selection color inside the date grid
pal = self.calendar.palette()
pal.setColor(QPalette.Highlight, orange)
pal.setColor(QPalette.Highlight, highlight)
pal.setColor(QPalette.HighlightedText, black)
self.calendar.setPalette(pal)
# Stylesheet: nav bar + selected-day background
self.calendar.setStyleSheet("""
QWidget#qt_calendar_navigationbar { background-color: #FFA500; }
QCalendarWidget QToolButton { color: black; }
QCalendarWidget QToolButton:hover { background-color: rgba(255,165,0,0.20); }
self.calendar.setStyleSheet(
f"""
QWidget#qt_calendar_navigationbar {{ background-color: {highlight_css}; }}
QCalendarWidget QToolButton {{ color: black; }}
QCalendarWidget QToolButton:hover {{ background-color: rgba(255,165,0,0.20); }}
/* Selected day color in the table view */
QCalendarWidget QTableView:enabled {
selection-background-color: #FFA500;
QCalendarWidget QTableView:enabled {{
selection-background-color: {highlight_css};
selection-color: black;
}
}}
/* Optional: keep weekday header readable */
QCalendarWidget QTableView QHeaderView::section {
QCalendarWidget QTableView QHeaderView::section {{
background: transparent;
color: palette(windowText);
}
""")
}}
"""
)
else:
# Back to app defaults in light/system
self.calendar.setPalette(app_pal)

View file

@ -259,6 +259,7 @@ class SettingsDialog(QDialog):
@Slot(bool)
def _save_key_btn_clicked(self, checked: bool):
self.key = ""
if checked:
if not self.key:
p1 = KeyPrompt(
@ -270,8 +271,6 @@ class SettingsDialog(QDialog):
self.save_key_btn.blockSignals(False)
return
self.key = p1.key() or ""
else:
self.key = ""
@Slot(bool)
def _compact_btn_clicked(self):

View file

@ -10,6 +10,8 @@ class Theme(Enum):
SYSTEM = "system"
LIGHT = "light"
DARK = "dark"
ORANGE_ANCHOR = "#FFA500"
ORANGE_ANCHOR_VISITED = "#B38000"
@dataclass
@ -87,8 +89,8 @@ class ThemeManager(QObject):
pal.setColor(QPalette.BrightText, QColor(255, 84, 84))
pal.setColor(QPalette.Highlight, focus)
pal.setColor(QPalette.HighlightedText, QColor(0, 0, 0))
pal.setColor(QPalette.Link, QColor("#FFA500"))
pal.setColor(QPalette.LinkVisited, QColor("#B38000"))
pal.setColor(QPalette.Link, QColor(Theme.ORANGE_ANCHOR.value))
pal.setColor(QPalette.LinkVisited, QColor(Theme.ORANGE_ANCHOR_VISITED.value))
return pal