mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 16:26:40 -04:00
Add a basic fieldsAreBlank()
This commit is contained in:
parent
a32ef31382
commit
1f002134fe
4 changed files with 51 additions and 12 deletions
|
@ -38,6 +38,7 @@ service FrontendService {
|
|||
rpc OpenMedia(generic.String) returns (generic.Empty);
|
||||
rpc ShowInMediaFolder(generic.String) returns (generic.Empty);
|
||||
rpc RecordAudio(generic.Empty) returns (generic.String);
|
||||
rpc CloseAddCards(generic.Bool) returns (generic.Empty);
|
||||
|
||||
// Profile config
|
||||
rpc GetProfileConfigJson(generic.String) returns (generic.Json);
|
||||
|
|
|
@ -34,6 +34,7 @@ class AddCards(QMainWindow):
|
|||
def __init__(self, mw: AnkiQt) -> None:
|
||||
super().__init__(None, Qt.WindowType.Window)
|
||||
self._close_event_has_cleaned_up = False
|
||||
self._close_callback: Callable[[], None] | None = None
|
||||
self.mw = mw
|
||||
self.col = mw.col
|
||||
form = aqt.forms.addcards.Ui_Dialog()
|
||||
|
@ -249,21 +250,26 @@ class AddCards(QMainWindow):
|
|||
self.close()
|
||||
|
||||
def ifCanClose(self, onOk: Callable) -> None:
|
||||
self._close_callback = onOk
|
||||
self.editor.web.eval("closeAddCards()")
|
||||
|
||||
def _close_if_user_wants_to_discard_changes(self, is_empty: bool) -> None:
|
||||
if is_empty:
|
||||
self._close_callback()
|
||||
return
|
||||
|
||||
def callback(choice: int) -> None:
|
||||
if choice == 0:
|
||||
onOk()
|
||||
self._close_callback()
|
||||
|
||||
def afterSave() -> None:
|
||||
ask_user_dialog(
|
||||
tr.adding_discard_current_input(),
|
||||
callback=callback,
|
||||
buttons=[
|
||||
QMessageBox.StandardButton.Discard,
|
||||
(tr.adding_keep_editing(), QMessageBox.ButtonRole.RejectRole),
|
||||
],
|
||||
)
|
||||
|
||||
self.editor.call_after_note_saved(afterSave)
|
||||
ask_user_dialog(
|
||||
tr.adding_discard_current_input(),
|
||||
callback=callback,
|
||||
buttons=[
|
||||
QMessageBox.StandardButton.Discard,
|
||||
(tr.adding_keep_editing(), QMessageBox.ButtonRole.RejectRole),
|
||||
],
|
||||
)
|
||||
|
||||
def closeWithCallback(self, cb: Callable[[], None]) -> None:
|
||||
def doClose() -> None:
|
||||
|
|
|
@ -791,6 +791,21 @@ def write_clipboard() -> bytes:
|
|||
return b""
|
||||
|
||||
|
||||
def close_add_cards() -> bytes:
|
||||
req = generic_pb2.Bool()
|
||||
req.ParseFromString(request.data)
|
||||
|
||||
def handle_on_main() -> None:
|
||||
from aqt.addcards import AddCards
|
||||
|
||||
window = aqt.mw.app.activeWindow()
|
||||
if isinstance(window, AddCards):
|
||||
window._close_if_user_wants_to_discard_changes(req.val)
|
||||
|
||||
aqt.mw.taskman.run_on_main(lambda: QTimer.singleShot(0, handle_on_main))
|
||||
return b""
|
||||
|
||||
|
||||
post_handler_list = [
|
||||
congrats_info,
|
||||
get_deck_configs_for_update,
|
||||
|
@ -820,6 +835,7 @@ post_handler_list = [
|
|||
record_audio,
|
||||
read_clipboard,
|
||||
write_clipboard,
|
||||
close_add_cards,
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -370,6 +370,20 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
saveFieldNow();
|
||||
}
|
||||
|
||||
// TODO this needs to accept a previousNote arg
|
||||
async function fieldsAreBlank(): Promise<boolean> {
|
||||
const result = await noteFieldsCheck(note!);
|
||||
if (result.state === NoteFieldsCheckResponse_State.EMPTY) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async function closeAddCards() {
|
||||
saveNow();
|
||||
await closeAddCardsBackend({ val: await fieldsAreBlank() });
|
||||
}
|
||||
|
||||
export function saveOnPageHide() {
|
||||
if (document.visibilityState === "hidden") {
|
||||
// will fire on session close and minimize
|
||||
|
@ -559,6 +573,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
addNote,
|
||||
addMediaFromPath,
|
||||
updateNotetype,
|
||||
closeAddCards as closeAddCardsBackend,
|
||||
} from "@generated/backend";
|
||||
import { wrapInternal } from "@tslib/wrap";
|
||||
import { getProfileConfig, getMeta, setMeta, getColConfig } from "@tslib/profile";
|
||||
|
@ -925,6 +940,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
setBackgrounds,
|
||||
setClozeHint,
|
||||
saveNow,
|
||||
closeAddCards,
|
||||
focusIfField,
|
||||
setNotetypeMeta,
|
||||
wrap,
|
||||
|
|
Loading…
Reference in a new issue