* Remember original id when importing notetype
* Reuse notetypes with matching original id
* Add field and template ids
* Enable merging imported notetypes
* Fix test
Note should be updated if the incoming note's notetype is
remapped to the existing note's notetype.
On the other hand, it should be skipped if its notetype id is mapped
to some new notetype.
* Change field and template ids to i32
* Add merge notetypes flag to proto message
* Add dialog for apkg import
* Move HelpModal into components
* Generalize import dialog
* Move SettingTitle into components
* Add help modal to ImportAnkiPackagePage
* Move SwitchRow into components
* Fix backend method import
* Make testable in browser
* Fix broken modal
* Wrap in container and fix margins
* Update commented Anki version of new proto fields
* Check ids when comparing notetype schemas
* Add tooltip for merging notetypes.
* Allow updating notes regardless of mtime
* Gitignore yarn-error.log
* Allow updating notetypes regardless of mtime
* Fix apkg help carousel
* Use i64s for template and field ids
* Add option to omit importing scheduling info
* Restore last settings in apkg import dialog
* Display error when getting metadata in webview
* Update manual links for apkg importing
* Apply suggestions from code review
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
* Omit schduling -> Import all cards as new cards
* Tweak importing-update-notes-help
* UpdateCondition → ImportAnkiPackageUpdateCondition
* Load keyboard.ftl
* Skip updating dupes in 'update alwyas' case
* Explain more when merging notetypes is required
* "omit scheduling" → "with scheduling"
* Skip updating notetype dupes if 'update always'
* Merge duplicated notetypes from previous imports
* Fix rebase aftermath
* Fix panic when merging
* Clarify 'update notetypes' help
* Mention 'merge notetypes' in the log
* Add a test which covers the previously panicking path
* Use nested ftl messages to ensure consistency
* Make order of merged fields deterministic
* Rewrite test to trigger panic
* Update version comment on new fields
* Align spinner buttons on right
The initial rationale for splitting them up was to be more touch friendly,
but we won't be able to use them on mobile anyway due to the conflicts
with double taps zooming in. On desktop, having them apart requires more
mouse movement when overshooting, so it's better to have them in one
place.
Text is now left-aligned again, which matches our other inputs like
learning steps.
The left/right buttons have been changed to up/down, which matches our
Qt spinners, and avoids RTL concerns.
This commit also removes the border on hover/select - it caused the
left-aligned content to flicker, and didn't look correct. Perhaps we could
add it back in a better way in the future.
* Hide spinner buttons on mobile devices
Tapping on them conflicts with the page zoom gesture.
* Remove min-height on spinner buttons
* Only show spinner on hover
Since they're only useful with a mouse, and only useful when they're
under the cursor, hiding them when focused keeps things less cluttered.
* Make tags editor resizable using Henrik's components
All credit for the components goes to Henrik. I just tweaked the design a bit and implemented them in NoteEditor.
Co-Authored-By: Henrik Giesel <hengiesel@gmail.com>
* Remove PaneContent padding
Co-Authored-By: Henrik Giesel <hengiesel@gmail.com>
* Add responsive box-shadows on scroll/resize
only shown when content overflows in the respective direction.
* Remove comment
* Fix overflow calculations and shadow mix-up
This happened when I switched from using scrolledToX to overflowX booleans.
* Simplify overflow calculations
* Make drag handles 0 height/width
The remaining height requirement comes from a margin set on NoteEditor.
* Run eslint on components
* Split editor into three panes: Toolbar, Fields, Tags
* Remove upper split for now
to unblock 2.1.55 beta
* Move panes.scss to sass folder
* Use single type for resizable panes
* Implement collapsed state toggled with click on resizer
* Add button to uncollapse tags pane and focus input
* Add indicator for # of tags
* Use dbclick to prevent interference with resize state
* Add utility functions for expand/collapse
* Meddle around with types and formatting
* Fix collapsed state being forgotten on second browser open (dae)
* Fix typecheck (dae)
Our tooling generates .d.ts files from the Svelte files, but it doesn't
expect variables to be exported. By changing them into functions, they
get included in .bazel/bin/ts/components/Pane.svelte.d.ts
* Remove an unnecessary bridgeCommand (dae)
* Fix the bottom of tags getting cut off (dae)
Not sure why offsetHeight is inaccurate in this case.
* Add missing header (dae)
Co-authored-by: Henrik Giesel <hengiesel@gmail.com>
* Create _input-mixins.scss
* Use button-mixins on more elements
* Replace <select> tag with custom Select component
* Fix RevertButton causing cursor: pointer when hidden
* Increase SaveButton chevron width
* Hide floating component box-shadow when inactive
* Rework SpinBox and move it into components
* Run eslint and prettier
* Remove leftover options prop
* Pass disabled array to EnumSelector again
* Update MapperRow.svelte
* Darken QHeaderView border color
Slipping this in without an extra PR.
* Adjust disabled color, border and cursor
* Remove redundant icon definition from stylesheets
* Fix deck options initial config
* Fix z-index issues in change notetype screen
It might be best to handle z-index locally in each user component instead of hard-coded component values.
* Give web SpinBox a horizontal design
* Give QRadioButton the same treatment as QCheckBox in #2079
* Fix unused CSS selector warning with base button-mixin
* Remove redundant import
* Fix deck options save button
* Delete input-mixins and remove unused down-arrow
* Run eslint on change-notetype
* Run eslint on components