Damien Elmes
4b112950b8
Merge pull request #971 from abdnh/sidebar-checkpoints
...
Add checkpoints for sidebar drag & drop routines
2021-02-02 22:28:53 +10:00
Damien Elmes
33319e1691
Merge pull request #970 from RumovZ/cleanup-967
...
Cleanup 967
2021-02-02 22:03:43 +10:00
abdo
2754464147
Add checkpoints for sidebar drag & drop routines
...
Also save note and reset browser model
2021-02-02 14:58:44 +03:00
Damien Elmes
7e22bc16bc
fix: Qt translations not working
...
Will need to manually confirm this is working in the bundled builds
2021-02-02 21:12:28 +10:00
RumovZ
2499f2ae34
Remove standard button translations
2021-02-02 11:57:35 +01:00
Damien Elmes
4330ab58f5
auto-expand items while dragging
2021-02-02 20:14:14 +10:00
Damien Elmes
a50601ed46
add tag drag & drop support
2021-02-02 20:14:04 +10:00
Damien Elmes
dd54c10e71
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
467064f873
collapsed->expanded in other tag uses for consistency
2021-02-02 18:52:57 +10:00
Damien Elmes
52b256663f
collapsed->expanded in TagTreeNode
2021-02-02 18:52:57 +10:00
RumovZ
14775445df
Add docstring to browser.__ini__
2021-02-02 09:48:55 +01:00
RumovZ
c3ae1a3049
Disallow untyped defs for dyndeckconf
2021-02-02 09:40:05 +01:00
RumovZ
16462941ab
Remove actionCreateFilteredDeck2 and use modifier
2021-02-02 09:29:09 +01:00
Damien Elmes
0bf2538989
remove sidebar margins
2021-02-02 16:35:42 +10:00
Damien Elmes
7fc32db0c9
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
ee1ed033a2
Hide sidebar items when there is no match
2021-02-02 05:41:45 +03:00
abdo
6f5d1bca3f
Add more sidebar section roots
2021-02-02 04:51:45 +03:00
Damien Elmes
b7bfe58afe
fix sync warning caused by mistake in typing work
2021-02-02 10:43:49 +10:00
Damien Elmes
3a8fce69dd
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
b450c8d45c
Add remaining type hints to dyndeckconf etc.
2021-02-01 23:46:56 +01:00
RumovZ
c18af2a0a9
Merge branch 'master' into dyn-deckconf
2021-02-01 23:33:41 +01:00
RumovZ
2ddb4edbb0
Rename standard buttons to have transaltions
2021-02-01 23:20:57 +01:00
RumovZ
6c7b195da8
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
4666ba8b70
Enable renaming from dyndeck dialogue
2021-02-01 21:02:22 +01:00
RumovZ
8065e73ef8
Add cross links for second dyndeck filter
2021-02-01 19:10:05 +01:00
RumovZ
0d37254238
Style browser-from-filtered-deck button
...
Use theme color and add hover effect.
2021-02-01 18:01:57 +01:00
abdo
c96248d67f
Expand sidebar match trees one level
...
See 132bb5ff36
2021-02-01 19:12:43 +03:00
Damien Elmes
a56b09b987
add a bunch of return types
2021-02-01 23:53:23 +10:00
RumovZ
4d097b995d
Add button in dynDeckConf to search in browser
2021-02-01 13:55:03 +01:00
Damien Elmes
f15715fb07
add types to various other files
...
Mainly automated with MonkeyType
2021-02-01 22:08:56 +10:00
RumovZ
0949cdc73e
Rename "Filtered Deck from Current Filter"
2021-02-01 12:09:37 +01:00
Damien Elmes
84f8d7f604
add some types to main.py
2021-02-01 20:59:18 +10:00
RumovZ
6b1d5f14e8
Change filtered-deck shortcut in browser to Ctrl+G
2021-02-01 11:59:16 +01:00
RumovZ
6de6e5f339
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
98f4b3db81
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
d2024d1d1e
Fix pylints and type annotations in dyndeckconf
...
Also fix int representation of learning steps.
2021-02-01 09:56:10 +01:00
RumovZ
5aac81d15f
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
08b76e4489
add helper script to run mypy daemon
2021-02-01 17:29:03 +10:00
Damien Elmes
d13762bd32
add types to editor.py
2021-02-01 17:28:35 +10:00
Damien Elmes
1f6ed0739f
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
328c86d3a5
add missing types to sidebar.py
2021-02-01 09:51:46 +10:00
Damien Elmes
66c8ee3e0a
add missing types to browser.py
2021-02-01 09:39:55 +10:00
RumovZ
011b562038
Add current-filter-to-filtered-deck action
2021-01-31 23:16:49 +01:00
RumovZ
52867dfa6c
Make dyndeckconf a registered dialogue
2021-01-31 22:37:08 +01:00
Henrik Giesel
70b7cbcd4a
Move editor css to editor directory
2021-01-31 19:03:40 +01:00
RumovZ
0960ea6ece
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
2ab06a6540
Move editor to /ts/editor
2021-01-31 14:15:03 +01:00
Henrik Giesel
859a52ab15
Fix type issues
2021-01-31 13:34:39 +01:00
Henrik Giesel
33160dcb00
Make editor a rollup package
2021-01-31 13:34:37 +01:00
RumovZ
13c6921da1
Remove protobuf filters whole_col and current_deck
2021-01-31 11:12:49 +01:00
Damien Elmes
6c483bb577
add public wrappers for remaining backend functions
2021-01-31 18:56:16 +10:00
Damien Elmes
67cb147493
move rsbridge into _backend
2021-01-31 18:55:45 +10:00
Damien Elmes
9d853bbb03
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
3e69d39a25
Add missing sidebar onClicks
2021-01-31 08:56:34 +01:00
Damien Elmes
cb805cf355
Merge branch 'more-backend-search' into main
2021-01-31 14:21:51 +10:00
Damien Elmes
126b642115
disable multiple selection for now
2021-01-31 14:02:38 +10:00
Damien Elmes
18f0b78716
disable dragging of unsupported items
2021-01-31 13:46:31 +10:00
Damien Elmes
4579740df6
support dragging multiple decks at once
2021-01-31 13:46:31 +10:00
Damien Elmes
49a40e7178
add missing check for on_done==None in with_progress()
2021-01-31 13:46:31 +10:00
Damien Elmes
28ff061c19
support drag&drop of decks in sidebar
2021-01-31 13:46:31 +10:00
Damien Elmes
8410330f94
move drag/drop deck logic to backend
2021-01-31 13:46:31 +10:00
RumovZ
9bfe8e3840
Remove search button and reword search bar hint
2021-01-30 19:23:40 +01:00
RumovZ
b0890b0e47
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
375794893f
Replace leftover _named_filter with _filter_func
2021-01-30 17:39:21 +01:00
Henrik Giesel
126af1fef3
Fix focus on first field upon opening editor
2021-01-30 14:20:14 +01:00
RumovZ
9e9d8b9c7a
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
5425b00d2b
Import SearchTerm from collection in aqt
2021-01-30 12:51:24 +01:00
RumovZ
26e5235846
Fix type annotations in browser search
2021-01-30 11:24:33 +01:00
RumovZ
63e8b44629
Update docstrings for browser search
2021-01-30 11:05:48 +01:00
RumovZ
9c4cc88b47
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
b66bedbc9f
Merge pull request #957 from hgiesel/fieldsshadow
...
Implement editor as Web Component
2021-01-30 15:13:58 +10:00
Damien Elmes
705012164b
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
cb6b88da0f
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
1adc9952f4
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
5e6dd54c8e
export SearchTerm from collection.py, and avoid exporting embedded items
2021-01-30 11:01:11 +10:00
Damien Elmes
73b897c754
rename FilterToSearchIn in backend to match frontend
2021-01-30 10:54:21 +10:00
Damien Elmes
52bac7a7a1
use a separate enum for the is:* searches
2021-01-30 10:49:00 +10:00
Damien Elmes
22b80c2dd5
combine forgot_in_days and studied_today into a more general 'rated'
2021-01-30 10:26:23 +10:00
Damien Elmes
177036d0c1
Merge pull request #958 from hgiesel/zindexedtopbar
...
Make sticky topbar have a positive z-index
2021-01-30 09:14:50 +10:00
RumovZ
2ca4f31fc8
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
671c6a7b3e
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
61346cf1f7
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
2e72de4af0
Reorder methods / properties
2021-01-29 20:13:02 +01:00
Henrik Giesel
e37fd2e091
Remove unnecessarily observed attribute
2021-01-29 20:11:00 +01:00
Henrik Giesel
aa924ac821
Add semicolon in js message
2021-01-29 19:48:17 +01:00
Henrik Giesel
3559834bc9
Make forEditorField more cheaper to execute by avoiding casting to Array
2021-01-29 19:38:55 +01:00
RumovZ
c299e271e8
Refactor search_string() and FilterToSearchIn
...
See #955 .
2021-01-29 18:27:33 +01:00
Henrik Giesel
79dc0ecf86
Remove explicit ids, as they are not necessary anymore
2021-01-29 18:07:31 +01:00
Henrik Giesel
5e67e706fb
No need to set initial values for editing area base CSS
2021-01-29 17:51:26 +01:00
Henrik Giesel
32ee863577
Remove checking for class names for instance checks
2021-01-29 17:41:27 +01:00
Henrik Giesel
982372beae
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
0beefc0699
Move setting of index to connectedCallback
2021-01-29 14:54:59 +01:00
Henrik Giesel
fe87f986d3
Remove user styling in editor again for now
2021-01-29 14:54:59 +01:00
Henrik Giesel
594fc9bebd
Fix focus change on tab
2021-01-29 14:54:59 +01:00
Henrik Giesel
6e907fd8b6
Move styling attributes from editor to editing-area that are for editing area
2021-01-29 14:54:58 +01:00
Henrik Giesel
a620bf91a8
Make button highlight white in nightMode
2021-01-29 14:54:58 +01:00
Henrik Giesel
3eade1c64d
Make the text color part of the base style in editor
2021-01-29 14:54:58 +01:00
Henrik Giesel
af3753948a
Allow stylesheet of note type take effect on editor fields
2021-01-29 14:54:58 +01:00
Henrik Giesel
8a525d3643
Use currentField.getSelection instead of window.getSelection
2021-01-29 14:54:58 +01:00
Henrik Giesel
08a6f8f02f
Use new focusEditingArea and blurEditingArea to delegate to editing area
2021-01-29 14:54:58 +01:00