- retry in case google translate fails
- targetSdkVersion 29
- better way to use sdcard
-look into fixes reported by dashboard
-check 'redraw now'
-cramming widget for Android
-setting to allow choosing the database location?
-revisit multiple database option?
-'sync' button should sync directly without going through the sync settings
dialog. Put the settings in a settings window instead.
-make sure Android uploads logs as well
-set default grade?
-plugin to hide card, i.e. no longer show it?
-option to globally increase / decrease font size with respect to desktop
Minor bugs / issues:
- no sync conflicts between edit and review
- renaming saved sets only changing case does not work.
- datetime.datetime.now() does not seem to respect DST inside Mnemosyne, but it does work in a standalone Python programme.
-saving of folded tree state also from 'activate cards' dialog
-upgrade pyinstaller if this issues is fixed:
https://stackoverflow.com/questions/57517371/matplotlibdeprecationwarning-with-pyinstaller-exe (used option 2 as a workaround)
-upgrade to Python 3.8 if this is fixed:
-test speed of new cheroot
-editing a tag by clicking in the tree does not get saved
- wheelock anki deck:
- where does div on import appear? e.g. numerus
- searching for div turns up wrong results?
- empty ()
- checking for unused tags scales badly when deleting 1500 cards
- can result in deleting same tag twice?
-Are the configuration settings properly synced?
-Delete current card which is sentence card with only a sentence field does not
seem to work.
-when saving the position and the selection in the card browser, would it be
better to store ids rather than row numbers? This affects the case where
there are filters active, whose state changes due to the edit. But what
then if the edit removes the current selection from the filter?
-Adding the "enabled" tag does not automatically get rid of the cross-out in the
-Prevent commas in tag names also when using 'create_new_cards' in script.
-Incoming sync when card browser is open does not work.
-Add cloze from card browser, preview does not update correctly
to show new number of cards
-For Latex on OSX: try and have OSX search system paths, or otherwise edit config.py
latex = "/Library/TeX/texbin/latex -output-format=dvi -interaction=nonstopmode"
dvipng = "/Library/TeX/texbin/dvipng -D 200 -T tight tmp.dvi"
-Anki: Q and A align top, no boundaries around content: document how to add CSS
to fix this?
-sometimes scheduled counter goes negative? Hard to reproduce...
-migrate sync server / web server / sync dialog to qt_worker_thread
-strip HTML when doing rlt check?
-decrease size of installer by seeing if more libraries can be removed.
-example plugin for new learning modes
-update dev instructions linux, windows
-run tests in different threads
-keeping a key pressed after 'grade answer' proceeds to show the question
-RTL still does not work for first cloze, in the case the sentence is more than
-after sync, a cloze card type displays all hints
-sister card not automatically updated when pg-dwn through card browser
-"A <audio> B" displays only "A"
-test if initial sync on Android download archive files download, using a custom
-merge and edit dialog: if the cards contain too much info, the window is so
large that the buttons are not visible.
-edit card to update a media file, sync with 'check for updated media files on
-server.py imports from libmnemosyne.utils
-import/export dialog alignment does not look nice
-Select saved set, switch tab to other criterion (deselects set) and switch
back to original one.The set should then be autoselected again.
-layout of "add clone" is not optimal under Windows
-select saved set, delete that set: set name is still visible in windows header
-sync of changed saved set does not update title on target machine
-creating a new clone does not generate appearance setting events for sync
-Related: create a new cardtype through *.cards import, setting font, does not
seem to sync across?
-if the sync changed the appearance settings, the current card's question still
shows the old appearance
-note: sync from a to b and then to c adds latex files to the media table. Is
this aproblem? Can the table become corrupt?
-heartbeat in headless server: if a sync request comes in while this is running,
it will fail because of threading issues.
-Michael Campbell: I changed the background color of Mnemosyne to something
other than white, and I noticed that it uses that color when adding new
content. However, when that window does not have focus, it turns white again.
-tag on client, same tag on server, then sync.
Tag names get renamed, but original tag is set inactive.
-cloze deletion in combination with latex or html does not pick up any open
-don't switch to text entry field when changing card type with the keys.
-when the server thread hangs and the main program is terminated, the cleanup
code gets called from the main thread as opposed to from the server thread,
and will therefore fail. (The server thread should release its connection
-if last card had unequal split, learn ahead of schedule message does not go
back to 50/50 split.
-webserver: map card type does not really hide the question box, just blanks the
-corner case: If M > 0 and k < 0 then (a,b) is a local maximum
If M > 0 and k > 0 then (a,b) is a local minimum: eats < ... >
-move button group in review widget to designer code after pyqt upgrade.
Also possible in add cards?
*These were all reported using Qt4, and probably no longer apply:
-Qt bug? different font size in edit box and in css
-Qt bug? Cannot restore scroll_to column in card browser after tag rename.
-Qt bug? Cntl+a select all in card browser only selects all the prefetched
-Qt bug? insertAtTop on tags combobox in add_cards does not seem to work
-Qt bug? cursor is always black, also on a black background
-Qt bug? error dialogs don't allow copying the text from it on all platforms
-Qt bug? svg Mnemosyne watermark for tip and getting started does not work under
-Qt bug? review widget: frame.scroll does not seem to work reliably for PageUp
-Qt bug? clicking on web widget in preview dialog eats escape keypress
-Qt bug? QGraphicsWebView.loadFinished sometimes fires before images are loaded?
-Qt bug? bulleted lists: bullets are always aligned left, not centered:
<ul><li>Focuses 20 to 30cm away</li>
<li>Eyes wander and occasionally cross</li>
-Qt bug? text + linebreak + video + linebreak + text2 does not show text2
-Qt bug? Windows titles not shown?
-Qt bug? When setting Arial as initial font to the FontDialog, it is always
-Qt bug? In default_criterion_widget, need to reinitialise text of label
-Qt bug? When installing the translator, need to reset window title manually.
-Qt bug? keypressEvent for 'yet to learn' works for enter, return, y, but not
0 or 1.
-Qt bug? main_widget.set_window_title seems to work only if no title was
defined in the ui file.
-Qt bug? cannot define sq escape character to search for literal _
-Qt bug? Kanji does not scale, but latin does
åŽ³é‡?ã?ªè¦æˆ’<span style="font-size:24pt;">test åŽ³é‡?ã?ªè¦æˆ’</span>
1. Add new card
2. Enter "test" on front
3. Enter "« test »" (alt+174, alt+175) on back
The card gets closed the moment one has hit the alt+..5 key and a new card is
created with just the "»" symbol.
-Qt bug: enabling word wrap on tag label breaks setting of stretch factors in
q and a
-Qt issue: toggling a tag in the card browser using 'space' does not update the
card list. Catched itemChanged instead of itemClicked would solve this in
theory, but this would cause a lot of spurious updates if you toggle the parent
of a big hierarchy. ItemActivated only seems to catch double clicks
-Qt issue: font size is rounded up to the nearest default integer in font
-tag browser editor of tag names does not capture focus out event, so card
count is not redrawn.
-Qt performance problem with selectRow
-Qt bug: cntro-Tabbing to different windows eats keyboard shortcuts: *-Tab to
"Current card", *-Tab stops working and the Statistics window will not close
-grep through TODO's in source code
- 'not' operator in searches
- switch to PyOxidizer when it supports PyQt?
- plugin to deactivate cards in a certain cardtype after X retention reps.
-check for required fields when using the Anki card type.
-first doing a count and then the actual a query is not a good idea:?
time 'number_of_log_entries_to_sync_for' vs 'number_of_log_entries'
-don't generate card edited logs when importing a card and no change occurs
in a card
#if (eval(log_entry["extra"]) == orig_card.extra_data) && \
# tags, unless extra tags on import
# card type
# Important: fact,
media, tag (check all 'already_imported' statements)
- broccoli integration? https://github.com/epfl-dlab/broccoli-plugin
-status bar: scheduled: x / not memorised: x / goal new cards: x/y
-new cards goal can overshoot, e.g. 7/5
-save state upon exit, reset at midnight
-config: goal_new_cards, new_cards_today
Other learning modes:
-add 'difficult' tag, and add 'cram difficult?'
-mixture of learn new / cram recent?
-config: cram recent: X days, only new cards vs new + relearned cards,
ratio between new and recent
-for 'cramming' cards, show yes/no buttons instead of 0-5
as visual indicator
-log that the card is crammed
-Unify review controllers and widgets, taking cramming buttons into account?
-generate end message for new learning modes. (learn ahead of schedule is not
-new scheduler Bayesian: https://github.com/fasiha/ebisu
-drawing canvas Gnome
-disable vocalisation, but only when not showing answer
-Qt's own translation
-Qt SDK: back to webkit? https://github.com/annulen/webkit
Make use of 'print to pdf' for resizing?
custom context menu
open links in external browser, QWebEnginePage::acceptNavigationRequest()
-speed up non-latin font size increase
-option to search in tag tree?
-new learning modes for initial learning of tag? multiple choice? Select audio?
-gamification? userinfuser, habitica
-mplayer to mpv?
-Improve tag completion box: does not work when clicking in the box, and does
not work when going back to a previous tag, e.g. if you have a,b,c and want
to go back to an expansion on a
-daily goals: memorise x, review y, streak chart, ...
-add creation date / modification date to current card statistics
-duplicate check on answer too? Needs to check whether all necessary fields are
marked as unique, also in F2B and B2F, vocabulary
-disable latex version check in testsuite
-rework make windows-installer so as not to require keypress, so that it can be
used from qtconsole
-option to turn off card count per tag?
-do create_database in a separate thread (see compact_database_dlg.py)
-factor out duplication of threaded UI stuff in sync and compact
-merging cards: should give an option to go back and edit?
-add login to webserver?
-clickable links in card browser (difficult, as after drawing Q or A, only the
bitmap is saved,not the browser widget)
-settings in config.py don't play well with syncing: if the user does not
update config.py on the target machine as well, these settings will get reset
by the default config.py there. So, get rid of config.py and move it to an
advanced settings plugin?
-activate cards: 'having any of these tags:' is not aligned with tag with tag
-command line switch for headless server not to check for updated card types.
-option to move dividers in edit field (e.g. for large font sizes)
-for the sentence card type without hints, use the 'meaning' font for Q in
production, instead of the sentence font?
-optimisation: change card type for many facts which calls
'delete_facts_and_their_data' does checking for unused tags multiple times.
-fine tuning: when merging a database, merge also the 'active' tag instead of
just looking at the deactivated fact views? Probably more general and also
more future proof in case of new criteria.
-menu option to copy database to USB key?
-Database locking mechanism can be circumvented if the first Mnemosyne copy
is in the browser (or apparently has just done file-new) (Scott Youngman)
-replace locking mechanism by switching to running instance of Mnemosyne?
-do honour delete media events under sync, by checking if there are no later
'added_media' events with the same file.
-when converting f2b to map through the card browser 'change card type',
check if it's at all possible to convert (enough fields), before showing
-with full sync, option to skip media sync
-Possible to get rid of unloading in python / reloading in Qt?
-speed up science log parser?
suggests that there's some SQLite3 functionality relating to the
'union' operator which could massively speed up insertion, pointing to
-optimise away DISTINCT and do it at the python level
-more sqlite profiling
!./bin/python /home/pbienst/apswtrace.py ./bin/nosetests -v tests/test_sync.py:TestSync.test_add_tag
-archive old learning data, check interplay with sync
-index on cards._fact_id to speed up e.g. sister_card_count_scheduled_between?
-profile different versions of sister_card_count_scheduled_between
-try apsw again, but make sure every statement is inside a transaction
-Jiri Palacek: conflict resolution at card level, e.g. if 1 card causes
conflict, but both database a and b have different non-conflicting new cards,
merge the non-conflicting cards ond keep one of the conflicting version.
-add debug information for conflict detection?
-automatic font size adjustment:
-synonym checking just like duplicate checking?
-option to pick location of backups in config? Also shows you where the datadir
is. Backup config too? Or explicit 'backup' option?
-bundle grades criterion? add criterion names i.e. type. Fix bug saving sets.
Other mechanism to skip scheduled cards? What happens to saved set after
-integrate with forvo
-insert latex tags shortcut and menu (phyTech)
-plugin for interval multiplication factor
-when exporting, progress bar when creating latex?
-add up and down arrows on browsing through the preview window?
-remove TMP adding of default o_id in sync
-circadian rythm plugin
-bundle more of the example plugins?
-'duplicate card' option in menu and browser? Or as plugin?
-default input method/keyboard layout per field?
-remove hack to preview cloze cards in card type appearance.
-plugin to reset active cards to unlearned
-make statistics refer to active cards only. Profile. (Dan Schmidt)
-add plugin example on card type specific renderer
-add doc on how to write plugin to sfinx doc
-Faq about how to pronounce Mnemosyne
-Optimisation: Adding a tag to a set of cards which already have this tag
generates unneccesary log events
-card appearance: show preview live?
-store all xml as debug information during sync?
-find and replace in card browser
-way to escape  in latex cloze cards, so as not be interpreted as cloze?
-docs on dealing with synonyms and words which have multiple meanings
(if implemented, update card converter too) check fonts for new meanings,
-removing plugin with criterion should not happen if it is in use.
-warn when syncing and the other criterion plugin is not present?
-make 'grade activity criterion' an official plugin? Add tests?
-hook up all dialogs in UDP
-scrape from websites: https://bitbucket.org/nosklo/supymemo/downloads
-also allow scrolling webview widgets using up and down keys? Will probably
require global event filter and slow everything down
-install kde translator to translate file dialogs and color dialogs
-different translators for different users?
-drag and drop in card browser, within tag tree
-worthwhile to apply same tricks from card browser to criterion applier, i.e.
inverting selection to go from 'in large set' to 'not in small set'?
Max time 0.6 secs, so perhaps not needed that much
-have hierarchy in plugin names
-heising card type (radical, number of strokes)
-infrastructure to make it easier to type certain symbols
-zooming on statistics?
-minimalist mode, without toolbar, extra text in review window.
F11 to move fullscreen
-partial implementation of type answer (none/all/special tag? Db Attribute?
-draw answer, make configurable by card type
-more plugin examples: file format, custom tag, activate all cards,
last grade filter
-if dialog like edit card or browse cards is open on server, try to close it
when sync comes in?
-when pasting from a webpage, font formatting in 'add cards' is inconsistent.
-copy card and create a new one that way
-explain license on our website
-make filters more efficients by using regex instead of loops.
-easier function to do tag detection in plugin
-join add tags/remove tags in a single dialog? http://bit.ly/oOK27n
-Cramming scheduler changes card on heartbeart. Make something like
-when deleting cards, only mention sister cards if there are actually sister
-allow users to show/hide/rearrange columns
-show full text on mouseover in case text does not fit in column
-integrate sqlite with ICU for unicode/chinese sorting:
-ellisis in QTextDocument in card browser?
-rewrite card browser in C++, or at least delegate? In that case, move
question and answer gettingto data, and eliminate the text colors at selection
-inline editing in card browser?
-editing names of card type clones, also in browser
-"Browse Cards" dialog box. "Preview card" option should have a keyboard
-option purge history, refactor logging test. Should only happen in no other
sync partners are interested in it
-synchronise history folder to guard against mobile clients not uploading their
logs, even though they set upload_logs=True?
-skritter/cpod interop mail
-better supermemo import
-API for statusbar widgets
-detect wrong current date (last review in the future or way past)
-improve sphinxdocs: autoclass='both', document module members
-show latex errors in GUI?
-hover over extra hanzi information, hanzi statistics
-plugin for midi files
-chinese pod plugin
-"reschedule" cheating plugin
-improve learn ahead, by learing ahead per day and prioritising within each day
-download media files when giving URL
-synonym handling plugin?
-regular expression search?
-add 'add card' option to deck manager?
-animated strokes: http://lost-theory.org/ocrat/
-scheduler with minute granularity?
-change file suffix when changing export format
-store _fact_ids_learned in config, such that they persist over sessions?
-paste from clipboard
-font and color comboboxes instead of dialogs in card appearance?
-preselect all in some text fields, so that the users can start typing
-feedback about uploads in GUI / add time-out
-drag and drop of pictures, sound files
-autoupgrade, or at least notify of available upgrade (needs a separate thread)
-undo last grade + keyboard shortcut. Disable undo after logs have been purged.
or through SQL checkpointing after changing isolation level?
-research papers: http://act-r.psy.cmu.edu/people/index.php?id=11
-Refactor build process so that all files/directories created by
`make setup`, `make`, `make test`, and `make coverage`, etc, all
end up under a single 'build' directory. See https://goo.gl/Nrd5nz
Multiuser statistics analysis:
-break out card id strings to a different table and use integer _id in the
rest of the database to save space
-move times from a later start date to save space?
-investigate origin of ._ logs
-don't do card checks for post 2.0
- config storage, is now scattered over 3 places (config.db, config.py,
database.db). At least config.py should go and be replaced by an
advanced settings menu. Document a standard way for plugins to
save settings. Rework everything better in the sync protocol.
Other issue related to storage is that built-in CardTypes like Sentence cannot store extra_data, so we resorted to e.g.
storing the language info in config.db
- related: config().card_type_property(): refactor to be members of card_type as
opposed to of config.py