Commit 5c2e3a16 authored by twanvl's avatar twanvl

copying cards with a different stylesheet now works

parent 8a789f8f
...@@ -38,7 +38,7 @@ void deserialize_from_clipboard(T& object, Package& package, const String& data) ...@@ -38,7 +38,7 @@ void deserialize_from_clipboard(T& object, Package& package, const String& data)
/// A wrapped card for storing on the clipboard /// A wrapped card for storing on the clipboard
struct WrappedCard { struct WrappedCard {
String expected_game_name; Game* expected_game;
String game_name; String game_name;
CardP card; CardP card;
...@@ -46,15 +46,18 @@ struct WrappedCard { ...@@ -46,15 +46,18 @@ struct WrappedCard {
}; };
IMPLEMENT_REFLECTION(WrappedCard) { IMPLEMENT_REFLECTION(WrappedCard) {
if (game_name == expected_game_name) REFLECT(game_name); REFLECT(game_name);
if (game_name == expected_game_name) REFLECT(card); if (game_name == expected_game->name()) {
WITH_DYNAMIC_ARG(game_for_reading, expected_game);
REFLECT(card);
}
} }
wxDataFormat CardDataObject::format = _("application/x-mse-card"); wxDataFormat CardDataObject::format = _("application/x-mse-card");
CardDataObject::CardDataObject(const SetP& set, const CardP& card) { CardDataObject::CardDataObject(const SetP& set, const CardP& card) {
WrappedCard data = { set->game->name(), set->game->name(), card }; WrappedCard data = { set->game.get(), set->game->name(), card };
SetText(serialize_for_clipboard(*set, data)); SetText(serialize_for_clipboard(*set, data));
SetFormat(format); SetFormat(format);
} }
...@@ -65,7 +68,7 @@ CardDataObject::CardDataObject() { ...@@ -65,7 +68,7 @@ CardDataObject::CardDataObject() {
CardP CardDataObject::getCard(const SetP& set) { CardP CardDataObject::getCard(const SetP& set) {
CardP card(new Card(*set->game)); CardP card(new Card(*set->game));
WrappedCard data = { set->game->name(), set->game->name(), card}; WrappedCard data = { set->game.get(), set->game->name(), card};
deserialize_from_clipboard(data, *set, GetText()); deserialize_from_clipboard(data, *set, GetText());
if (data.game_name != set->game->name()) return CardP(); // Card is from a different game if (data.game_name != set->game->name()) return CardP(); // Card is from a different game
else return card; else return card;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment