                     Things to improve in parley
                     ---------------------------


================================================================
Before the 4.14 release (bugs).
NOTE:  DO NOT CHANGE THESE HERE.
       Instead, change them in the branch and merge the branch into master.

 * To investigate
    + Show pronounciation in the training				----
      https://bugs.kde.org/show_bug.cgi?id=150923
      This can be extended for other fields like
      comments, too.
      https://bugs.kde.org/show_bug.cgi?id=175241
      https://bugs.kde.org/show_bug.cgi?id=238893
    + Impossible to remove images					----
      https://bugs.kde.org/show_bug.cgi?id=263836
    + Modes like Conjugation, Gender etc. and				Done
      Widgets like inflection, comparision forms
      haven't been implemented properly. Should
      they be disabled for now?
      Done I think, but needs more checking
    + Vocabulary does not expire after a given time			----
      https://bugs.kde.org/show_bug.cgi?id=261396

 * All crashes
    + parley crash when opening csv files                               Done
      https://bugs.kde.org/show_bug.cgi?id=268241
    + Parley crash while adding choice in multiple			----
      choice mode in editor (investigate)
      https://bugs.kde.org/show_bug.cgi?id=255647
    + Scripts need to sandboxed or atleast check 			----
      if data can be fetched and stop gracefully. Eg:
      https://bugs.kde.org/show_bug.cgi?id=252696
    + Investigate - large list causes crash?				----
      https://bugs.kde.org/show_bug.cgi?id=271695

 * Data loss

 * Misfeatures
    + There seems to be no way to change the title.                     ----
      It works in the editor but it is never saved.
      Note: It can be changed in the menu, though.

 * Normal bugzilla bugs
    + Vocabulary does not expire                                        ----
      https://bugs.kde.org/show_bug.cgi?id=261396
    + Synonyms are not checked case-insensitively                       ----
      https://bugs.kde.org/show_bug.cgi?id=302733
    + Making two words synonyms does not mark file as modified          Done
      https://bugs.kde.org/show_bug.cgi?id=246198

 * Usability
    + Removing grades can lead to misunderstanding			Done
      https://bugs.kde.org/show_bug.cgi?id=312995

 * Bugs without a bugzilla bug
    +...

 * Release work
    + Update the version! (To what?)


================================================================
Before the 4.14 freeze (features).  These are picked from the ones below.


 * Editor
    + 

 * Practice
    + Sessions.  For details, see below.                                DONE
       - Milestone 1: (Working sessions)                                Done
       - Milestone 2: Configurable values                               Done
    + Mixed mode. For details see below                                 DONE
       - Mixed mode working in general                                  Done
       - Statistics updated for mixed mode                              Done
    + Dashboard	    	    	      					----
       - Dashboard widget						Done
       - wrapper class for a KEduVocDocument				----
       - Make the words due work					----
       - KEduVocDocument summary view widget				Done
    + Pregrades								DONE


 * Wishes from bugzilla
    + Second instance causes data overwriting.                          Done
      https://bugs.kde.org/show_bug.cgi?id=240552
    + FIXME: Check the commits for this one.


================================================================
Before the 4.15 freeze (features).  These are picked from the ones below.


 * Editor
    + 

 * Practice
    + Sessions.  For details, see below.                                ----
       - Milestone 3: Nice summary before the start                     ----
    + Mixed mode. For details see below                                 ----
       - Better statistic						----
    + Sessions								----
       - Create session overview pane					----



 * Wishes from bugzilla
    + 


================================================================
                            Open issues


 OVERALL GOAL:
   Make the program more focussed around the learning process.
   Learning is the purpose of the program. All other functions are
   just to support that goal.


 * General
    + A library of active collections.
      Right now we only have a list of files. There is no concept of
      active collections/lessons (i.e. those you are studying) and
      ones that are just lying around.  See also the dashboard below.

    + A dashboard where you can see the status of your learning.
      It should contain info on all your active collections or lessons
      with how many cards they have, your learning status (percentage)
      and how many cards are due to practice right now.
      See thaipod101.com for this.

 * Usability
    + Set language you are learning and languages you know instead of   Done
      language to language.
    + Disable those practice modes in the GUI that are not supported    ----
      by the data in the selected lessons. This would be better than
      having all of them enabled and popping up a big warning dialog
      when the user starts the practice.
    + Bigger default font for practice contents                         ----

 * Practice
    + Extended Leitner box method -OR- move to time based card          Done
      selection.

      The Leitner box system that is currently implemented is not very
      good at the very beginning of the study. When you have a lot of
      new words to learn just getting it right once is not enough to
      solidify the knowledge. So instead of having a repeat time of 1
      day for the first box we should have system based on time that
      starts with just a few minutes until the card is shown next time
      and then moves up to a full day when you have shown that you
      know the words well.  Alternatively skip the concept of boxes
      altogether and have a purely time based system (which the
      leitner boxes are trying to emulate anyway).
      thaipod101.com uses this system and it works very well.

    + Sessions.  A session is a byte sized part of a lesson containing  Done
      maybe 10-20 questions. It is automatically generated when the
      user starts to practice a lesson and is never saved anywhere.
      The reason we want this is that you will get a greater sense of
      achievement when you are done with a session than when you have
      just practiced 5% of the words in a big lesson.  It should also
      limit the number of new words in each session (5?).
      See thaipod101.com for this.

    + Mixed mode in all practice methods.                               Done
      This means that not just one direction is practiced, but
      known->learning, learning->known and maybe even sound of
      learning -> known
      See thaipod101.com for this (again! - that system is awesome).

 * Editor
    + Drag & drop of images from other applications                     ----
    + Select whole regions of a table so that you can cut&paste them    ----
      into another parley or something else. Also support paste into
      lessons of a group of words.
    + Smaller issues                                                    ----
       - Buttons to open/close all lessons (wish in bugzilla)           done
       - Button to remove all empty lines.                              ----
       - Button (menu entry) to check for duplicates                    ----
    + Always keep the primary (to be learned) language visible?

 * File formats
    + (Big) New container format with kvtml and all the                 ----
      images/sounds/whatever.  This should be modeled after ODF files
      and use a zip container, manifest, etc.  Lots of code for this
      in Calligra.
    + Enhancements in KVTML
       - Allow one image for a whole entry, not just for a word.        ----
         After all, all the translations in an entry mean the same thing.
       - Field for transcription of non-western scripts                 ----
       - pregrades for the phase before grade 1                         Done

----------------------------------------------------------------

Component map

START --->  Dashboard <+-->  Word bank manager  (dialog?  component?)
             ^     |   +-->  Collection maintenance  <-->  Collection Editor
             |     |   +-->  Extended statistics for the word bank
             |     |   +-->  ...
             |     |
             |     |
             |   Select Collection
             |     |
             |     +------>  Practice  --->  Session statistics -->+
             |     +------>  Collection statistics   ------------->+
             |     +------>  Collection Editor       ------------->+
             |                                                     |
             |                                                     v
             +<----------------------------------------------------+

================================================================

Below is old stuff, most of which is outdated (refers to KDE 4.1).
We will move appropriate issues up to the current ones above.

================================================================

Before releases:
 * Check that changes to the document result in a modified state!!!!
   Ask when quitting Parley!!!
 * Reenable synonym, false friend and antonym practices and synonym
   check in written practice! check if deletion of one of two synonyms
   crashes

When time permits:
 * update the dtd and validate some documents
 * write more unit tests
 * Add the ability to record sound files with phonon to a dock if
   possible. This depends on the state of Phonon - might be ready for
   4.1.
 * Use the container/lesson class for the leitner implementation
 * Drag and drop for several things:
   - Sound
   - Accept text drops (as new vocabulary?)

Gui
 * shortcut keys are badly assigned, they do not respect the focus
   (pressing del when a lesson was selected will attempt to delete a
   word anyways)
 * Image file open dialog: filter and preview. Maybe restrict to image files?
 * Sound file open dialog: filter and preview
 * Navigation (editing vocabulary).
   act as usual spreadsheet application. (especially useful if trying to edit more than 2 columns).
     Enter       -> move down.
     Shift+Enter -> move up.
     Tab         -> move right.
     Shift+Tab   -> move left.
 * Improve the search somehow to let the user continue typing instead
   of blocking (also not trivial?) - somewhat improved by performance
   gain - still desireable?
 * Enable the active field again? If the active field stays, use checkboxes
 * For some languages (with signs like chinese) it would be nice to
   have different font sizes in the columns
 * Validator/correction of user answers
 * Separators need to be implemented with the new corrector
   class. Possibly giving the user the chance to add more words when
   entering right answers but not all of them.
 * Analysis of sentences could be improved a lot

General
 * Open/Create file - maybe it makes sense to open/create file in new
   application window, and keep "current" document opened?
 * Warn about overwriting kvtml-1 files

 * declination support
   - the gui (dock widget) needs lots of polishing
   - implement configuration for grammatical cases in language dialog

 * articles are only singular so far
   - reader and writer
   - gui has to be extended

 * adjectives can have a gender and plural
 * tenses - make it possible to change their order and redo the dialog in general
 * Undo - KUndoStack

Pronunciation
 * option to display it along in the practice dialogs
 * is a pronunciation practice desirable? maybe together with sound
   (write after listening) also very much for chinese I'm told.
