mirror of
https://github.com/ankitects/anki.git
synced 2025-09-22 16:02:23 -04:00
Add cursory type annotations for aqt.DialogManager
Typing DialogManager._dialogs properly would require more extensive changes which could break a number of add-ons
This commit is contained in:
parent
4290bc81eb
commit
0f9683a850
1 changed files with 6 additions and 6 deletions
|
@ -10,7 +10,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import traceback
|
import traceback
|
||||||
from typing import Any, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
import anki.buildinfo
|
import anki.buildinfo
|
||||||
import anki.lang
|
import anki.lang
|
||||||
|
@ -69,7 +69,7 @@ from aqt import stats, about, preferences, mediasync # isort:skip
|
||||||
|
|
||||||
class DialogManager:
|
class DialogManager:
|
||||||
|
|
||||||
_dialogs = {
|
_dialogs: Dict[str, list] = {
|
||||||
"AddCards": [addcards.AddCards, None],
|
"AddCards": [addcards.AddCards, None],
|
||||||
"Browser": [browser.Browser, None],
|
"Browser": [browser.Browser, None],
|
||||||
"EditCurrent": [editcurrent.EditCurrent, None],
|
"EditCurrent": [editcurrent.EditCurrent, None],
|
||||||
|
@ -79,7 +79,7 @@ class DialogManager:
|
||||||
"sync_log": [mediasync.MediaSyncDialog, None],
|
"sync_log": [mediasync.MediaSyncDialog, None],
|
||||||
}
|
}
|
||||||
|
|
||||||
def open(self, name, *args):
|
def open(self, name: str, *args: Any) -> Any:
|
||||||
(creator, instance) = self._dialogs[name]
|
(creator, instance) = self._dialogs[name]
|
||||||
if instance:
|
if instance:
|
||||||
if instance.windowState() & Qt.WindowMinimized:
|
if instance.windowState() & Qt.WindowMinimized:
|
||||||
|
@ -94,17 +94,17 @@ class DialogManager:
|
||||||
self._dialogs[name][1] = instance
|
self._dialogs[name][1] = instance
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
def markClosed(self, name):
|
def markClosed(self, name: str):
|
||||||
self._dialogs[name] = [self._dialogs[name][0], None]
|
self._dialogs[name] = [self._dialogs[name][0], None]
|
||||||
|
|
||||||
def allClosed(self):
|
def allClosed(self):
|
||||||
return not any(x[1] for x in self._dialogs.values())
|
return not any(x[1] for x in self._dialogs.values())
|
||||||
|
|
||||||
def closeAll(self, onsuccess):
|
def closeAll(self, onsuccess: Callable[[], None]) -> Optional[bool]:
|
||||||
# can we close immediately?
|
# can we close immediately?
|
||||||
if self.allClosed():
|
if self.allClosed():
|
||||||
onsuccess()
|
onsuccess()
|
||||||
return
|
return None
|
||||||
|
|
||||||
# ask all windows to close and await a reply
|
# ask all windows to close and await a reply
|
||||||
for (name, (creator, instance)) in self._dialogs.items():
|
for (name, (creator, instance)) in self._dialogs.items():
|
||||||
|
|
Loading…
Reference in a new issue