TO-DO LIST
===============================================

To generate the current to-do list, use one of the methods below:
1. Filter all *.cpp files in src directory for keyword "@todo":
    grep @todo src/*.cpp
2. Generate the Doxygen documentation and look at: Related Pages -> Todo List. How to use Doxygen is described in README file.

PLAN
===============================================

See also the feature requests at SourceForge.net:
http://sourceforge.net/tracker2/?group_id=203660&atid=986491

By versions:
* 0.2:
    - GUI: rows management, clipboard, find
    - main icon, About dialog, --version
    - deploying
    - icons everywhere

* 0.3
    - GUI: recent files, save copy, show/hide toolbars
    - Window state saving (both main and flashcards test)
    - Flash cards test:
        - Update the cards used in test, when card contents are changed
        - Activate the test window, when calling already running test for the second time
        - Graceful handling of cases when all cards were removed or the currently displayed card removed.
        - Add "show Answers" checkbox
        - Polish GUI
    - XML-based dictionary format (fmd)
    - Import and export from/to CSV files.
    - Find dialog: Polish GUI, add "Add regexp..." button
    - Command line arguments: Accept a dictionary filename to load, show help (-h, --help)
    - Add examples and highlight the keywords in the test window (automatically and those marked with %).
    - Replace the "Delete cards" hotkey Ctrl+D with Del. (Often has been pressed by mistake.)

* 0.4
    - Spaced repetition algorithm
    - Multifield cards, field manager
    - Back compatibility with 0.3 version dictionaries
    - Possibility to modify dictionaries aside from the study data. Using UUIDs.
    - Automatic calculation of valid/scheduled/unrepeated cards on dictionary load
    - Differentiation of copy/paste cards and text
    - Support of image includes: <img src="">
    - Basic HTML tags: <b> <i>
    - All dictionaries, cards and fields are identified with UUIDs.
        - this is a protection from dictionary change without study file updates.

* 0.5
    - Refactoring: inspect the whole program structure and simplify
    - Merging cards:
        - with the same (or similar) questions.
        - merging answers after question-answer swapping
    - Spaced repetition:
        - processing of too early and late repetitions
        - small random noise also for postponed cards
        - possibility to explicitly save the study data
        - Study statistics
            - schedule for the next week
            - cards count by grades
            - cards count by easiness
            - whole study data
    - Autosave by time for the dictionary content and study data.
    - Settings
        - user settings path
        - fonts
        - spaced repetition parameters
            - day limit of new unrepeated cards
            - all spacedrep params
        - random or sequential card browsing
        - day starts at ... o'clock
        - Save sessions?
    - Edit and remove the current card from study views
    - Multiple choice test
    - XML-based card exchange
        - Differentiation of copy/paste cards and text
    - New save format:
        - Support for original cards and dictionaries: orig-id, orid-dic
        - Save the unrepeated cards statistics to the study file.
    - Slightly modify the general settings.
        - Sections: General, Spacedrep, Drill
        - Saving sessions: opened dictionaries and started tool
    - CSV: support for DSV?
    - Bug. When the question and answer are swapped, then the keyword autodetection in the example cannot work correctly. The keyword is taken from the current question field.
    - Postponed cards:
        - 1: not to the end of the queue?
        - Repeat randomly all 0 and 1-graded cards at the end of session (end of the queue)?
            - [0]-> in 7 cards -> [2..5] -> end of queue -> [2..5] -> next day
        - Change the interval of 1.0 to 0.9 (without random noise?)
        - Make the first intervals longer.
    - GUI: Different icons for dictionary content modified and study data modified

* 0.6

* Final 1.0
    - Multimedia includes in cards: images, sound, video
    - Undo support


IDEAS
===============================================

* Additional tests:
    - Multiple choice
    - Fill-in-the-blank
    - Classic Leitner method (?)
* Test options:
    - difficulty (?)
    - time restriction (?)
* Spaced rep history
    - statistics based on the history: number of repeated cards per day, average easiness
