Redo of the lib. Merge of the 4.1 branch to trunk.
This is a rather big change, which affects the apps using libkdeedu.
I guess there are quite a few bugs left. So far I know the destructor of
either expression or translation sometimes seems to double delete. Need
to look into that.
Start an experimental new practice app that is independend of the main
app. Still hardly anything implemented there.
FEATURE: Parley: New main window gui using dock windows. The edit entry
dialog does no longer exist. It is much nicer to edit vocabulary now.
Ported KHangMan, KAnagram, KWordQuiz and Parley
Notes:
-Containers: There are two subclasses for KEduVocContainer.
KEduVocLesson and KEduVocWordType. This is very benificial as from now
on, I can use the same models/views for both in parley. Leitner boxes
are also easy to realize subclassing the containers.
-The KEduVocDocument class was huge and contained some functions
specific to expression handling. This redundand api has been removed.
instead the document now contains one root lesson
(KEduVocDocument::lesson()) to manage all entries. This lesson can
contain entries directly as well as child lessons. This makes it easy to
access all vocabulary entries by using doc->lesson()->entriesRecursive()
which collects all entries including those from sublessons.
-Lessons and word types are now able to contain child lessons/word types
to an arbitrary depth.
-Entries can be in multiple lessons.
-Expression->translation() now returns a pointer. This is more
consistent and avoids some reference trouble. In general now everything
is a pointer (containers also).
-KWordQuiz now saves the size hints per document in the kconfig. This
could also be used for cell heights.
-KWordQuiz only edits entries in the top level lesson. I'll change it to
use all entries in the document.
-Statistics in Parley are disabled for now, needs to be rewritten.
-Usages have been removed completely.
-Comparison forms do no longer have a proper class but only two strings.
Eventually it should be considered making them a class to support
male/female again. The base form should always be the adjective/adverb
itself.
I hope everything works, but I must have missed something. Bug me.