The editor has been slightly change to support the new modality in deck Importer to replace/import cards into current deck (if any).
Also, this commit fixes a bug also considering deck name to be replaced if deck from importer has a name.
To do so, the DeckImport won't take the callback to run directly into the constructor, but the callback will be fed into with a separated method. This is because the callback would need to access the dialog instance to access which option was selected by the user about replace/import.
The mobile deck importer has been extended by adding two new options for smart card art selection, and to decide whether decklist should import or replace current deck (if any).
The card art optimisation algorithm integrated into DeckImportController leverages (in terms of general logic) on the card art optimisation in Deck.
However, several are differences in terms of context and interactions so a specialised implementation is needed.
First, the smart card art optimisation has been added as an option in DeckImport. Therefore, smart card art is not a static game option to be used when loading decks with cards with no edition, but also as an option to tweak the deck list.
The second specialisation required is that this implementation takes into account any game format constraint (in terms of allowed sets for optimisation).
Last but not least, the current deck in editor (if any) will be also considered during optimisation.
In particular, when _importing cards_ in current deck (therefore, when not creating a new deck with the deck list) will also take into account the pools of current deck so that harmonisation will already consider where cards will be imported to.
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.