Merge pull request #137 from hgiesel/furtherdev
Make guiAddCards have a return value
This commit is contained in:
commit
96bb9e17c9
@ -1594,6 +1594,8 @@ guarantee that your application continues to function properly in the future.
|
|||||||
The `closeAfterAdding` member inside `options` group can be set to true to create a dialog that closes upon adding the note.
|
The `closeAfterAdding` member inside `options` group can be set to true to create a dialog that closes upon adding the note.
|
||||||
Invoking the action mutliple times with this option will create _multiple windows_.
|
Invoking the action mutliple times with this option will create _multiple windows_.
|
||||||
|
|
||||||
|
The result is the ID of the note which would be added, if the user chose to confirm the *Add Cards* dialogue.
|
||||||
|
|
||||||
*Sample request*:
|
*Sample request*:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@ -1621,7 +1623,7 @@ guarantee that your application continues to function properly in the future.
|
|||||||
*Sample result*:
|
*Sample result*:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"result": null,
|
"result": 1496198395707,
|
||||||
"error": null
|
"error": null
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -977,44 +977,53 @@ class AnkiConnect:
|
|||||||
aqt.dialogs.open(windowName, self.window())
|
aqt.dialogs.open(windowName, self.window())
|
||||||
addCards.setAndFocusNote(editor.note)
|
addCards.setAndFocusNote(editor.note)
|
||||||
|
|
||||||
|
return ankiNote.id
|
||||||
|
|
||||||
elif note is not None:
|
elif note is not None:
|
||||||
currentWindow = aqt.dialogs._dialogs['AddCards'][1]
|
collection = self.collection()
|
||||||
|
ankiNote = anki.notes.Note(collection, model)
|
||||||
|
|
||||||
|
# fill out card beforehand, so we can be sure of the note id
|
||||||
|
if 'fields' in note:
|
||||||
|
for name, value in note['fields'].items():
|
||||||
|
if name in ankiNote:
|
||||||
|
ankiNote[name] = value
|
||||||
|
|
||||||
|
if 'tags' in note:
|
||||||
|
ankiNote.tags = note['tags']
|
||||||
|
|
||||||
def openNewWindow():
|
def openNewWindow():
|
||||||
|
nonlocal ankiNote
|
||||||
|
|
||||||
addCards = aqt.dialogs.open('AddCards', self.window())
|
addCards = aqt.dialogs.open('AddCards', self.window())
|
||||||
|
|
||||||
if savedMid:
|
if savedMid:
|
||||||
deck['mid'] = savedMid
|
deck['mid'] = savedMid
|
||||||
|
|
||||||
editor = addCards.editor
|
addCards.editor.note = ankiNote
|
||||||
ankiNote = editor.note
|
addCards.editor.loadNote()
|
||||||
|
addCards.editor.updateTags()
|
||||||
# we have to fill out the card in the callback
|
|
||||||
# otherwise we can't assure, the new window is open
|
|
||||||
if 'fields' in note:
|
|
||||||
for name, value in note['fields'].items():
|
|
||||||
if name in ankiNote:
|
|
||||||
ankiNote[name] = value
|
|
||||||
editor.loadNote()
|
|
||||||
|
|
||||||
if 'tags' in note:
|
|
||||||
ankiNote.tags = note['tags']
|
|
||||||
editor.updateTags()
|
|
||||||
|
|
||||||
addCards.activateWindow()
|
addCards.activateWindow()
|
||||||
|
|
||||||
aqt.dialogs.open('AddCards', self.window())
|
aqt.dialogs.open('AddCards', self.window())
|
||||||
addCards.setAndFocusNote(editor.note)
|
addCards.setAndFocusNote(addCards.editor.note)
|
||||||
|
|
||||||
|
currentWindow = aqt.dialogs._dialogs['AddCards'][1]
|
||||||
|
|
||||||
if currentWindow is not None:
|
if currentWindow is not None:
|
||||||
currentWindow.closeWithCallback(openNewWindow)
|
currentWindow.closeWithCallback(openNewWindow)
|
||||||
else:
|
else:
|
||||||
openNewWindow()
|
openNewWindow()
|
||||||
|
|
||||||
|
return ankiNote.id
|
||||||
|
|
||||||
else:
|
else:
|
||||||
addCards = aqt.dialogs.open('AddCards', self.window())
|
addCards = aqt.dialogs.open('AddCards', self.window())
|
||||||
addCards.activateWindow()
|
addCards.activateWindow()
|
||||||
|
|
||||||
|
return addCards.editor.note.id
|
||||||
|
|
||||||
@util.api()
|
@util.api()
|
||||||
def guiReviewActive(self):
|
def guiReviewActive(self):
|
||||||
return self.reviewer().card is not None and self.window().state == 'review'
|
return self.reviewer().card is not None and self.window().state == 'review'
|
||||||
|
Loading…
Reference in New Issue
Block a user