Merge branch 'main' into editor-3830

This commit is contained in:
Abdo 2025-06-02 02:41:47 +03:00
commit b13a1d1639
5 changed files with 23 additions and 17 deletions

View file

@ -230,7 +230,7 @@ KolbyML <https://github.com/KolbyML>
Adnane Taghi <dev@soleuniverse.me>
Spiritual Father <https://github.com/spiritualfather>
Emmanuel Ferdman <https://github.com/emmanuel-ferdman>
Marvin Kopf <marvinkopf@outlook.com>
********************
The text of the 3 clause BSD license follows:

View file

@ -53,6 +53,7 @@ from aqt.operations.tag import (
from aqt.qt import *
from aqt.sound import av_player
from aqt.switch import Switch
from aqt.theme import WidgetStyle
from aqt.undo import UndoActionsInfo
from aqt.utils import (
HelpPage,
@ -170,6 +171,7 @@ class Browser(QMainWindow):
if self.height() != 0:
self.aspect_ratio = self.width() / self.height()
self.set_layout(self.mw.pm.browser_layout(), True)
self.onSidebarVisibilityChange(not self.sidebarDockWidget.isHidden())
# disable undo/redo
self.on_undo_state_change(mw.undo_actions_info())
# legacy alias
@ -726,6 +728,7 @@ class Browser(QMainWindow):
self.form.actionSidebarFilter.triggered,
self.focusSidebarSearchBar,
)
qconnect(dw.visibilityChanged, self.onSidebarVisibilityChange)
grid = QGridLayout()
grid.addWidget(self.sidebar.searchBar, 0, 0)
grid.addWidget(self.sidebar.toolbar, 0, 1)
@ -745,9 +748,17 @@ class Browser(QMainWindow):
self.mw.progress.timer(10, self.sidebar.refresh, False, parent=self.sidebar)
def showSidebar(self, show: bool = True) -> None:
want_visible = not self.sidebarDockWidget.isVisible()
self.sidebarDockWidget.setVisible(show)
if want_visible and show:
def onSidebarVisibilityChange(self, visible):
margins = self.form.verticalLayout_3.contentsMargins()
skip_left_margin = visible and not (
is_mac and aqt.mw.pm.get_widget_style() == WidgetStyle.NATIVE
)
margins.setLeft(0 if skip_left_margin else margins.right())
self.form.verticalLayout_3.setContentsMargins(margins)
if visible:
self.sidebar.refresh()
def focusSidebar(self) -> None:

View file

@ -7,9 +7,8 @@ import enum
import logging
import mimetypes
import os
import random
import re
import string
import secrets
import sys
import threading
import traceback
@ -843,7 +842,7 @@ def legacy_page_data() -> Response:
return _text_response(HTTPStatus.NOT_FOUND, "page not found")
_APIKEY = "".join(random.choices(string.ascii_letters + string.digits, k=32))
_APIKEY = secrets.token_urlsafe(32)
def _have_api_access() -> bool:

View file

@ -41,6 +41,7 @@ import time
from queue import Empty, Full, Queue
from shutil import which
import aqt
from anki.utils import is_mac, is_win
@ -444,7 +445,7 @@ class MPV(MPVBase):
super().__init__(*args, **kwargs)
self._register_callbacks()
aqt.mw.taskman.run_in_background(self._register_callbacks, None)
def _register_callbacks(self):
self._callbacks = {}

View file

@ -20,16 +20,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
export let disabledChoices: T[] = [];
$: label = choices.find((c) => c.value === value)?.label;
</script>
<Select
bind:value
{label}
{disabled}
list={choices}
parser={(item) => ({
$: parser = (item) => ({
content: item.label,
value: item.value,
disabled: disabledChoices.includes(item.value),
})}
/>
});
</script>
<Select bind:value {label} {disabled} list={choices} {parser} />