From 0c89df9be987008e55c1b336489c41290653434b Mon Sep 17 00:00:00 2001 From: ThanosApollo Date: Thu, 1 Sep 2022 07:41:39 +0300 Subject: Remove anki addons --- .../share/Anki2/addons21/anki_reworked/__init__.py | 705 --------------------- .../share/Anki2/addons21/anki_reworked/config.json | 8 - .../share/Anki2/addons21/anki_reworked/config.md | 9 - .../share/Anki2/addons21/anki_reworked/config.py | 22 - .../addons21/anki_reworked/files/BottomBar.css | 40 -- .../addons21/anki_reworked/files/CardLayout.css | 1 - .../addons21/anki_reworked/files/DeckBrowser.css | 48 -- .../Anki2/addons21/anki_reworked/files/Editor.css | 1 - .../addons21/anki_reworked/files/Overview.css | 59 -- .../Anki2/addons21/anki_reworked/files/QAbout.css | 0 .../addons21/anki_reworked/files/QAddCards.css | 1 - .../addons21/anki_reworked/files/QAddonsDialog.css | 0 .../addons21/anki_reworked/files/QBrowser.css | 0 .../addons21/anki_reworked/files/QEditCurrent.css | 0 .../files/QFilteredDeckConfigDialog.css | 0 .../addons21/anki_reworked/files/QNewDeckStats.css | 3 - .../addons21/anki_reworked/files/QPreferences.css | 0 .../addons21/anki_reworked/files/Reviewer.css | 9 - .../anki_reworked/files/ReviewerBottomBar.css | 60 -- .../addons21/anki_reworked/files/TopToolbar.css | 25 - .../Anki2/addons21/anki_reworked/files/global.css | 96 --- .../Anki2/addons21/anki_reworked/files/legacy.css | 18 - .../Anki2/addons21/anki_reworked/manifest.json | 10 - .../share/Anki2/addons21/anki_reworked/meta.json | 1 - .../Anki2/addons21/anki_reworked/themes/Anki.json | 230 ------- .../addons21/anki_reworked/themes/Catppuccin.json | 230 ------- .../Anki2/addons21/anki_reworked/themes/Nord.json | 230 ------- .../Anki2/addons21/anki_reworked/themes/readme.txt | 8 - .../addons21/anki_reworked/user_files/readme.txt | 11 - .../addons21/anki_reworked/utils/css_files.py | 37 -- .../Anki2/addons21/anki_reworked/utils/logger.py | 17 - .../Anki2/addons21/anki_reworked/utils/modules.py | 18 - .../Anki2/addons21/anki_reworked/utils/themes.py | 34 - 33 files changed, 1931 deletions(-) delete mode 100644 .local/share/Anki2/addons21/anki_reworked/__init__.py delete mode 100644 .local/share/Anki2/addons21/anki_reworked/config.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/config.md delete mode 100644 .local/share/Anki2/addons21/anki_reworked/config.py delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/BottomBar.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/CardLayout.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/DeckBrowser.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/Editor.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/Overview.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QAbout.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QAddCards.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QAddonsDialog.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QBrowser.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QEditCurrent.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QFilteredDeckConfigDialog.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QNewDeckStats.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/QPreferences.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/Reviewer.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/ReviewerBottomBar.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/TopToolbar.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/global.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/files/legacy.css delete mode 100644 .local/share/Anki2/addons21/anki_reworked/manifest.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/meta.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/themes/Anki.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/themes/Catppuccin.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/themes/Nord.json delete mode 100644 .local/share/Anki2/addons21/anki_reworked/themes/readme.txt delete mode 100644 .local/share/Anki2/addons21/anki_reworked/user_files/readme.txt delete mode 100644 .local/share/Anki2/addons21/anki_reworked/utils/css_files.py delete mode 100644 .local/share/Anki2/addons21/anki_reworked/utils/logger.py delete mode 100644 .local/share/Anki2/addons21/anki_reworked/utils/modules.py delete mode 100644 .local/share/Anki2/addons21/anki_reworked/utils/themes.py (limited to '.local/share/Anki2/addons21/anki_reworked') diff --git a/.local/share/Anki2/addons21/anki_reworked/__init__.py b/.local/share/Anki2/addons21/anki_reworked/__init__.py deleted file mode 100644 index 81b2627..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/__init__.py +++ /dev/null @@ -1,705 +0,0 @@ -import json -### Custom util functions -from .utils.modules import * -### Logger for debuging -from .utils.logger import logger - -from typing import Any, List, Optional -from PyQt5.QtWidgets import QWidget -from platform import system, version, release -from ctypes import * -# import the main window object (mw) from aqt -from aqt import AnkiQt, DialogManager, mw -from aqt.theme import theme_manager, colors -from aqt import gui_hooks -## QT dialog windows -# Browser import legacy check (2.1.22) -if module_exists("aqt.browser.browser"): - from aqt.browser.browser import Browser -else: - from aqt.browser import Browser -# DeckStats import legacy check -if module_has_attribute("aqt.stats", "NewDeckStats"): - from aqt.stats import DeckStats, NewDeckStats -else: - from aqt.stats import DeckStats -from aqt.addcards import AddCards -from aqt.editcurrent import EditCurrent -from aqt.about import ClosableQDialog -from aqt.preferences import Preferences -from aqt.addons import AddonsDialog -# FilteredDeckConfigDialog import non-legacy check -if module_exists("aqt.filtered_deck"): - from aqt.filtered_deck import FilteredDeckConfigDialog -# QT page views -from aqt.toolbar import Toolbar, TopToolbar -from aqt.deckbrowser import DeckBrowser, DeckBrowserBottomBar -from aqt.overview import Overview, OverviewBottomBar -from aqt.editor import Editor -from aqt.reviewer import Reviewer, ReviewerBottomBar -from aqt.webview import AnkiWebView, WebContent - -### Load config data here -from .config import config, write_config, get_config - -## Addon compatibility fixes -# More Overview Stats 2.1 addon compatibility fix -addon_more_overview_stats_fix = config['addon_more_overview_stats'] -addon_advanced_review_bottom_bar = config['addon_advanced_review_bottom_bar'] - -## Customization -theme = config['theme'] -# Init script/file path -from .utils.css_files import css_files_dir -from .utils.themes import themes, write_theme, get_theme -logger.debug(css_files_dir) -logger.debug(themes) -themes_parsed = get_theme(theme) -color_mode = 2 if theme_manager.get_night_mode() else 1 # 1 = light and 2 = dark - -dwmapi = None -## Darkmode windows titlebar thanks to miere43 -def set_dark_titlebar(window, dwmapi) -> None: - if dwmapi: - handler_window = c_void_p(int(window.winId())) - DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = c_int(19) - DWMWA_USE_IMMERSIVE_DARK_MODE = c_int(20) - windows_version = int(version().split('.')[2]) - attribute = DWMWA_USE_IMMERSIVE_DARK_MODE if windows_version >= 18985 else DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 - if windows_version >= 17763 and int(release()) >= 10: - dwmapi.DwmSetWindowAttribute(handler_window, attribute, byref(c_int(1)), c_size_t(4)) -def set_dark_titlebar_qt(obj, dwmapi, fix=True) -> None: - if dwmapi and theme_manager.get_night_mode(): - set_dark_titlebar(obj, dwmapi) - # Trick to refresh the titlebar after dark titlebar is set - if fix: - obj.showFullScreen() - obj.showNormal() -if system() == "Windows" and theme_manager.get_night_mode(): - dwmapi = WinDLL("dwmapi") - if dwmapi: - dwmapi.DwmSetWindowAttribute.argtypes = [c_void_p, c_int, c_void_p, c_size_t] - dwmapi.DwmSetWindowAttribute.restype = c_int - set_dark_titlebar(mw, dwmapi) -logger.debug(dwmapi) - -### CSS injections -def load_custom_style(): - theme_colors = "" - for color_name in themes_parsed.get("colors"): - color = themes_parsed.get("colors").get(color_name) - if color[3]: - theme_colors += f"{color[3]}: {color[color_mode]};\n " - else: - theme_colors += f"--{color_name.lower().replace('_','-')}: {color[color_mode]};\n " - custom_style = """ - - """ % (theme_colors, config["font"], config["font_size"]) - return custom_style - -## Adds styling on the different webview contents, before the content is set -def on_webview_will_set_content(web_content: WebContent, context: Optional[Any]) -> None: - logger.debug(context) # Logs content being loaded, find out the instance - web_content.css.append(css_files_dir['global']) # Global css - web_content.head += load_custom_style() # Custom styling - # Deckbrowser - if isinstance(context, DeckBrowser): - web_content.css.append(css_files_dir['DeckBrowser']) - # TopToolbar - elif isinstance(context, TopToolbar): - web_content.css.append(css_files_dir['TopToolbar']) - # BottomToolbar (Buttons) - elif isinstance(context, DeckBrowserBottomBar) or isinstance(context, OverviewBottomBar): - web_content.css.append(css_files_dir['BottomBar']) - # Overview - elif isinstance(context, Overview): - if addon_more_overview_stats_fix: - web_content.head += "" - web_content.css.append(css_files_dir['Overview']) - # Editor - elif isinstance(context, Editor): - web_content.css.append(css_files_dir['Editor']) - # Reviewer - elif isinstance(context, Reviewer): - web_content.css.append(css_files_dir['Reviewer']) - elif isinstance(context, ReviewerBottomBar): - if addon_advanced_review_bottom_bar: - #web_content.head += "" - web_content.body += "" - else: - web_content.css.append(css_files_dir['BottomBar']) - web_content.css.append(css_files_dir['ReviewerBottomBar']) - # Button padding bottom - web_content.body += "
" - web_content.body += "
" - mw.bottomWeb.adjustHeightToFit() - # CardLayout - elif context_name_includes(context, "aqt.clayout.CardLayout"): - web_content.css.append(css_files_dir['CardLayout']) - ## Legacy webviews - # ResetRequired on card edit (legacy) - elif context_name_includes(context, "aqt.main.ResetRequired"): - web_content.css.append(css_files_dir['legacy']) -gui_hooks.webview_will_set_content.append(on_webview_will_set_content) - -# TopToolbar styling fix through height change by adding
tag -def redraw_toolbar() -> None: - # Reload the webview content with added
tag, making the bar larger in height - mw.toolbar.web.setFixedHeight(60) - mw.toolbar.web.eval(""" - var br = document.createElement("br"); - document.body.appendChild(br); - """) - - if 'Qt6' in QPalette.ColorRole.__module__: - mw.toolbar.web.eval(""" - var div = document.createElement("div"); - div.style.width = "5px"; - div.style.height = "10px"; - document.body.appendChild(div); - """) - # Auto adjust the height, then redraw the toolbar - mw.toolbar.web.adjustHeightToFit() - mw.toolbar.redraw() - -def redraw_toolbar_legacy(links: List[str], _: Toolbar) -> None: - # Utilizing the link hook, we inject
tag through javascript - inject_br = """ - - """ - mw.toolbar.web.setFixedHeight(60) - links.append(inject_br) - mw.toolbar.web.adjustHeightToFit() - -if attribute_exists(gui_hooks, "main_window_did_init"): - pass - #gui_hooks.main_window_did_init.append(redraw_toolbar) -elif attribute_exists(gui_hooks, "top_toolbar_did_init_links"): - gui_hooks.top_toolbar_did_init_links.append(redraw_toolbar_legacy) - pass - -# Dialog window styling -def on_dialog_manager_did_open_dialog(dialog_manager: DialogManager, dialog_name: str, dialog_instance: QWidget) -> None: - logger.debug(dialog_name) - dialog: AnkiQt = dialog_manager._dialogs[dialog_name][1] - # If dwmapi found and nightmode is enabled, set dark titlebar to dialog window - set_dark_titlebar_qt(dialog, dwmapi) - # AddCards - if dialog_name == "AddCards": - context: AddCards = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QAddCards'], encoding='utf-8').read()) - # Addons popup - elif dialog_name == "AddonsDialog": - context: AddonsDialog = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QAddonsDialog'], encoding='utf-8').read()) - # Browser - elif dialog_name == "Browser": - context: Browser = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QBrowser'], encoding='utf-8').read()) - pass - # EditCurrent - elif dialog_name == "EditCurrent": - context: EditCurrent = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QEditCurrent'], encoding='utf-8').read()) - # FilteredDeckConfigDialog - elif module_exists("aqt.filtered_deck") and dialog_name == "FilteredDeckConfigDialog": - context: FilteredDeckConfigDialog = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QFilteredDeckConfigDialog'], encoding='utf-8').read()) - # Statistics / NewDeckStats - elif dialog_name == "NewDeckStats": - context: NewDeckStats = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QNewDeckStats'], encoding='utf-8').read()) - # About - elif dialog_name == "About": - context: ClosableQDialog = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QAbout'], encoding='utf-8').read()) - # Preferences - elif dialog_name == "Preferences": - context: Preferences = dialog_manager._dialogs[dialog_name][1] - context.setStyleSheet(open(css_files_dir['QPreferences'], encoding='utf-8').read()) - # sync_log - kore ha nani desu??? - elif dialog_name == "sync_log": - pass - -if attribute_exists(gui_hooks, "dialog_manager_did_open_dialog"): - gui_hooks.dialog_manager_did_open_dialog.append(on_dialog_manager_did_open_dialog) -else: - ## Legacy dialog window styling - # Sad monkey patch, instead of hooks :c - # setupDialogGC is being called on almost all dialog windows, utilizing this, the - # function is used as a type of hook to inject CSS styling on the QT instances - def monkey_setup_dialog_gc(obj: Any) -> None: - obj.finished.connect(lambda: mw.gcWindow(obj)) - logger.debug(obj) - set_dark_titlebar_qt(obj, dwmapi) - # AddCards - if isinstance(obj, AddCards): - obj.setStyleSheet(open(css_files_dir['QAddCards'], encoding='utf-8').read()) - # EditCurrent - elif isinstance(obj, EditCurrent): - obj.setStyleSheet(open(css_files_dir['QEditCurrent'], encoding='utf-8').read()) - # Statistics / DeckStats - elif isinstance(obj, DeckStats): - obj.setStyleSheet(open(css_files_dir['QNewDeckStats'], encoding='utf-8').read()) - # About - elif isinstance(obj, ClosableQDialog): - obj.setStyleSheet(open(css_files_dir['QAbout'], encoding='utf-8').read()) - # Preferences - ## Haven't found a solution for preferences yet :c - mw.setupDialogGC = monkey_setup_dialog_gc # Should be rare enough for other addons to also patch this I hope. - - # Addons popup - if attribute_exists(gui_hooks, "addons_dialog_will_show"): - def on_addons_dialog_will_show(dialog: AddonsDialog) -> None: - logger.debug(dialog) - set_dark_titlebar_qt(dialog, dwmapi) - dialog.setStyleSheet(open(css_files_dir['QAddonsDialog'], encoding='utf-8').read()) - gui_hooks.addons_dialog_will_show.append(on_addons_dialog_will_show) - # Browser - if attribute_exists(gui_hooks, "browser_will_show"): - def on_browser_will_show(browser: Browser) -> None: - logger.debug(browser) - set_dark_titlebar_qt(browser, dwmapi) - browser.setStyleSheet(open(css_files_dir['QBrowser'], encoding='utf-8').read()) - gui_hooks.browser_will_show.append(on_browser_will_show) - -## CONFIG DIALOG -from aqt import mw, gui_hooks -from aqt.qt import * -from .config import config -from aqt.utils import showInfo -from aqt.webview import AnkiWebView - -class ThemeEditor(QDialog): - def __init__(self, parent, *args, **kwargs): - super().__init__(parent=parent or mw, *args, **kwargs) - self.config_editor = parent - self.setWindowModality(Qt.ApplicationModal) - self.setWindowTitle(f'Anki-redesign Advanced Editor') - self.setSizePolicy(self.make_size_policy()) - self.setMinimumSize(420, 420) - self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) - set_dark_titlebar_qt(self, dwmapi, fix=False) - # Root layout - self.root_layout = QVBoxLayout(self) - # Main layout - self.layout = QVBoxLayout() - self.textedit = QTextEdit() - themes_plaintext = open(themes[theme], encoding='utf-8').read() - self.textedit.setPlainText(themes_plaintext) - self.layout.addWidget(self.textedit) - self.root_layout.addLayout(self.layout) - self.root_layout.addLayout(self.make_button_box()) - - def save_edit(self) -> None: - themes_parsed = json.loads(self.textedit.toPlainText()) - write_theme(themes[theme], themes_parsed) - self.config_editor.update() - self.accept() - - def make_button_box(self) -> QWidget: - def cancel(): - button = QPushButton('Cancel') - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - qconnect(button.clicked, self.accept) - return button - def save(): - button = QPushButton('Save') - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - button.setDefault(True) - button.setShortcut("Ctrl+Return") - button.clicked.connect(lambda _: self.save_edit()) - return button - - button_box = QHBoxLayout() - button_box.addStretch() - button_box.addWidget(cancel()) - button_box.addWidget(save()) - return button_box - - def make_size_policy(self) -> QSizePolicy: - size_policy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) - size_policy.setHorizontalStretch(0) - size_policy.setVerticalStretch(0) - size_policy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) - return size_policy - -class ConfigDialog(QDialog): - def __init__(self, parent: QWidget, *args, **kwargs): - super().__init__(parent=parent or mw, *args, **kwargs) - self.setWindowModality(Qt.ApplicationModal) - self.setWindowTitle(f'Anki-redesign Configuration') - self.setSizePolicy(self.make_size_policy()) - self.setMinimumSize(420, 580) - self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) - set_dark_titlebar_qt(self, dwmapi, fix=False) - - # Color/theme - ## Loads theme color - self.theme_colors = themes_parsed.get("colors") - self.updates = [] - self.theme_general = ["TEXT_FG", "WINDOW_BG", "FRAME_BG", "BUTTON_BG", "TOOLTIP_BG", "BORDER", "MEDIUM_BORDER", "FAINT_BORDER", "HIGHLIGHT_BG", "HIGHLIGHT_FG" , "LINK", "DISABLED", "SLIGHTLY_GREY_TEXT", "PRIMARY_COLOR"] - self.theme_decks = ["CURRENT_DECK", "NEW_COUNT", "LEARN_COUNT", "REVIEW_COUNT", "ZERO_COUNT"] - self.theme_browse = ["BURIED_FG", "SUSPENDED_FG", "MARKED_BG", "FLAG1_BG", "FLAG1_FG", "FLAG2_BG", "FLAG2_FG", "FLAG3_BG", "FLAG3_FG", "FLAG4_BG", "FLAG4_FG", "FLAG5_BG", "FLAG5_FG", "FLAG6_BG", "FLAG6_FG", "FLAG7_BG", "FLAG7_FG"] - self.theme_extra = [] - - # Root layout - self.root_layout = QVBoxLayout(self) - # Main layout - self.layout = QVBoxLayout() - ## Initialize tab screen - self.tabs = QTabWidget(objectName="tabs") - self.tabs.setFocusPolicy(Qt.FocusPolicy.StrongFocus) - self.tab_general = QWidget(objectName="general") - self.tab_general.setLayout(self.create_color_picker_layout(self.theme_general)) - self.tab_decks = QWidget(objectName="decks") - self.tab_decks.setLayout(self.create_color_picker_layout(self.theme_decks)) - self.tab_browse = QWidget(objectName="browse") - self.tab_browse.setLayout(self.create_color_picker_layout(self.theme_browse)) - self.tab_extra = QWidget(objectName="extra") - self.tab_extra.setLayout(self.create_color_picker_layout(self.theme_extra)) - - self.tab_settings = QWidget(objectName="settings") - self.settings_layout = QFormLayout() - self.theme_label = QLabel("Theme:") - self.theme_label.setStyleSheet('QLabel { font-size: 14px; font-weight: bold }') - self.settings_layout.addRow(self.theme_label) - for key in themes: - self.radio = self.radio_button(key) - self.settings_layout.addRow(key, self.radio) - self.settings_layout.addRow(QLabel()) - - self.font_label = QLabel("Font:") - self.font_label.setStyleSheet('QLabel { font-size: 14px; font-weight: bold }') - self.settings_layout.addRow(self.font_label) - self.interface_font = QFontComboBox() - self.interface_font.setFixedWidth(200) - self.interface_font.setCurrentFont(QFont(config["font"])) - self.settings_layout.addRow(self.interface_font) - - self.font_size = QSpinBox() - self.font_size.setFixedWidth(200) - self.font_size.setValue(config["font_size"]) - self.font_size.setSuffix("px") - self.settings_layout.addRow(self.font_size) - - self.settings_layout.addRow(QLabel()) - - - self.fix_label = QLabel("Addon-Compatibility Fixes: ") - self.fix_label.setStyleSheet('QLabel { font-size: 14px; font-weight: bold }') - self.settings_layout.addRow(self.fix_label) - self.reload_theme = self.checkbox("theme_reload") - self.settings_layout.addRow("QT6 theme on-start reload fix", self.reload_theme) - self.addon_more_overview_stats_check = self.checkbox("addon_more_overview_stats") - self.settings_layout.addRow("More Overview Stats 21", self.addon_more_overview_stats_check) - self.addon_advanced_review_bottom_bar_check = self.checkbox("addon_advanced_review_bottom_bar") - self.settings_layout.addRow("Advanced Review Bottom Bar", self.addon_advanced_review_bottom_bar_check) - - self.tab_settings.setLayout(self.settings_layout) - - ## Add tabs - self.tabs.resize(300,200) - self.tabs.addTab(self.tab_settings,"Settings") - self.tabs.addTab(self.tab_general,"General") - self.tabs.addTab(self.tab_decks,"Decks") - self.tabs.addTab(self.tab_browse,"Browse") - #self.tabs.addTab(self.tab_extra,"Extra") - - ## Add tabs to widget - self.layout.addWidget(self.tabs) - - self.root_layout.addLayout(self.layout) - self.root_layout.addLayout(self.make_button_box()) - self.setLayout(self.root_layout) - self.show() - - def update(self) -> None: - global themes_parsed - themes_parsed = get_theme(theme) - self.theme_colors = themes_parsed.get("colors") - for update in self.updates: - update() - - def checkbox(self, key: str) -> QCheckBox: - checkbox = QCheckBox() - - def update() -> None: - value = config[key] - checkbox.setChecked(value) - - self.updates.append(update) - update() - return checkbox - - def radio_button(self, key: str) -> QRadioButton: - radio = QRadioButton() - - def update() -> None: - if theme == key: - radio.setChecked(True) - elif radio.isChecked(): - radio.setChecked(False) - - def toggle(checked) -> None: - global theme - if checked: - theme = key - self.update() - - self.updates.append(update) - radio.toggled.connect(lambda checked: toggle(checked)) - update() - return radio - - def color_input(self, key: str) -> QPushButton: - button = QPushButton() - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - button.setFixedWidth(25) - button.setFixedHeight(25) - - color_dialog = QColorDialog(self) - - def set_color(rgb: str) -> None: - # Check for valid color - color = QColor() - color.setNamedColor(rgb) - if not color.isValid(): - return - # Update color - color_dialog.setCurrentColor(color) - button.setStyleSheet('QPushButton{ background-color: "%s"; border: none; border-radius: 2px}' % rgb) - - def update() -> None: - rgb = self.theme_colors.get(key)[color_mode] - set_color(rgb) - - def save(color: QColor) -> None: - rgb = color.name(QColor.NameFormat.HexRgb) - self.theme_colors[key][color_mode] = rgb - set_color(rgb) - - self.updates.append(update) - color_dialog.colorSelected.connect(lambda color: save(color)) - button.clicked.connect(lambda _: color_dialog.exec()) - return button - - def create_color_picker_layout(self, colors) -> None: - layout = QFormLayout() - for key in colors: - self.test = self.color_input(key) - layout.addRow(self.theme_colors.get(key)[0], self.test) - return layout - - def theme_file_editor(self) -> None: - diag = ThemeEditor(self) - diag.show() - - def make_button_box(self) -> QWidget: - def advanced(): - button = QPushButton('Advanced') - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - qconnect(button.clicked, self.theme_file_editor) - return button - def cancel(): - button = QPushButton('Cancel') - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - qconnect(button.clicked, self.accept) - return button - def save(): - button = QPushButton('Save') - button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) - button.setDefault(True) - button.setShortcut("Ctrl+Return") - button.clicked.connect(lambda _: self.save()) - return button - - button_box = QHBoxLayout() - button_box.addWidget(advanced()) - button_box.addStretch() - button_box.addWidget(cancel()) - button_box.addWidget(save()) - return button_box - - def make_size_policy(self) -> QSizePolicy: - size_policy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) - size_policy.setHorizontalStretch(0) - size_policy.setVerticalStretch(0) - size_policy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) - return size_policy - - def save(self) -> None: - # Save settings and update config - global config, color_mode - config["font"] = self.interface_font.currentFont().family() - config["font_size"] = self.font_size.value() - config['addon_more_overview_stats'] = self.addon_more_overview_stats_check.isChecked() - config['addon_advanced_review_bottom_bar'] = self.addon_advanced_review_bottom_bar_check.isChecked() - config['theme_reload'] = self.reload_theme.isChecked() - config["theme"] = theme - write_config(config) - config = get_config() - - # Write and update theme - color_mode = 2 if theme_manager.get_night_mode() else 1 # 1 = light and 2 = dark - themes_parsed["colors"] = self.theme_colors - write_theme(themes[theme], themes_parsed) - update_theme() - - # mw.reset() - # ShowInfo for both new and legacy support - showInfo(_("Changes will take effect when you restart Anki.")) - #showInfo(tr.preferences_changes_will_take_effect_when_you()) - self.accept() - -def check_legacy_colors() -> None: - try: - _ = colors.items() - except: - return False - return True - -def refresh_all_windows() -> None: - # Redraw top toolbar - mw.toolbar.draw() - if attribute_exists(gui_hooks, "top_toolbar_did_init_links"): - gui_hooks.top_toolbar_did_init_links.append(lambda a,b: [redraw_toolbar_legacy(a,b), gui_hooks.top_toolbar_did_init_links.remove(print)]) - - # Redraw main body - if mw.state == "review": - mw.reviewer._initWeb() - if mw.reviewer.state == "question": - mw.reviewer._showQuestion() - else: - mw.reviewer._showAnswer() - elif mw.state == "overview": - mw.overview.refresh() - elif mw.state == "deckBrowser": - mw.deckBrowser.show() - - if attribute_exists(gui_hooks, "top_toolbar_did_init_links"): - gui_hooks.top_toolbar_did_init_links.remove(redraw_toolbar) - -def update_theme() -> None: - themes_parsed = get_theme(theme) - theme_colors = themes_parsed.get("colors") - # Apply theme on colors - ncolors = {} - # Legacy color check - logger.debug(dir(colors)) - legacy = check_legacy_colors() - for color_name in theme_colors: - c = theme_colors.get(color_name) - ncolors[color_name] = c[color_mode] - if legacy: - colors[f"day{c[3].replace('--','-')}"] = c[1] - colors[f"night{c[3].replace('--','-')}"] = c[2] - # Potentially add fusion fixes too? - else: - logger.debug(getattr(colors, color_name, False)) - if getattr(colors, color_name, False): - setattr(colors, color_name, (c[1], c[2])) - # Apply theme on palette - apply_theme(ncolors) - refresh_all_windows() - -def apply_theme(colors) -> None: - # Load palette - palette = QPalette() - # QT mappings - #logger.debug(QPalette.ColorRole.__dict__) - color_map = { - QPalette.ColorRole.Window: "WINDOW_BG", - QPalette.ColorRole.WindowText: "TEXT_FG", - QPalette.ColorRole.Base: "FRAME_BG", - QPalette.ColorRole.AlternateBase: "WINDOW_BG", - QPalette.ColorRole.ToolTipBase: "TOOLTIP_BG", - QPalette.ColorRole.ToolTipText: "TEXT_FG", - QPalette.ColorRole.Text: "TEXT_FG", - QPalette.ColorRole.Button: "BUTTON_BG", - QPalette.ColorRole.ButtonText: "TEXT_FG", - QPalette.ColorRole.BrightText: "HIGHLIGHT_FG", - QPalette.ColorRole.HighlightedText: "HIGHLIGHT_FG", - QPalette.ColorRole.Link: "LINK", - QPalette.ColorRole.NoRole: "WINDOW_BG", - } - for color_role in color_map: - palette.setColor(color_role, QColor(colors[color_map[color_role]])) - - highlight_bg = QColor(colors["HIGHLIGHT_BG"]) - highlight_bg.setAlpha(64) - palette.setColor(QPalette.ColorRole.Highlight, highlight_bg) - - disabled_color = QColor(colors["DISABLED"]) - palette.setColor(QPalette.ColorRole.PlaceholderText, disabled_color) - palette.setColor(QPalette.ColorGroup.Disabled, QPalette.ColorRole.Text, disabled_color) - palette.setColor(QPalette.ColorGroup.Disabled, QPalette.ColorRole.ButtonText, disabled_color) - palette.setColor(QPalette.ColorGroup.Disabled, QPalette.ColorRole.HighlightedText, disabled_color) - - # Update palette - mw.app.setPalette(palette) - theme_manager.default_palette = palette - theme_manager._apply_style(mw.app) - - # Update webview bg - AnkiWebView._getWindowColor = lambda *args: QColor(colors["WINDOW_BG"]) - AnkiWebView.get_window_bg_color = lambda *args: QColor(colors["WINDOW_BG"]) - -# Create menu actions -def create_menu_action(parent: QWidget, dialog_class: QDialog, dialog_name: str) -> QAction: - def open_dialog(): - dialog = dialog_class(mw) - return dialog.exec() - - action = QAction(dialog_name, parent) - #qconnect(action.triggered, open_dialog) - action.triggered.connect(open_dialog) - return action - -# Load in the Anki-redesign menu -if not hasattr(mw, 'anki_redesign'): - mw.anki_redesign = QMenu("&Anki-redesign", mw) - mw.form.menubar.insertMenu(mw.form.menuHelp.menuAction(), mw.anki_redesign) - - mw.anki_redesign.addAction(create_menu_action(mw.anki_redesign, ConfigDialog, "&Config")) - mw.anki_redesign.addSeparator() - mw.reset() - update_theme() - mw.reset() - - # Rereload view to fix theme change on startup - if 'Qt6' in QPalette.ColorRole.__module__: - logger.debug('QT6 DETECTED....') - config = get_config() - if config["theme_reload"]: - update_theme() - -def on_theme_did_change() -> None: - global color_mode - color_mode = 2 if theme_manager.get_night_mode() else 1 # 1 = light and 2 = dark - update_theme() - logger.debug("THEME CHANGEEEED") - refresh_all_windows() - mw.reset() - update_theme() - - -if attribute_exists(gui_hooks, "theme_did_change"): - gui_hooks.theme_did_change.append(on_theme_did_change) - logger.debug("YEP") \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/config.json b/.local/share/Anki2/addons21/anki_reworked/config.json deleted file mode 100644 index b1e6ac5..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "addon_more_overview_stats": "false", - "addon_advanced_review_bottom_bar": "false", - "font": "Segoe UI", - "font_size": "12", - "theme": "Catppuccin", - "theme_reload": "false" -} diff --git a/.local/share/Anki2/addons21/anki_reworked/config.md b/.local/share/Anki2/addons21/anki_reworked/config.md deleted file mode 100644 index 33498b4..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/config.md +++ /dev/null @@ -1,9 +0,0 @@ -This is the advanced documentation for Anki-redesign's configuration: -Use the built-in config at the menu (Anki-redesign > Config) for a better user experience. - -- addon_more_overview_stats: either `true` or `false` -- addon_advanced_review_bottom_bar: either `true` or `false` -- font: customize own font here -- font_size: customize own font size here -- theme: customize theme here -- theme_reload: either `true` or `false` diff --git a/.local/share/Anki2/addons21/anki_reworked/config.py b/.local/share/Anki2/addons21/anki_reworked/config.py deleted file mode 100644 index 9e508f8..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/config.py +++ /dev/null @@ -1,22 +0,0 @@ -from aqt import mw - -def get_config() -> dict: - config: dict = mw.addonManager.getConfig(__name__) or dict() - ## Addon fix - config['addon_more_overview_stats'] = True if config.get('addon_more_overview_stats', "false").lower() == "true" else False - config['addon_advanced_review_bottom_bar'] = True if config.get('addon_advanced_review_bottom_bar', "false").lower() == "true" else False - ## Customization - config['font'] = config.get('font', "Segoe UI") - config['font_size'] = int(config.get('font_size', "12")) - config['theme'] = config.get('theme', 'Anki') - config['theme_reload'] = True if config.get('theme_reload', "false").lower() == "true" else False - - return config - -def write_config(config): - for key in config.keys(): - if not isinstance(config[key], str): - config[key] = str(config[key]) - mw.addonManager.writeConfig(__name__, config) - -config = get_config() diff --git a/.local/share/Anki2/addons21/anki_reworked/files/BottomBar.css b/.local/share/Anki2/addons21/anki_reworked/files/BottomBar.css deleted file mode 100644 index 1e07817..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/BottomBar.css +++ /dev/null @@ -1,40 +0,0 @@ -body #outer button { - color: var(--text-fg, var(--legacy-text-fg)); - border: none; - border-radius: 15px; - padding: 6px 24px; - margin: 0 5px; - cursor: pointer; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.75; - letter-spacing: 0.02857em; - text-transform: uppercase; - min-width: 64px; - background-color: var(--frame-bg, var(--legacy-frame-bg)); - transition: background 0.2s linear, color 0.3s ease-out; - box-shadow: rgb(0 0 0 / 20%) 0px 3px 7px -2px, - rgb(0 0 0 / 5%) 0px 5px 10px 0px, rgb(0 0 0 / 12%) 0px 1px 5px 0px; -} -body.nightMode #outer button { - background: initial; - background-color: var(--frame-bg, var(--legacy-frame-bg)); -} - -body #outer button:focus, -body #outer button.focus { - background-color: var(--primary-color); - color: var(--frame-bg, var(--legacy-frame-bg)); - outline: none; -} -body.nightMode #outer button:focus, -body.nightMode #outer button.focus { - color: var(--text-fg, var(--legacy-text-fg)); -} - -body #outer button:hover { - background-color: rgba(0, 0, 0, 0.05); -} -body.nightMode #outer button:hover { - background-color: rgba(255, 255, 255, 0.1); -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/CardLayout.css b/.local/share/Anki2/addons21/anki_reworked/files/CardLayout.css deleted file mode 100644 index 8b13789..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/CardLayout.css +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.local/share/Anki2/addons21/anki_reworked/files/DeckBrowser.css b/.local/share/Anki2/addons21/anki_reworked/files/DeckBrowser.css deleted file mode 100644 index 0b8f82c..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/DeckBrowser.css +++ /dev/null @@ -1,48 +0,0 @@ -body table:first-of-type { - width: 90%; - max-width: 600px; -} -body table:first-of-type th { - padding: 0 6px; -} -body table:first-of-type td { - padding: 6px; -} -body table:first-of-type tr.deck td { - border-bottom: none; -} -body table:first-of-type tr.deck td.opts { - padding-left: 20px; -} -body table:first-of-type tr.deck td.opts > a { - display: flex; -} -body table:first-of-type tr.current { - background-color: transparent; -} -body table:first-of-type tr.current td { - background-color: var(--faint-border, var(--legacy-faint-border)); -} -body table:first-of-type tr.current td:first-of-type { - border-radius: 10px 0 0 10px; -} -body table:first-of-type tr.current td:last-of-type { - border-radius: 0 10px 10px 0; -} -body table:first-of-type tr a { - color: var(--text-fg, var(--legacy-text-fg)) !important; -} -body table:first-of-type tr a.filtered { - color: var(--link, var(--legacy-link)) !important; -} -a.deck { - padding: 5px 10px 5px 5px; - transition: padding 1s, background-color 0.5s, margin-right 1s; - border-radius: 6px; - margin-right: 5px; -} -body table:first-of-type tr a.deck:hover { - padding: 5px 10px 5px 10px; - background-color: rgba(0, 0, 0, 0.1); - margin-right: 0; -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/Editor.css b/.local/share/Anki2/addons21/anki_reworked/files/Editor.css deleted file mode 100644 index 8b13789..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/Editor.css +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.local/share/Anki2/addons21/anki_reworked/files/Overview.css b/.local/share/Anki2/addons21/anki_reworked/files/Overview.css deleted file mode 100644 index 7c7571a..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/Overview.css +++ /dev/null @@ -1,59 +0,0 @@ -body .descmid { - text-align: center; -} -center > table tr:first-of-type { - display: flex; - flex-direction: column; -} -td table { - width: 50%; -} -td table tr:first-of-type { - display: table-row; - flex-direction: unset; -} -td table tr td:last-of-type { - text-align: right; -} -button#study.but, -button#main.but { - padding: 10px 27px; - box-sizing: border-box; - width: 100%; - margin-bottom: 20px; - - color: var(--text-fg, var(--legacy-text-fg)); - border: none; - border-radius: 15px; - margin: 0 5px; - cursor: pointer; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.75; - letter-spacing: 0.02857em; - text-transform: uppercase; - min-width: 64px; - background: initial; - background-color: var(--frame-bg, var(--legacy-frame-bg)); - transition: background 0.2s linear, color 0.3s ease-out; - box-shadow: rgb(0 0 0 / 20%) 0px 3px 7px -2px, - rgb(0 0 0 / 5%) 0px 5px 10px 0px, rgb(0 0 0 / 12%) 0px 1px 5px 0px; -} -body.nightMode button#study.but:hover, -body.nightMode button#main.but:hover { - background-color: rgba(255, 255, 255, 0.1); -} -button#study.but:focus, -button#main.but:focus { - background-color: var(--primary-color) !important; - color: var(--frame-bg, var(--legacy-frame-bg)); - outline: none; -} -body.nightMode button#study.but:focus, -body.nightMode button#main.but:focus { - color: var(--text-fg); -} -button#study.but:hover, -button#main.but:hover { - background-color: rgba(0, 0, 0, 0.05); -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QAbout.css b/.local/share/Anki2/addons21/anki_reworked/files/QAbout.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QAddCards.css b/.local/share/Anki2/addons21/anki_reworked/files/QAddCards.css deleted file mode 100644 index 8b13789..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/QAddCards.css +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QAddonsDialog.css b/.local/share/Anki2/addons21/anki_reworked/files/QAddonsDialog.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QBrowser.css b/.local/share/Anki2/addons21/anki_reworked/files/QBrowser.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QEditCurrent.css b/.local/share/Anki2/addons21/anki_reworked/files/QEditCurrent.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QFilteredDeckConfigDialog.css b/.local/share/Anki2/addons21/anki_reworked/files/QFilteredDeckConfigDialog.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QNewDeckStats.css b/.local/share/Anki2/addons21/anki_reworked/files/QNewDeckStats.css deleted file mode 100644 index 88cb00c..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/QNewDeckStats.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - background-color: red; -} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/files/QPreferences.css b/.local/share/Anki2/addons21/anki_reworked/files/QPreferences.css deleted file mode 100644 index e69de29..0000000 diff --git a/.local/share/Anki2/addons21/anki_reworked/files/Reviewer.css b/.local/share/Anki2/addons21/anki_reworked/files/Reviewer.css deleted file mode 100644 index 9e47f09..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/Reviewer.css +++ /dev/null @@ -1,9 +0,0 @@ -body #typeans { - padding: 8px 12px; - border-radius: 5px; -} -body.card { - width: 90%; - margin: 20px auto; - max-width: 1080px; -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/ReviewerBottomBar.css b/.local/share/Anki2/addons21/anki_reworked/files/ReviewerBottomBar.css deleted file mode 100644 index 768270e..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/ReviewerBottomBar.css +++ /dev/null @@ -1,60 +0,0 @@ -body { - overflow: hidden; -} -body #outer { - border-top: 1px solid transparent; -} -body.nightMode #outer { - border-top-color: transparent; -} -body #outer table#innertable { - padding: 6px; - transform: translateY(8px); -} -body button { - margin: 0; -} -body .stat { - position: relative; - padding-top: 0px; - min-width: 120px; -} -body .stat2 { - padding-top: 0px; - font-weight: normal; -} -td[align="center"] { - position: relative; -} -body .stattxt, -td[align="center"] > span { - position: absolute; - display: block; - left: 50%; - transform: translate(-50%, -13px); - color: var(--text-fg, var(--legacy-text-fg)); -} -body .stattxt#time { - transform: translate(-50%, -6px); -} -body #outer button#ansbut, -body #outer table button { - transform: translateY(-4px); -} -/* ARBb addon fix */ -body #outer.arbb .stat { - min-width: auto; - padding-left: 2px; - padding-right: 2px; -} -body #outer.arbb table#innertable { - padding: initial; - width: calc(100% - 10px); -} -body #outer.arbb button { - /* color: var(--text-fg, var(--legacy-text-fg)); */ - letter-spacing: 0.02857em; - text-transform: uppercase; - margin-left: 2px; - margin-right: 2px; -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/TopToolbar.css b/.local/share/Anki2/addons21/anki_reworked/files/TopToolbar.css deleted file mode 100644 index 3b4b6ee..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/TopToolbar.css +++ /dev/null @@ -1,25 +0,0 @@ -body #outer { - display: flex; - justify-content: center; -} -body center #header { - width: auto; - border-bottom: none; - border-radius: 0 0 12px 12px; - background-color: var(--frame-bg, var(--legacy-frame-bg)); - height: 40px; - box-shadow: rgb(0 0 0 / 10%) 0px 0px 11px -2px, - rgb(0 0 0 / 14%) 0px 2px 2px 0px, rgb(0 0 0 / 12%) 0px 4px 5px 0px; -} -body.nightMode center #header { - background-color: var(--faint-border, var(--legacy-faint-border)); -} -body center #header .hitem { - padding-left: initial; - padding-right: initial; - padding: 0 15px; - color: var(--text-fg, var(--legacy-text-fg)) !important; -} -body center #header a#sync { - color: var(--link, var(--legacy-link)) !important; -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/global.css b/.local/share/Anki2/addons21/anki_reworked/files/global.css deleted file mode 100644 index a145312..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/global.css +++ /dev/null @@ -1,96 +0,0 @@ -:root, -:root .isWin, -:root .isMac, -:root .isLin { - --focus-color: rgba(81, 135, 169, 0.7); -} -/* Force LIGHT MODE Background */ -:root body:not(.nightMode), -:root body.isWin:not(.nightMode), -:root body.isMac:not(.nightMode), -:root body.isLin:not(.nightMode) { - /* Force variable styling on legacy versions */ - --legacy-text-fg: black; - --legacy-frame-bg: white; - --legacy-border: #aaa; - --legacy-medium-border: #b6b6b6; - --legacy-faint-border: #e7e7e7; - --legacy-link: #00a; - --legacy-review-count: #0a0; - --legacy-new-count: #00a; - --legacy-learn-count: #c35617; - --legacy-zero-count: #ddd; - --legacy-slightly-grey-text: #333; - --legacy-highlight-bg: #77ccff; - --legacy-highlight-fg: black; - --legacy-disabled: #777; - --legacy-flag1-fg: #e25252; - --legacy-flag2-fg: #ffb347; - --legacy-flag3-fg: #54c414; - --legacy-flag4-fg: #578cff; - --legacy-flag5-fg: #ff82ee; - --legacy-flag6-fg: #00d1b5; - --legacy-flag7-fg: #9649dd; - --legacy-flag1-bg: #ff9b9b; - --legacy-flag2-bg: #ffb347; - --legacy-flag3-bg: #93e066; - --legacy-flag4-bg: #9dbcff; - --legacy-flag5-bg: #f5a8eb; - --legacy-flag6-bg: #7edbd7; - --legacy-flag7-bg: #cca3f1; - --legacy-buried-fg: #aaaa33; - --legacy-suspended-fg: #dd0; - --legacy-suspended-bg: #ffffb2; - --legacy-marked-bg: #cce; - --legacy-tooltip-bg: #fcfcfc; -} -/* Force DARK MODE Background */ -:root body.nightMode, -:root body.isWin.nightMode, -:root body.isMac.nightMode, -:root body.isLin.nightMode { - /* Force variable styling on legacy versions */ - --legacy-text-fg: white; - --legacy-frame-bg: #3a3a3a; - --legacy-border: #777; - --legacy-medium-border: #444; - --legacy-faint-border: #29292b; - --legacy-link: #77ccff; - --legacy-review-count: #5ccc00; - --legacy-new-count: #77ccff; - --legacy-learn-count: #ff935b; - --legacy-zero-count: #444; - --legacy-slightly-grey-text: #ccc; - --legacy-highlight-bg: #77ccff; - --legacy-highlight-fg: white; - --legacy-disabled: #777; - --legacy-flag1-fg: #ff7b7b; - --legacy-flag2-fg: #f5aa41; - --legacy-flag3-fg: #86ce5d; - --legacy-flag4-fg: #6f9dff; - --legacy-flag5-fg: #f097e4; - --legacy-flag6-fg: #5ccfca; - --legacy-flag7-fg: #9f63d3; - --legacy-flag1-bg: #aa5555; - --legacy-flag2-bg: #ac653a; - --legacy-flag3-bg: #559238; - --legacy-flag4-bg: #506aa3; - --legacy-flag5-bg: #975d8f; - --legacy-flag6-bg: #399185; - --legacy-flag7-bg: #624b77; - --legacy-buried-fg: #777733; - --legacy-suspended-fg: #ffffb2; - --legacy-suspended-bg: #aaaa33; - --legacy-marked-bg: #77c; - --legacy-tooltip-bg: #272727; -} - -body { - background-color: var(--window-bg) !important; -} -html { - font-size: 12px; -} -html body a { - color: var(--link, var(--legacy-link)) !important; -} diff --git a/.local/share/Anki2/addons21/anki_reworked/files/legacy.css b/.local/share/Anki2/addons21/anki_reworked/files/legacy.css deleted file mode 100644 index 2ce3692..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/files/legacy.css +++ /dev/null @@ -1,18 +0,0 @@ -button { - box-sizing: border-box; - color: var(--text-fg, var(--legacy-text-fg)); - border: none; - border-radius: 15px; - cursor: pointer; - padding: 6px 24px; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.75; - letter-spacing: 0.02857em; - text-transform: uppercase; - background: initial; - background-color: var(--frame-bg, var(--legacy-frame-bg)); - transition: background 0.2s linear, color 0.3s ease-out; - box-shadow: rgb(0 0 0 / 20%) 0px 3px 7px -2px, - rgb(0 0 0 / 5%) 0px 5px 10px 0px, rgb(0 0 0 / 12%) 0px 1px 5px 0px; -} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/manifest.json b/.local/share/Anki2/addons21/anki_reworked/manifest.json deleted file mode 100644 index 33ce43f..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Anki Redesign", - "package": "anki-redesign", - "ankiweb_id": "308574457", - "author": "Shirajuki", - "version": "0.1.3", - "homepage": "https://github.com/shirajuki/anki-redesign", - "conflicts": ["308574457", "688199788"], - "manifest_version": 2 -} diff --git a/.local/share/Anki2/addons21/anki_reworked/meta.json b/.local/share/Anki2/addons21/anki_reworked/meta.json deleted file mode 100644 index 17e78d2..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"homepage": "https://github.com/shirajuki/anki-redesign", "name": "Anki-redesign", "conflicts": ["308574457", "688199788"], "mod": 1656801893, "min_point_version": 20, "max_point_version": 54, "branch_index": 0, "disabled": true, "config": {"addon_more_overview_stats": "True", "addon_advanced_review_bottom_bar": "True", "font": "3270Medium Nerd Font", "font_size": "12", "theme": "Catppuccin", "theme_reload": "True"}, "update_enabled": true} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/themes/Anki.json b/.local/share/Anki2/addons21/anki_reworked/themes/Anki.json deleted file mode 100644 index 31a4818..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/themes/Anki.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "colors": { - "BORDER": [ - "Border", - "#aaa", - "#777", - "--border" - ], - "BURIED_FG": [ - "Buried Foreground", - "#aaaa33", - "#777733", - "--buried-fg" - ], - "BUTTON_BG": [ - "Button Background", - "#eff0f1", - "#454545", - "" - ], - "CURRENT_DECK": [ - "Selected Deck", - "#e7e7e7", - "#29292b", - "--current-deck" - ], - "DISABLED": [ - "Disabled", - "#777", - "#777", - "--disabled" - ], - "FAINT_BORDER": [ - "Faint Border", - "#e7e7e7", - "#29292b", - "--faint-border" - ], - "FLAG1_BG": [ - "Flag1 (Browse Cards List)", - "#ff9b9b", - "#aa5555", - "--flag1-bg" - ], - "FLAG1_FG": [ - "Flag1 (Browse Sidebar)", - "#e25252", - "#ff7b7b", - "--flag1-fg" - ], - "FLAG2_BG": [ - "Flag2 (Browse Cards List)", - "#ffb347", - "#ac653a", - "--flag2-bg" - ], - "FLAG2_FG": [ - "Flag2 (Browse Sidebar)", - "#ffb347", - "#f5aa41", - "--flag2-fg" - ], - "FLAG3_BG": [ - "Flag3 (Browse Cards List)", - "#93e066", - "#559238", - "--flag3-bg" - ], - "FLAG3_FG": [ - "Flag3 (Browse Sidebar)", - "#54c414", - "#86ce5d", - "--flag3-fg" - ], - "FLAG4_BG": [ - "Flag4 (Browse Cards List)", - "#9dbcff", - "#506aa3", - "--flag4-bg" - ], - "FLAG4_FG": [ - "Flag4 (Browse Sidebar)", - "#578cff", - "#6f9dff", - "--flag4-fg" - ], - "FLAG5_BG": [ - "Flag5 (Browse Cards List)", - "#f5a8eb", - "#975d8f", - "--flag5-bg" - ], - "FLAG5_FG": [ - "Flag5 (Browse Sidebar)", - "#ff82ee", - "#f097e4", - "--flag5-fg" - ], - "FLAG6_BG": [ - "Flag6 (Browse Cards List)", - "#7edbd7", - "#399185", - "--flag6-bg" - ], - "FLAG6_FG": [ - "Flag6 (Browse Sidebar)", - "#00d1b5", - "#5ccfca", - "--flag6-fg" - ], - "FLAG7_BG": [ - "Flag7 (Browse Cards List)", - "#cca3f1", - "#624b77", - "--flag7-bg" - ], - "FLAG7_FG": [ - "Flag7 (Browse Sidebar)", - "#9649dd", - "#9f63d3", - "--flag7-fg" - ], - "FRAME_BG": [ - "Frame Background", - "white", - "#3a3a3a", - "--frame-bg" - ], - "HIGHLIGHT_BG": [ - "Highlighted Background", - "#77ccff", - "#77ccff", - "--highlight-bg" - ], - "HIGHLIGHT_FG": [ - "Highlighted Text", - "black", - "white", - "--highlight-fg" - ], - "LEARN_COUNT": [ - "Learn Count", - "#c35617", - "#ff935b", - "--learn-count" - ], - "LINK": [ - "Hyperlink", - "#00a", - "#77ccff", - "--link" - ], - "MARKED_BG": [ - "Marked Background", - "#cce", - "#77c", - "--marked-bg" - ], - "MEDIUM_BORDER": [ - "Medium Border", - "#b6b6b6", - "#444", - "--medium-border" - ], - "NEW_COUNT": [ - "New Count", - "#00a", - "#77ccff", - "--new-count" - ], - "PRIMARY_COLOR": [ - "Primary Color", - "#0093d0", - "#0093d0", - "--primary-color" - ], - "REVIEW_COUNT": [ - "Review Count", - "#0a0", - "#5ccc00", - "--review-count" - ], - "SLIGHTLY_GREY_TEXT": [ - "Switch Text", - "#333", - "#ccc", - "--slightly-grey-text" - ], - "SUSPENDED_BG": [ - "Suspended Background", - "#ffffb2", - "#aaaa33", - "--suspended-bg" - ], - "SUSPENDED_FG": [ - "Suspended Foreground", - "#dd0", - "#ffffb2", - "--suspended-fg" - ], - "TEXT_FG": [ - "Text Foreground", - "black", - "white", - "--text-fg" - ], - "TOOLTIP_BG": [ - "Tooltip Background", - "#fcfcfc", - "#272727", - "--tooltip-bg" - ], - "WINDOW_BG": [ - "Window Background", - "#fafafa", - "#2f2f31", - "--window-bg" - ], - "ZERO_COUNT": [ - "Zero Count", - "#ddd", - "#444", - "--zero-count" - ] - }, - "version": { - "major": -1, - "minor": -1 - } -} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/themes/Catppuccin.json b/.local/share/Anki2/addons21/anki_reworked/themes/Catppuccin.json deleted file mode 100644 index 39684d2..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/themes/Catppuccin.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "colors": { - "BORDER": [ - "Border", - "#aaa", - "#434c5e", - "--border" - ], - "BURIED_FG": [ - "Buried Foreground", - "#aaaa33", - "#777733", - "--buried-fg" - ], - "BUTTON_BG": [ - "Button Background", - "#e7e7e7", - "#1A1826", - "--button-bg" - ], - "CURRENT_DECK": [ - "Selected Deck", - "#e7e7e7", - "#1A1826", - "--current-deck" - ], - "DISABLED": [ - "Disabled", - "#777", - "#C3BAC6", - "--disabled" - ], - "FAINT_BORDER": [ - "Faint Border", - "#e7e7e7", - "#1A1826", - "--faint-border" - ], - "FLAG1_BG": [ - "Flag1 (Browse Cards List)", - "#BF616A", - "#BF616A", - "--flag1-bg" - ], - "FLAG1_FG": [ - "Flag1 (BrowseSidebar)", - "#BF616A", - "#BF616A", - "--flag1-fg" - ], - "FLAG2_BG": [ - "Flag2 (Browse Cards List)", - "#D08770", - "#D08770", - "--flag2-bg" - ], - "FLAG2_FG": [ - "Flag2 (Browse Sidebar)", - "#D08770", - "#D08770", - "--flag2-fg" - ], - "FLAG3_BG": [ - "Flag3 (Browse Cards List)", - "#A3BE8C", - "#A3BE8C", - "--flag3-bg" - ], - "FLAG3_FG": [ - "Flag3 (Browse Sidebar)", - "#A3BE8C", - "#A3BE8C", - "--flag3-fg" - ], - "FLAG4_BG": [ - "Flag4 (Browse Cards List)", - "#5E81AC", - "#5E81AC", - "--flag4-bg" - ], - "FLAG4_FG": [ - "Flag4 (Browse Sidebar)", - "#5E81AC", - "#5E81AC", - "--flag4-fg" - ], - "FLAG5_BG": [ - "Flag5 (Browse Cards List)", - "#B48EAD", - "#B48EAD", - "--flag5-bg" - ], - "FLAG5_FG": [ - "Flag5 (Browse Sidebar)", - "#B48EAD", - "#B48EAD", - "--flag5-fg" - ], - "FLAG6_BG": [ - "Flag6 (Browse Cards List)", - "#7edbd7", - "#399185", - "--flag6-bg" - ], - "FLAG6_FG": [ - "Flag6 (Browse Sidebar)", - "#00d1b5", - "#5ccfca", - "--flag6-fg" - ], - "FLAG7_BG": [ - "Flag7 (Browse Cards List)", - "#cca3f1", - "#624b77", - "--flag7-bg" - ], - "FLAG7_FG": [ - "Flag7 (Browse Sidebar)", - "#9649dd", - "#9f63d3", - "--flag7-fg" - ], - "FRAME_BG": [ - "Frame Background", - "white", - "#1A1826", - "--frame-bg" - ], - "HIGHLIGHT_BG": [ - "Highlighted Background", - "#77ccff", - "#81A1C1", - "--highlight-bg" - ], - "HIGHLIGHT_FG": [ - "Highlighted Text", - "black", - "#ECEFF4", - "--highlight-fg" - ], - "LEARN_COUNT": [ - "Learn Count", - "#c35617", - "#D08770", - "--learn-count" - ], - "LINK": [ - "Hyperlink", - "#6e9fda", - "#89DCEB", - "--link" - ], - "MARKED_BG": [ - "Marked Background", - "#cce", - "#ebcb8b", - "--marked-bg" - ], - "MEDIUM_BORDER": [ - "Medium Border", - "#b6b6b6", - "#434C5E", - "--medium-border" - ], - "NEW_COUNT": [ - "New Count", - "#00a", - "#5E81AC", - "--new-count" - ], - "PRIMARY_COLOR": [ - "Primary Color", - "#0093d0", - "#0093d0", - "--primary-color" - ], - "REVIEW_COUNT": [ - "Review Count", - "#0a0", - "#A3BE8C", - "--review-count" - ], - "SLIGHTLY_GREY_TEXT": [ - "Switch Text", - "#333", - "#D8DEE9", - "--slightly-grey-text" - ], - "SUSPENDED_BG": [ - "Suspended Background", - "#ffffb2", - "#161320", - "--suspended-bg" - ], - "SUSPENDED_FG": [ - "Suspended Foreground", - "#dd0", - "#ECEFF4", - "--suspended-fg" - ], - "TEXT_FG": [ - "Text Foreground", - "black", - "#d9e0ee", - "--text-fg" - ], - "TOOLTIP_BG": [ - "Tooltip Background", - "#fcfcfc", - "#4C566A", - "--tooltip-bg" - ], - "WINDOW_BG": [ - "Window Background", - "#fafafa", - "#1E1E2E", - "--window-bg" - ], - "ZERO_COUNT": [ - "Zero Count", - "#ddd", - "#434C5E", - "--zero-count" - ] - }, - "version": { - "major": 1, - "minor": 5 - } -} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/themes/Nord.json b/.local/share/Anki2/addons21/anki_reworked/themes/Nord.json deleted file mode 100644 index 25c507b..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/themes/Nord.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "colors": { - "BORDER": [ - "Border", - "#D8DEE9", - "#434C5E", - "--border" - ], - "BURIED_FG": [ - "Buried Foreground", - "#aaaa33", - "#777733", - "--buried-fg" - ], - "BUTTON_BG": [ - "Button Background", - "#D8DEE9", - "#3B4252", - "" - ], - "CURRENT_DECK": [ - "Selected Deck", - "#E5E9F0", - "#3B4252", - "--current-deck" - ], - "DISABLED": [ - "Disabled", - "#D8DEE9", - "#D8DEE9", - "--disabled" - ], - "FAINT_BORDER": [ - "Faint Border", - "#ECEFF4", - "#3B4252", - "--faint-border" - ], - "FLAG1_BG": [ - "Flag1 (Browse Cards List)", - "#BF616A", - "#BF616A", - "--flag1-bg" - ], - "FLAG1_FG": [ - "Flag1 (BrowseSidebar)", - "#BF616A", - "#BF616A", - "--flag1-fg" - ], - "FLAG2_BG": [ - "Flag2 (Browse Cards List)", - "#D08770", - "#D08770", - "--flag2-bg" - ], - "FLAG2_FG": [ - "Flag2 (Browse Sidebar)", - "#D08770", - "#D08770", - "--flag2-fg" - ], - "FLAG3_BG": [ - "Flag3 (Browse Cards List)", - "#A3BE8C", - "#A3BE8C", - "--flag3-bg" - ], - "FLAG3_FG": [ - "Flag3 (Browse Sidebar)", - "#A3BE8C", - "#A3BE8C", - "--flag3-fg" - ], - "FLAG4_BG": [ - "Flag4 (Browse Cards List)", - "#5E81AC", - "#5E81AC", - "--flag4-bg" - ], - "FLAG4_FG": [ - "Flag4 (Browse Sidebar)", - "#5E81AC", - "#5E81AC", - "--flag4-fg" - ], - "FLAG5_BG": [ - "Flag5 (Browse Cards List)", - "#B48EAD", - "#B48EAD", - "--flag5-bg" - ], - "FLAG5_FG": [ - "Flag5 (Browse Sidebar)", - "#B48EAD", - "#B48EAD", - "--flag5-fg" - ], - "FLAG6_BG": [ - "Flag6 (Browse Cards List)", - "#7edbd7", - "#399185", - "--flag6-bg" - ], - "FLAG6_FG": [ - "Flag6 (Browse Sidebar)", - "#00d1b5", - "#5ccfca", - "--flag6-fg" - ], - "FLAG7_BG": [ - "Flag7 (Browse Cards List)", - "#cca3f1", - "#624b77", - "--flag7-bg" - ], - "FLAG7_FG": [ - "Flag7 (Browse Sidebar)", - "#9649dd", - "#9f63d3", - "--flag7-fg" - ], - "FRAME_BG": [ - "Frame Background", - "#E5E9F0", - "#3B4252", - "--frame-bg" - ], - "HIGHLIGHT_BG": [ - "Highlighted Background", - "#81A1C1", - "#81A1C1", - "--highlight-bg" - ], - "HIGHLIGHT_FG": [ - "Highlighted Text", - "white", - "#ECEFF4", - "--highlight-fg" - ], - "LEARN_COUNT": [ - "Learn Count", - "#D08770", - "#D08770", - "--learn-count" - ], - "LINK": [ - "Hyperlink", - "#8FBCBB", - "#8FBCBB", - "--link" - ], - "MARKED_BG": [ - "Marked Background", - "#EBCB8B", - "#EBCB8B", - "--marked-bg" - ], - "MEDIUM_BORDER": [ - "Medium Border", - "#E5E9F0", - "#434C5E", - "--medium-border" - ], - "NEW_COUNT": [ - "New Count", - "#5E81AC", - "#5E81AC", - "--new-count" - ], - "PRIMARY_COLOR": [ - "Primary Color", - "#0093d0", - "#0093d0", - "--primary-color" - ], - "REVIEW_COUNT": [ - "Review Count", - "#A3BE8C", - "#A3BE8C", - "--review-count" - ], - "SLIGHTLY_GREY_TEXT": [ - "Switch Text", - "#3B4252", - "#D8DEE9", - "--slightly-grey-text" - ], - "SUSPENDED_BG": [ - "Suspended Background", - "#88C0D0", - "#88C0D0", - "--suspended-bg" - ], - "SUSPENDED_FG": [ - "Suspended Foreground", - "#3B4252", - "#ECEFF4", - "--suspended-fg" - ], - "TEXT_FG": [ - "Text Foreground", - "#2E3440", - "#E5E9F0", - "--text-fg" - ], - "TOOLTIP_BG": [ - "Tooltip Background", - "#D8DEE9", - "#4C566A", - "--tooltip-bg" - ], - "WINDOW_BG": [ - "Window Background", - "white", - "#2E3440", - "--window-bg" - ], - "ZERO_COUNT": [ - "Zero Count", - "#D8DEE9", - "#434C5E", - "--zero-count" - ] - }, - "version": { - "major": 1, - "minor": 5 - } -} \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/themes/readme.txt b/.local/share/Anki2/addons21/anki_reworked/themes/readme.txt deleted file mode 100644 index 43f5cc1..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/themes/readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -To create your own customized themes -make a copy of Anki.json, name and edit it according -to your wishes. - -This addon is also compatible with the themes of ReColor, -which means that the uploaded community themes can also -be downloaded and used: -- https://github.com/AnKingMed/AnkiRecolor/wiki/Themes diff --git a/.local/share/Anki2/addons21/anki_reworked/user_files/readme.txt b/.local/share/Anki2/addons21/anki_reworked/user_files/readme.txt deleted file mode 100644 index f612d51..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/user_files/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ -To create your own customized style design, -copy over the css files from ./files to ./user_files -you would like to edit. - -CSS files starting with "Q" indicates that the syntax is of -Qt CSS, which is in it's core quite similar to the usual CSS. -Documentation here: -- https://doc.qt.io/qt-5/stylesheet-syntax.html - -User edited themes should that is also customized will be saved -in this folder. diff --git a/.local/share/Anki2/addons21/anki_reworked/utils/css_files.py b/.local/share/Anki2/addons21/anki_reworked/utils/css_files.py deleted file mode 100644 index 0b88564..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/utils/css_files.py +++ /dev/null @@ -1,37 +0,0 @@ -import os -from aqt import mw - -mw.addonManager.setWebExports(__name__, r"files/.*\.(css|svg|gif|png)|user_files/.*\.(css|svg|gif|png)") -addon_package = mw.addonManager.addonFromModule(__name__) - -this_script_dir = os.path.join(os.path.dirname(__file__), "..") -files_dir = os.path.join(this_script_dir, 'files') -user_files_dir = os.path.join(this_script_dir, 'user_files') -css_files_dir = { - 'BottomBar': f"/_addons/{addon_package}/files/BottomBar.css", - 'CardLayout': f"/_addons/{addon_package}/files/CardLayout.css", - 'DeckBrowser': f"/_addons/{addon_package}/files/DeckBrowser.css", - 'Editor': f"/_addons/{addon_package}/files/Editor.css", - 'global': f"/_addons/{addon_package}/files/global.css", - 'legacy': f"/_addons/{addon_package}/files/legacy.css", - 'Overview': f"/_addons/{addon_package}/files/Overview.css", - 'QAbout': os.path.join(files_dir, 'QAbout.css'), - 'QAddCards': os.path.join(files_dir, 'QAddCards.css'), - 'QAddonsDialog': os.path.join(files_dir, 'QAddonsDialog.css'), - 'QBrowser': os.path.join(files_dir, 'QBrowser.css'), - 'QFilteredDeckConfigDialog': os.path.join(files_dir, 'QFilteredDeckConfigDialog.css'), - 'QEditCurrent': os.path.join(files_dir, 'QEditCurrent.css'), - 'QNewDeckStats': os.path.join(files_dir, 'QNewDeckStats.css'), - 'QPreferences': os.path.join(files_dir, 'QPreferences.css'), - 'Reviewer': f"/_addons/{addon_package}/files/Reviewer.css", - 'ReviewerBottomBar': f"/_addons/{addon_package}/files/ReviewerBottomBar.css", - 'TopToolbar': f"/_addons/{addon_package}/files/TopToolbar.css", -} -# Replace pathing for user customised styled files -for file in os.listdir(user_files_dir): - file = file.replace(".css", "") - if css_files_dir.get(file, "") != "": - if file.startswith("Q"): - css_files_dir[file] = os.path.join(user_files_dir, file+'.css') - else: - css_files_dir[file] = f"/_addons/{addon_package}/user_files/{file}.css" diff --git a/.local/share/Anki2/addons21/anki_reworked/utils/logger.py b/.local/share/Anki2/addons21/anki_reworked/utils/logger.py deleted file mode 100644 index 3c67988..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/utils/logger.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import logging -# declare an empty logger class -class EmptyLogger(): - def debug(self, *_): - return None -logger = EmptyLogger() -# init logger -if 'ANKI_REDESIGN_DEBUG_LOGGING' in os.environ: - filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "user_files", "test.log") - logging.basicConfig(format='%(asctime)s %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', - datefmt='%Y%m%d-%H:%M:%S', - filename=filename, - level=logging.DEBUG) - logger = logging.getLogger('anki-redesign') - logger.setLevel(logging.DEBUG) - logger.debug("Initialized anki") diff --git a/.local/share/Anki2/addons21/anki_reworked/utils/modules.py b/.local/share/Anki2/addons21/anki_reworked/utils/modules.py deleted file mode 100644 index fc55a12..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/utils/modules.py +++ /dev/null @@ -1,18 +0,0 @@ -def module_exists(module_name): - try: - __import__(module_name) - except ImportError: - return False - else: - return True - -def module_has_attribute(module_name, attribute): - if module_exists(module_name): - return hasattr(__import__(module_name), attribute) - return False - -def attribute_exists(object, attribute): - return attribute in object.__dict__ - -def context_name_includes(context, classname): - return classname in str(context.__class__) \ No newline at end of file diff --git a/.local/share/Anki2/addons21/anki_reworked/utils/themes.py b/.local/share/Anki2/addons21/anki_reworked/utils/themes.py deleted file mode 100644 index 36af2d9..0000000 --- a/.local/share/Anki2/addons21/anki_reworked/utils/themes.py +++ /dev/null @@ -1,34 +0,0 @@ -import os -import json -from aqt import mw -from .logger import logger - -this_script_dir = os.path.join(os.path.dirname(__file__), "..") -themes_dir = os.path.join(this_script_dir, 'themes') - -def get_themes_dict() -> dict: - # Replace pathing for theme files (ReColor compatible) - themes = {} - for file in os.listdir(themes_dir): - if "json" in file: - file = file.replace(".json", "") - if themes.get(file, "") == "": - themes[file] = os.path.join(themes_dir, file+'.json') - return themes - -def get_theme(theme: str) -> dict: - themes_parsed = json.loads(open(themes[theme], encoding='utf-8').read()) - theme_colors = themes_parsed.get("colors") - # Add extra color_keys on theme files if not exist (ReColor compatible) - if not theme_colors.get("PRIMARY_COLOR", False): - theme_colors["PRIMARY_COLOR"] = ["Primary Color", "#0093d0", "#0093d0", "--primary-color"] - if not theme_colors.get("FOCUS_SHADOW", False): - theme_colors["FOCUS_SHADOW"] = ["Focus Shadow", "#ff93d0", "#0093d0", "--focus-shadow-color"] - themes_parsed["colors"] = theme_colors - return themes_parsed - -def write_theme(file, theme_content): - with open(file, "w") as f: - json.dump(theme_content, f, indent=2, sort_keys=True) - -themes = get_themes_dict() -- cgit v1.2.3