mirror of
https://github.com/ankitects/anki.git
synced 2025-11-11 07:07:13 -05:00
Create dataclass for variables
This commit is contained in:
parent
63155b1361
commit
5724a004b9
3 changed files with 18 additions and 12 deletions
|
|
@ -14,6 +14,7 @@ from anki.collection import BrowserRow
|
|||
from anki.notes import NoteId
|
||||
from aqt import colors
|
||||
from aqt.qt import QColor
|
||||
from aqt.theme import AnkiVariable
|
||||
from aqt.utils import tr
|
||||
|
||||
Column = Columns.Column
|
||||
|
|
@ -49,7 +50,7 @@ class CellRow:
|
|||
) -> None:
|
||||
self.refreshed_at: float = time.time()
|
||||
self.cells: tuple[Cell, ...] = tuple(Cell(*cell) for cell in cells)
|
||||
self.color: dict[str, str] | None = backend_color_to_aqt_color(color)
|
||||
self.color: AnkiVariable | None = backend_color_to_aqt_color(color)
|
||||
self.font_name: str = font_name or "arial"
|
||||
self.font_size: int = font_size if font_size > 0 else 12
|
||||
|
||||
|
|
@ -76,8 +77,8 @@ class CellRow:
|
|||
return row
|
||||
|
||||
|
||||
def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> dict[str, str] | None:
|
||||
temp_color = {}
|
||||
def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> AnkiVariable | None:
|
||||
temp_color = None
|
||||
|
||||
if color == BrowserRow.COLOR_MARKED:
|
||||
temp_color = colors.STATE_MARKED
|
||||
|
|
@ -101,8 +102,8 @@ def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> dict[str, str] | No
|
|||
return adjusted_bg_color(temp_color)
|
||||
|
||||
|
||||
def adjusted_bg_color(color: dict[str, str]) -> dict[str, str]:
|
||||
if "light" in color and "dark" in color:
|
||||
def adjusted_bg_color(color: AnkiVariable) -> AnkiVariable:
|
||||
if color:
|
||||
color.light = color.light.lighter(150).name()
|
||||
color.dark = color.dark.darker(150).name()
|
||||
return color
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from typing import cast
|
|||
|
||||
from aqt import colors
|
||||
from aqt.qt import *
|
||||
from aqt.theme import theme_manager
|
||||
from aqt.theme import AnkiVariable, theme_manager
|
||||
|
||||
|
||||
class Switch(QAbstractButton):
|
||||
|
|
@ -19,8 +19,8 @@ class Switch(QAbstractButton):
|
|||
radius: int = 10,
|
||||
left_label: str = "",
|
||||
right_label: str = "",
|
||||
left_color: dict[str, str] = colors.ACCENT_CARD,
|
||||
right_color: dict[str, str] = colors.ACCENT_NOTE,
|
||||
left_color: AnkiVariable = colors.ACCENT_CARD,
|
||||
right_color: AnkiVariable = colors.ACCENT_NOTE,
|
||||
parent: QWidget = None,
|
||||
) -> None:
|
||||
super().__init__(parent=parent)
|
||||
|
|
|
|||
|
|
@ -26,11 +26,16 @@ from aqt.qt import (
|
|||
Qt,
|
||||
)
|
||||
|
||||
@dataclass
|
||||
class AnkiVariable:
|
||||
light: str
|
||||
dark: str
|
||||
comment: str
|
||||
|
||||
@dataclass
|
||||
class ColoredIcon:
|
||||
path: str
|
||||
color: dict[str, str]
|
||||
color: AnkiVariable
|
||||
|
||||
def current_color(self, night_mode: bool) -> str:
|
||||
if night_mode:
|
||||
|
|
@ -38,7 +43,7 @@ class ColoredIcon:
|
|||
else:
|
||||
return self.color.get("light", "")
|
||||
|
||||
def with_color(self, color: dict[str, str]) -> ColoredIcon:
|
||||
def with_color(self, color: AnkiVariable) -> ColoredIcon:
|
||||
return ColoredIcon(path=self.path, color=color)
|
||||
|
||||
|
||||
|
|
@ -176,11 +181,11 @@ class ThemeManager:
|
|||
"Returns body classes used when showing a card."
|
||||
return f"card card{card_ord+1} {self.body_class(night_mode)}"
|
||||
|
||||
def var(self, vars: dict[str, str]) -> str:
|
||||
def var(self, vars: AnkiVariable) -> str:
|
||||
"""Given day/night colors/props, return the correct one for the current theme."""
|
||||
return vars["dark" if self.night_mode else "light"]
|
||||
|
||||
def qcolor(self, colors: dict[str, str]) -> QColor:
|
||||
def qcolor(self, colors: AnkiVariable) -> QColor:
|
||||
return QColor(self.var(colors))
|
||||
|
||||
def _determine_night_mode(self) -> bool:
|
||||
|
|
|
|||
Loading…
Reference in a new issue