RumovZ
3b5f4413f8
Use updating card infos in browser and reviewer
2021-10-18 09:01:23 +02:00
Damien Elmes
631c345ef0
switch to new-style PyQt scoped enums and Qt6
...
The enum changes should work on PyQt 5.x, and are required in PyQt 6.x.
They are not supported by the PyQt5 typings however, so we need to run
our tests with PyQt6.
2021-10-15 12:57:19 +10:00
Damien Elmes
3c1729e91b
run pyupgrade over codebase [python upgrade required]
...
This adds Python 3.9 and 3.10 typing syntax to files that import
attributions from __future___. Python 3.9 should be able to cope with
the 3.10 syntax, but Python 3.8 will no longer work.
On Windows/Mac, install the latest Python 3.9 version from python.org.
There are currently no orjson wheels for Python 3.10 on Windows/Mac,
which will break the build unless you have Rust installed separately.
On Linux, modern distros should have Python 3.9 available already. If
you're on an older distro, you'll need to build Python from source first.
2021-10-04 15:05:48 +10:00
RumovZ
db3cda588f
Add legacy alias browser.onRowChanged()
2021-10-01 18:36:12 +02:00
RumovZ
287acfe017
React to currentChanged() signal
...
Decouples changes of the current element and changes of the selection.
Introduces `browser.current_card` which has previously been amalgamated
with the previewer card `browser.card`.
2021-10-01 16:40:25 +02:00
Damien Elmes
8ba252a53e
Merge pull request #1400 from RumovZ/revert-hide-completer
...
Remove workaround for Qt completer bug
2021-10-01 15:30:37 +10:00
RumovZ
c04c8db9a4
Remove workaround for Qt completer bug
...
Reverts #803 .
2021-09-30 17:56:37 +02:00
RumovZ
6be0de0310
Speed up to_row_of_unselected_note()
...
Skip rows between selected rows and return fetched note ids.
2021-09-28 11:47:13 +02:00
RumovZ
8daecb94e5
Switch to new row before deleting notes
...
The table now properly deselects deleted rows, but that takes effort and
it's more convenient to have a selected row after deleting.
2021-09-25 17:28:38 +02:00
RumovZ
c0616fe820
Handle deleted or restored rows
...
- Cache the result of 'table.len_selection()'
- Update this cache manually when a row was deleted or restored
- Emit 'dataChanged()' after such a change to fix flags not updating
correctly to the shortcut in 'model.flags()'
- Remove/retsore focus if the current element was deleted/restored
2021-09-25 17:16:53 +02:00
Damien Elmes
54ec174453
Merge pull request #1375 from RumovZ/disable-actions
...
Disable unusable browser actions on row change
2021-09-21 18:38:30 +10:00
Damien Elmes
916ff49efe
temporary fix for error on deleting ( #1374 )
2021-09-20 22:02:44 +10:00
RumovZ
8fd0e89a5a
Disable unusable browser actions on row change
2021-09-17 16:16:34 +02:00
Damien Elmes
2c235ccc70
don't check state of current card when repositioning
...
closes #1365
2021-09-13 14:56:53 +10:00
Damien Elmes
28535b4f84
Merge pull request #1311 from hikaru-y/flag-mark-icons-in-previewer
...
Show flag and mark icons in previewer
2021-08-02 18:33:36 +10:00
Damien Elmes
8e48722cf0
prevent hiding of sidebar
...
https://forums.ankiweb.net/t/browser-format-issues/11504/10
2021-07-28 11:14:09 +10:00
hikaru-y
7c90637922
Show flag and mark icons in previewer
2021-07-26 20:13:42 +09:00
RumovZ
16e3f2c7f3
Fix browser search completer
...
Adding an empty entry at the top fixes
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/45
and allows for scrolling back to an empty line.
2021-07-17 12:23:19 +02:00
Henrik Giesel
f016df00cd
Remove unnecessary lambda
2021-07-17 04:17:28 +02:00
Henrik Giesel
59f801abc7
Allow Using Ctrl+Shift+P from Browser when focusing Qt components
2021-07-17 03:39:27 +02:00
Damien Elmes
eb4e18a45f
Merge pull request #1293 from RumovZ/find-and-replace
...
Find & Replace
2021-07-16 10:47:16 +10:00
RumovZ
4b1218184d
Rework Find & Replace dialog:
...
- Add option to affect whole collection
- Allow to open without selection
- Add parameter for presetting field
2021-07-13 16:33:45 +02:00
RumovZ
300ff08ad0
Add mock browser model to support legacy resetting
2021-07-12 12:36:26 +02:00
RumovZ
94cc0cf901
Add flag manager and hook
...
'FlagManager' allows cached access to the flag objects, takes care of
renaming flags and notifies GUI components with the hook
'flag_label_did_change'.
2021-07-02 11:16:10 +02:00
Damien Elmes
f9560586cb
PEP8 collection.py
2021-06-27 15:12:22 +10:00
Damien Elmes
4ffca62afe
allow customization of default search text
...
https://forums.ankiweb.net/t/whats-the-default-search-when-browsing-now-also-how-do-i-choose-to-browse-current-deck/8922
2021-06-24 11:24:30 +10:00
Damien Elmes
153e1e8d41
new change notetype implementation for the frontend
...
- changes can now be undone
- the same field can now be mapped to multiple target fields, allowing
fields to be cloned
- the old Qt dialog has been removed
- the old col.models.change() API calls the new code, to avoid
breaking existing consumers. It requires the field map to always
be passed in, but that appears to have been the common case.
- closes #1175
2021-06-10 22:19:24 +10:00
Damien Elmes
94ef3102d1
don't wait before scrolling to current card
...
https://github.com/ankitects/anki/pull/1222#discussion_r647017566
2021-06-08 12:54:05 +10:00
Damien Elmes
aaba9a777a
fix note changes triggering a queue rebuild
2021-06-08 12:09:35 +10:00
RumovZ
b09d71c2ec
Change handling of browser's card parameter
...
If a search is provided execute it, else search for current deck.
Then try to select and scroll to the provided card.
2021-06-07 16:42:17 +02:00
Damien Elmes
ea60b73275
fix timebox causing crash
...
When a modal was created with another window as its parent, the other
window was being returned, when it was the current window that we
actually wanted. This caused nextCard() to be called again when it
presented the timebox modal, leading to a stack overflow.
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/71
2021-06-01 15:35:18 +10:00
Damien Elmes
380317d701
Merge pull request #1186 from RumovZ/ctx-actions
...
Update context action states after card op
2021-05-24 10:49:23 +10:00
RumovZ
fb8194d82a
Remove browser.oneModelNotes()
2021-05-22 19:12:03 +02:00
RumovZ
fa81437ad6
Check notetype count in browser.onChangeModel()
2021-05-22 19:11:06 +02:00
RumovZ
bb829feeac
Update context action states after card op
2021-05-22 08:35:47 +02:00
Damien Elmes
5427668303
expose undoable config changes to frontend; refresh sidebar
...
The browser header handling still needs updating
2021-05-21 17:50:41 +10:00
Damien Elmes
ba727735bd
report changed cards when changing deck/flag
...
+ fix repeated flag shortcut not toggling
2021-05-21 16:03:05 +10:00
RumovZ
71dd8edabd
Move flags into separate module
2021-05-20 10:26:18 +02:00
RumovZ
58243fad52
Remove redundant pylint exception
2021-05-19 19:44:49 +02:00
RumovZ
1c3134e9c2
Use dataclass instead of tuple for loaded flags
2021-05-19 19:17:43 +02:00
RumovZ
316beb6f63
Use custom flag labels for browser actions
2021-05-19 11:00:02 +02:00
Damien Elmes
0767754ca6
enable redo support
...
Also:
- fix issues where the Undo action in the Browse screen was not
consistent with the main window. The existing hook signature has been
changed; from a snapshot of the add-on code from a few months ago, it
was not a hook that was being used by anyone.
- change the undo shortcut in the Browse window to match the main
window. It was different because undoing a change in the editing area
could accidentally trigger an undo of an operation, but the damage is
limited now that (most) operations can be redone. If it still proves to
be a problem, perhaps we should just always swallow ctrl+z when an
editing field is focused.
2021-05-19 15:18:39 +10:00
Damien Elmes
34c26a8b1c
split browser dialogs into separate files
2021-05-08 15:08:45 +10:00
Damien Elmes
9c51aa5a64
move "find duplicates" into separate file
...
As far as I'm aware, no add-ons were extending that screen, so I've
dropped the old context object and the export in browser/__init__.py
2021-05-08 14:33:43 +10:00
Damien Elmes
6dd78b0ea5
Merge pull request #1159 from hgiesel/newapproach
...
Prefer idiomatic Svelte features over dynamic components
2021-05-08 11:35:31 +10:00
Henrik Giesel
755b39b59e
Check for id when inserting dynamic elements
...
* I'm not sure it behaved, if there were multiple elements
inserted by different add-ons into the same container
2021-05-07 16:50:17 +02:00
Damien Elmes
26e9fba1f7
update docstrings for latest black
2021-05-07 18:12:56 +10:00
Henrik Giesel
8c32691d30
Fix Preview Button after changing from f-string to normal string
2021-05-07 02:12:37 +02:00
Henrik Giesel
bb2fb8e9f5
Fix ButtonDropdown
2021-05-07 02:04:44 +02:00
Henrik Giesel
dd99524ae0
Enable setting of PreviewButton and hiding of cloze button again
2021-05-07 02:04:42 +02:00
Damien Elmes
e468daa060
undoing of notetype templates
2021-04-30 17:30:48 +10:00
RumovZ
8e0298120d
Add separate no_arg_trigger decorator
2021-04-26 08:46:08 +02:00
Damien Elmes
532840bbfc
Merge pull request #1154 from RumovZ/fix-skip-dec
...
Fix skip_if_selection_is_empty() for triggers
2021-04-26 09:21:42 +10:00
RumovZ
7ac84a38d6
Remove some unnecessary lambdas
2021-04-25 19:51:57 +02:00
RumovZ
4b91c2b9f1
Fix skip_if_selection_is_empty() for triggers
...
It seems to be enough if one decorator calls pyqtSlot(), but to avoid
problems in the future, let's have all decorators do that.
2021-04-25 19:50:56 +02:00
Henrik Giesel
a21a4d330b
Initialize editor toolbar via function, not web component
2021-04-25 18:32:01 +02:00
Damien Elmes
68a4f4bade
Merge pull request #1151 from RumovZ/no-sel-dec
...
Fix some problems with browser actions while selection is empty
2021-04-25 20:48:40 +10:00
Damien Elmes
f3b344a571
fix error when user cancels out of set due date/reposition
2021-04-25 19:33:25 +10:00
RumovZ
f898f5507c
Skip some browser methods if selection is empty
...
This was handled inconsistently before:
* Select Notes would throw a search error.
* Set Due Date would throw an exception.
* Dialogs with no effect would open.
* No-ops would be pushed to the undo queue.
2021-04-25 08:47:15 +02:00
Henrik Giesel
01b53a6be8
Make update algorithm in editor-toolbar/index.ts recursive
2021-04-23 20:50:09 +02:00
Henrik Giesel
9e952e428e
Use rawButton in browser.py
2021-04-23 17:34:42 +02:00
Damien Elmes
04f0adb847
fix Find Dupes activation
2021-04-20 21:13:21 +10:00
Henrik Giesel
ff8cfd1c3e
Add type to add_preview_shortcut
2021-04-15 15:50:29 +02:00
Henrik Giesel
1a04ca32fe
Add Latex formatting options to menu
...
* Format shortcuts in monospace font and increase padding a little bit
2021-04-15 15:20:37 +02:00
Henrik Giesel
277d0af336
Add Preview shortcut for browser
2021-04-15 13:09:51 +02:00
Henrik Giesel
f5687f5aec
Add support for Preview button in Browser
2021-04-15 13:09:50 +02:00
Arthur Milchior
ad9adee26a
NF: factorize browser.current_search
...
I was looking at search code and find out that's already slightly more clear/short even if NF
2021-04-14 10:55:41 +02:00
Damien Elmes
ec6a2f7e2a
Merge pull request #1124 from hgiesel/dropjquerypy2
...
Remove jQuery from remaining qt/aqt files
2021-04-14 12:43:11 +10:00
Henrik Giesel
d2a5d9e246
Satisfy formatter
2021-04-13 20:29:59 +02:00
Henrik Giesel
10c7d4bf34
Remove jquery from browser.py
2021-04-13 19:54:45 +02:00
RumovZ
f62cfc15c2
Move previewer.py into browser folder
2021-04-13 11:38:35 +02:00
RumovZ
e37dc6c68c
Move find_and_replace.py into browser/dialogs
2021-04-13 11:21:36 +02:00
RumovZ
12d3084e46
Refactor sidebar.py into browser folder
2021-04-13 11:05:49 +02:00
RumovZ
a1e8746efd
Refactor browser and table into folders
2021-04-12 09:50:44 +02:00