NOTE: Breaks binary compatibility. Make sure to make install after you make this.
This consolidates various enums of word properties into one: KEduVocWordFlags
This stores the following sets of properties:
Number
Part of Speech
Gender
Definiteness
Regularity
Phrase (if it is actually a phrase and not a word)
Others may come later, but those work for now.
Instead of having functions accept multiple parameters for each type (gender, number, etc), they accept one KEduVocWordFlags parameter.
You can pass as many flags as you want by bitwise ORing (a|b) them together, similar to how Qt accepts various flags. QFlags is a handy helper class that does
this magic for us.
This implementation has the following benefits over the previous one:
(The previous had multiple enums floating around in various classes, new combinations were frequently made by making a new enum entry.)
* All the flags are in one place, instead of scattered and duplicated.
* You only need to set the flags you care about -- no dummy parameter-filling flags needed.
* We can extend the flags without breaking binary compatibility.
* It allows optional extra flags like verb regularity.