This method will be invoked by DeckImport (desktop) to pass on current deck in editor (if any) to the DeckImportController.
This deck will be eventually used as part of the smart card optimisation.
- Clear image cache if necessary (prevent clearing if the downloaded data is not image)
- Cache missing cards (prevent finding missing cards unless the user has fetched/downloads an image)
- Clear preselected options for New Gauntlet Match (easier to filter decks for Gauntlet)
This commit adds in a new piece of information to Token in DeckRecognizer to mark whether original card request included or not a set code.
This flag will be only used by actual CardToken and will be leveraged later on by "smart card optimisation option" to be added to DeckImport on desktop too.
Majority of tests in DeckRecognizerTest have been updated to cross-check that no bug has been unintentionally introduced.
The DeckView = when initialised = after editing the current deck in editor, tries to select it in the decklist view. However, at startup this won't be actually successful due to an un-initialised table model.
The issue only happens at startup time, and it is related to the fact that despite any selected item can be set (with the current Deck in editor) - see `populate` - the `update` method that initialise the (table)models is only called afterwards.
Therefore, the update method of Controller has been modified to re-try a selection with current deck in editor.
The whole procedure is skipped if the selected index is different from zero = assuming zero is the default fallback option.
If that's not the case, say the zero first deck should be indeed selected, the selected item shouldn't be activated twice anyway if that's exactly what's already been selected.
Deck model comparison may be triggered a certain number of times, and the new deep-comparison on each part may slow down performance in deck editor. Therefore, a caching strategy has been integrated to avoid comparing the same objects multiple times.
the loadDeck method now has a better handling of the deck (model) status, also wrt. the state of the UI editor.
If the deck is Stored, the editor will be in "modified - not saved" state.
This FIXES a bug causing the Deck Editor to not properly restore its state after saving a Deck and not originally in Main Decksection.
This commit also avoids repeating code and reset tables only if necessary.
.Dec files have collector nr//art-index as separated by a Pipe.
RegExps with collector numbers have been extended to further support decks in this format (with simply copy & paste the listing).
Tests updated/added to verify the new regexp & behaviour.
DeckImport now avoids including non-deck and metadata info in decklist as UnknownText, whilst any line that looks like a card request (i.e. includes a card quantity in the beginning) is interpreted as Unknown card.
This seems a good compromise with showing typo and any mispelling in card list whilst avoiding flooding decklist with unnecessary info.