This commit includes major updates to the CardDb aligned with the new ICardDatabase (refactored) API.
The implementation of the API now includes a more standardised and linear approach in (single) card retrieval which leverages on the refactored methods.
All these methods rely on the **new** and revised CardRequest object that now support a new method to compose request strings, as well as extending support to requests including the collector numbers.
This is a major update going towards the direction of integrating the collector number in Deck Importer when analysing cards lists.
All these new implementations have been thoroughly tested considering all possible conditions, foil cards, cards with multiple arts, and date filtering, and results compared with **previous** card DB implementation to be sure no behaviour was left uncovered from previous implementation.
(Please see `LegacyDb` class in `forge.card` tests for more details).
Cards in CardPool are now added also including the collector number directly. This should avoid PaperCard instances to rely on the retrieveCollectorNumber methods in PaperCard. [THIS needs to be tested yet].
Another major change to class structure regards the new renamed SetPreference to a more intuitive CardArtPreference.
This will be used to set up card art preference in the UI, as well as to guide card retrieval default behaviour.
(This option will be later included in the Desktop GUI as well).
Tests to compare the behaviour of these new options, and the old ones have been conducted, and all passed.
Also, this attribute has been moved from StaticData to CardDb as it seems more appropriate encapsulation, without any circular dependency.
A new method (not included in ICardDatabase) has been added to CardDb API (i.e. getCardFromEditions(name) ) which relies on the default Card Art preference.
Last but not least, Anthologies edition file receives an update on the TYPE (from other to reprint) to also deal with expected testings - case "Hymn To Tourach" when `LatestPrintNoPromoNoOnline` is selected.
This base class will be used throughout the tests whenever Card Database (Mocks) will be required for testing.
This will be the case (for example) of tests for CardRequest, CardEdition, CardDb.
Besides: since Custom Editions can be sometimes not that many, the number of displayed rows in Checkbox lists has been fixed to 20 to have all panels of same height.
...I got rid of duplication for the lblSet col, while also improving translations.
In particular, the "lblSetEdition" column was translated as the "Mistery column" (for some reason :D), whereas a second lblSet2 was instead defined and used, namely "the label tooltip for the Set Columndef".
On this note, this col was also mistranslated in ES, IT, DE - those are the language I could handle so far.
In fact "Set" was intended (and so translated) as "to set" instead as for "Expansion/Edition".
Corrected accordingly! :)