Damien Elmes
957e781484
add tag drag & drop support
2021-02-02 20:14:04 +10:00
Damien Elmes
9ef0a1e070
Merge pull request #968 from abdnh/sidebar-expand-matches
...
Expand sidebar match trees one level
2021-02-02 19:03:04 +10:00
Damien Elmes
c5704e6102
collapsed->expanded in other tag uses for consistency
2021-02-02 18:52:57 +10:00
Damien Elmes
99d6247333
collapsed->expanded in TagTreeNode
2021-02-02 18:52:57 +10:00
RumovZ
af7aa4c21d
Add docstring to browser.__ini__
2021-02-02 09:48:55 +01:00
RumovZ
03ed76020f
Disallow untyped defs for dyndeckconf
2021-02-02 09:40:05 +01:00
RumovZ
45739cbc64
Remove actionCreateFilteredDeck2 and use modifier
2021-02-02 09:29:09 +01:00
Damien Elmes
ee2e68fa6b
remove sidebar margins
2021-02-02 16:35:42 +10:00
Damien Elmes
5c25a71634
fix: slowdowns after import; hard to read popup
...
QTextEdit() will pin the CPU at 100% for seconds to minutes when
fed a large string to display - work around it by switching to
QPlainTextEdit().
Also strip HTML before showing the user - easier to read, and less
text to display. And turn off word wrap, as it makes it easier to skim,
and further reduces the work the widget needs to do.
https://forums.ankiweb.net/t/big-issue-where-anki-gets-slow-when-you-import-this-deck/7050
2021-02-02 15:49:47 +10:00
abdo
14927c2465
Hide sidebar items when there is no match
2021-02-02 05:41:45 +03:00
abdo
1b72e142a7
Add more sidebar section roots
2021-02-02 04:51:45 +03:00
Damien Elmes
a1a70b1809
fix sync warning caused by mistake in typing work
2021-02-02 10:43:49 +10:00
Damien Elmes
b2c9030a58
ditch QSortFilterProxyModel in favour of our own code
...
Simpler and approximately twice as fast in a large collection:
old approach
search for a: 371ms
search for an: 260ms
new approach:
search for a: 171ms
search for an: 149ms
Still todo: add enum defs for the other root categories, update
the _section_root() calls, and update is_expanded() to use the new
extra types
2021-02-02 10:40:50 +10:00
RumovZ
8d8a2e49fd
Add remaining type hints to dyndeckconf etc.
2021-02-01 23:46:56 +01:00
RumovZ
b21d1dcbc0
Merge branch 'master' into dyn-deckconf
2021-02-01 23:33:41 +01:00
RumovZ
7b39fb6484
Rename standard buttons to have transaltions
2021-02-01 23:20:57 +01:00
RumovZ
99ffc08dbf
Make browser links unfocusable
...
Since Enter would trigger Accept anyway, there is no point in them
having focus.
2021-02-01 21:17:15 +01:00
RumovZ
3e30bd4610
Enable renaming from dyndeck dialogue
2021-02-01 21:02:22 +01:00
RumovZ
320b82aae6
Add cross links for second dyndeck filter
2021-02-01 19:10:05 +01:00
RumovZ
fbc5de4596
Style browser-from-filtered-deck button
...
Use theme color and add hover effect.
2021-02-01 18:01:57 +01:00
abdo
5c24e57734
Expand sidebar match trees one level
...
See 03eab6b646
2021-02-01 19:12:43 +03:00
Damien Elmes
748aeb9df1
add a bunch of return types
2021-02-01 23:53:23 +10:00
RumovZ
b76632eb62
Add button in dynDeckConf to search in browser
2021-02-01 13:55:03 +01:00
Damien Elmes
83892eac51
add types to various other files
...
Mainly automated with MonkeyType
2021-02-01 22:08:56 +10:00
RumovZ
ef413b90c6
Rename "Filtered Deck from Current Filter"
2021-02-01 12:09:37 +01:00
Damien Elmes
8be63cb902
add some types to main.py
2021-02-01 20:59:18 +10:00
RumovZ
27609a784f
Change filtered-deck shortcut in browser to Ctrl+G
2021-02-01 11:59:16 +01:00
RumovZ
d57d0f977b
Make browser accept optional args and add reopen
...
That way, the caller doesn't have to hold a reference to the browser and
explicitly call it again, if it wants to search for something specific.
Also, if the browser was closed and opened for a single-card-search, it
now won't perform a redundant current-deck-search first.
2021-02-01 11:54:28 +01:00
Damien Elmes
8dc5ea8bb6
add types to utils.py
...
The function signatures for things like getFile() are awful, but
sadly are used by a bunch of add-ons.
2021-02-01 20:23:48 +10:00
RumovZ
aa6cf51527
Fix pylints and type annotations in dyndeckconf
...
Also fix int representation of learning steps.
2021-02-01 09:56:10 +01:00
RumovZ
2a82e43c0b
Make DialogManager accept kwargs
...
When opening a dialogue accepting multiple optional arguments, relying
on position is error-prone and requires passing Nones to fill unused
parameter slots.
2021-02-01 08:50:19 +01:00
Damien Elmes
dc261c5abf
add helper script to run mypy daemon
2021-02-01 17:29:03 +10:00
Damien Elmes
34935bf478
add types to editor.py
2021-02-01 17:28:35 +10:00
Damien Elmes
b3f9d12606
Merge pull request #962 from hgiesel/editordirs
...
Make editor a rollup package within data/web/js
2021-02-01 13:40:54 +10:00
Damien Elmes
fe0d6b3a10
add missing types to sidebar.py
2021-02-01 09:51:46 +10:00
Damien Elmes
2070847868
add missing types to browser.py
2021-02-01 09:39:55 +10:00
RumovZ
90e1a75dd6
Add current-filter-to-filtered-deck action
2021-01-31 23:16:49 +01:00
RumovZ
23d1481d34
Make dyndeckconf a registered dialogue
2021-01-31 22:37:08 +01:00
Henrik Giesel
9f3403d704
Move editor css to editor directory
2021-01-31 19:03:40 +01:00
RumovZ
53513f371f
Rework dynndeckconf
...
- Handle deck building inside class. New deck is built unless caller
passes filtered deck.
- If no deck is passed and current deck is filtered, copy settings.
- Remove exec_().
2021-01-31 18:20:47 +01:00
Henrik Giesel
978258067b
Move editor to /ts/editor
2021-01-31 14:15:03 +01:00
Henrik Giesel
e667191899
Fix type issues
2021-01-31 13:34:39 +01:00
Henrik Giesel
aba2506394
Make editor a rollup package
2021-01-31 13:34:37 +01:00
RumovZ
632ad14801
Remove protobuf filters whole_col and current_deck
2021-01-31 11:12:49 +01:00
Damien Elmes
56a75c07dc
add public wrappers for remaining backend functions
2021-01-31 18:56:16 +10:00
Damien Elmes
ebfc9d1915
move rsbridge into _backend
2021-01-31 18:55:45 +10:00
Damien Elmes
a6be0f493b
start work on more clearly defining backend/protobuf boundaries
...
- anki._backend stores the protobuf files and rsbackend.py code
- pylib modules import protobuf messages directly from the
_pb2 files, and explicitly export any will be returned or consumed
by public pylib functions, so that calling code can import from pylib
- the "rsbackend" no longer imports and re-exports protobuf messages
- pylib can just consume them directly.
- move errors to errors.py
Still todo:
- rsbridge
- finishing the work on rsbackend, and check what we need to add
back to the original file location to avoid breaking add-ons
2021-01-31 18:55:45 +10:00
RumovZ
4cb9bf7326
Add missing sidebar onClicks
2021-01-31 08:56:34 +01:00
Damien Elmes
9a697fd843
Merge branch 'more-backend-search' into main
2021-01-31 14:21:51 +10:00
Damien Elmes
86713be79c
disable multiple selection for now
2021-01-31 14:02:38 +10:00
Damien Elmes
3708d28d0c
disable dragging of unsupported items
2021-01-31 13:46:31 +10:00
Damien Elmes
1e573003e9
support dragging multiple decks at once
2021-01-31 13:46:31 +10:00
Damien Elmes
3a06fd2808
add missing check for on_done==None in with_progress()
2021-01-31 13:46:31 +10:00
Damien Elmes
0f8b0df491
support drag&drop of decks in sidebar
2021-01-31 13:46:31 +10:00
Damien Elmes
5710e4bbd0
move drag/drop deck logic to backend
2021-01-31 13:46:31 +10:00
RumovZ
d3d18d34c5
Remove search button and reword search bar hint
2021-01-30 19:23:40 +01:00
RumovZ
2539747115
Manually namespace enum variants in SearchTerm
...
In protobuf "...enum values use C++ scoping rules, meaning that
enum values are siblings of their type, not children of it.
Therefore, [an enum variant] must be unique within [a message],
not just within [the enum.]"
So we must prefix enum variants with their enum's name, but can
also call them directly from the message namespace.
The protobuf crate is smart, though, and strips the prefixes.
(Simultaneously change some SearchTerm variant names.)
2021-01-30 17:56:29 +01:00
RumovZ
cdabb0ecbe
Replace leftover _named_filter with _filter_func
2021-01-30 17:39:21 +01:00
Henrik Giesel
a94bcbcc74
Fix focus on first field upon opening editor
2021-01-30 14:20:14 +01:00
RumovZ
353355fb15
Build list in focusCid and specify exception
...
model.cards may be a protobuf sequence but focusCid needs list's index
method, so convert to list, but only if needed.
2021-01-30 13:15:46 +01:00
RumovZ
540338cea3
Import SearchTerm from collection in aqt
2021-01-30 12:51:24 +01:00
RumovZ
a20ee1c844
Fix type annotations in browser search
2021-01-30 11:24:33 +01:00
RumovZ
9a1ff40b65
Update docstrings for browser search
2021-01-30 11:05:48 +01:00
RumovZ
fd07ef212a
Auto search and check input before model search
...
- Search for current deck automatically on browser setup.
- Hide current deck and current card searches.
- Check user search input before passing it on to the model, so invalid
searches don't change TableView.
2021-01-30 10:53:42 +01:00
Damien Elmes
747075e9a7
Merge pull request #957 from hgiesel/fieldsshadow
...
Implement editor as Web Component
2021-01-30 15:13:58 +10:00
Damien Elmes
190922666b
move Rating up a level
...
More ergonomic, and will allow reuse if we expose prop:rated in
the future.
2021-01-30 11:54:39 +10:00
Damien Elmes
2f1bbd44d2
simplify nid/nids searches, and ditch helper function
...
- IdList could be re-used for a cids: search in the future if required.
- Embedding the message means it's easy to access from Python as
an attribute of SearchTerm.
2021-01-30 11:37:00 +10:00
Damien Elmes
f6f537e89f
simplify Dupe message and ditch helper function
...
Calling code doesn't need to know about the existence of such helpers;
it can just rely on code completion to discover the required arguments.
2021-01-30 11:10:26 +10:00
Damien Elmes
cf1e2a2c0d
export SearchTerm from collection.py, and avoid exporting embedded items
2021-01-30 11:01:11 +10:00
Damien Elmes
b34d128560
rename FilterToSearchIn in backend to match frontend
2021-01-30 10:54:21 +10:00
Damien Elmes
dbe852431f
use a separate enum for the is:* searches
2021-01-30 10:49:00 +10:00
Damien Elmes
e3f2b77c5b
combine forgot_in_days and studied_today into a more general 'rated'
2021-01-30 10:26:23 +10:00
Damien Elmes
873bf7f505
Merge pull request #958 from hgiesel/zindexedtopbar
...
Make sticky topbar have a positive z-index
2021-01-30 09:14:50 +10:00
RumovZ
cad57423c5
Update search history only after successful search
...
Ergo, don't save invalid searches, but also save searches normalised so
equivalent searches get saved only once.
2021-01-29 23:05:51 +01:00
RumovZ
df22e51d02
Rework search initialisation
...
- Remove _searchPrompt.
- Add placeholder prompt.
- Move search for current card from browser to caller. (Thus, support
current card search even with opened browser.)
2021-01-29 21:07:42 +01:00
Henrik Giesel
44351bc997
Rename editingContainer -> editingArea; editingArea -> editable
...
* Custom elements are now namespaces with `anki-`
* The element names are inspired by summernote, which have the same
naming scheme of "editingArea > editable"
2021-01-29 20:32:21 +01:00
Henrik Giesel
c44c1513a3
Reorder methods / properties
2021-01-29 20:13:02 +01:00
Henrik Giesel
da79acf685
Remove unnecessarily observed attribute
2021-01-29 20:11:00 +01:00
Henrik Giesel
9771b5394c
Add semicolon in js message
2021-01-29 19:48:17 +01:00
Henrik Giesel
e7a49d5c48
Make forEditorField more cheaper to execute by avoiding casting to Array
2021-01-29 19:38:55 +01:00
RumovZ
c7365abc9e
Refactor search_string() and FilterToSearchIn
...
See #955 .
2021-01-29 18:27:33 +01:00
Henrik Giesel
00a4d0357d
Remove explicit ids, as they are not necessary anymore
2021-01-29 18:07:31 +01:00
Henrik Giesel
1617565f2d
No need to set initial values for editing area base CSS
2021-01-29 17:51:26 +01:00
Henrik Giesel
36ce422119
Remove checking for class names for instance checks
2021-01-29 17:41:27 +01:00
Henrik Giesel
a33fa9c0cf
Put HTML initialization into web component constructor
...
* disconnectedCallback should remove event listeners and free other resources
* attributes belong to connectedCallback
2021-01-29 15:50:34 +01:00
Henrik Giesel
514d6b68b6
Move setting of index to connectedCallback
2021-01-29 14:54:59 +01:00
Henrik Giesel
1f5793e9e7
Remove user styling in editor again for now
2021-01-29 14:54:59 +01:00
Henrik Giesel
ef404c73ce
Fix focus change on tab
2021-01-29 14:54:59 +01:00
Henrik Giesel
646415fd09
Move styling attributes from editor to editing-area that are for editing area
2021-01-29 14:54:58 +01:00
Henrik Giesel
fc24ebfb9e
Make button highlight white in nightMode
2021-01-29 14:54:58 +01:00
Henrik Giesel
f3aaa40238
Make the text color part of the base style in editor
2021-01-29 14:54:58 +01:00
Henrik Giesel
49c3723647
Allow stylesheet of note type take effect on editor fields
2021-01-29 14:54:58 +01:00
Henrik Giesel
3d2c4b9969
Use currentField.getSelection instead of window.getSelection
2021-01-29 14:54:58 +01:00
Henrik Giesel
28276a9acf
Use new focusEditingArea and blurEditingArea to delegate to editing area
2021-01-29 14:54:58 +01:00
Henrik Giesel
b423c372d5
Fix dupes, but also make sticky, and centered to draw more attention
2021-01-29 14:54:58 +01:00
Henrik Giesel
8381d9f842
Update setFonts and setBackgrounds
2021-01-29 14:54:58 +01:00
Henrik Giesel
7170a2b853
Fix inListItem for shadow roots
2021-01-29 14:54:58 +01:00
Henrik Giesel
0c2b560718
Rename fieldContainsInlineContent to containsInlineContent to reflect new usage
2021-01-29 14:54:58 +01:00
Henrik Giesel
cbb5224f48
Isolate styling of editing-area into new scss file
2021-01-29 14:54:58 +01:00
Henrik Giesel
fd704381a0
Create a rough draft of the editor web component
2021-01-29 14:54:58 +01:00