Fix for Aftermath and Split Cards when sending to Tappedout; fix #2942 (#2944)

This commit is contained in:
Kyle Grammer 2017-12-10 17:56:49 -05:00 committed by Zach H
parent 6c038a91e4
commit 5e00faed5d
3 changed files with 26 additions and 17 deletions

View file

@ -78,8 +78,8 @@ void TappedOutInterface::getAnalyzeRequestData(DeckList *deck, QByteArray *data)
QUrl params;
QUrlQuery urlQuery;
urlQuery.addQueryItem("name", deck->getName());
urlQuery.addQueryItem("mainboard", mainboard.writeToString_Plain(false));
urlQuery.addQueryItem("sideboard", sideboard.writeToString_Plain(false));
urlQuery.addQueryItem("mainboard", mainboard.writeToString_Plain(false, true));
urlQuery.addQueryItem("sideboard", sideboard.writeToString_Plain(false, true));
params.setQuery(urlQuery);
data->append(params.query(QUrl::EncodeReserved));
}

View file

@ -626,8 +626,9 @@ bool DeckList::loadFromFile_Plain(QIODevice *device)
struct WriteToStream {
QTextStream &stream;
bool prefixSideboardCards;
bool slashTappedOutSplitCards;
WriteToStream(QTextStream &_stream, bool _prefixSideboardCards) : stream(_stream), prefixSideboardCards(_prefixSideboardCards) {}
WriteToStream(QTextStream &_stream, bool _prefixSideboardCards, bool _slashTappedOutSplitCards): stream(_stream), prefixSideboardCards(_prefixSideboardCards), slashTappedOutSplitCards(_slashTappedOutSplitCards) {}
void operator()(
const InnerDecklistNode *node,
@ -636,32 +637,40 @@ struct WriteToStream {
if (prefixSideboardCards && node->getName() == DECK_ZONE_SIDE) {
stream << "SB: ";
}
if (!slashTappedOutSplitCards) {
stream << QString("%1 %2\n").arg(
card->getNumber()
).arg(
card->getName()
);
} else {
stream << QString("%1 %2\n").arg(
card->getNumber()
).arg(
card->getName().replace("//", "/")
);
}
}
};
bool DeckList::saveToStream_Plain(QTextStream &out, bool prefixSideboardCards)
bool DeckList::saveToStream_Plain(QTextStream &out, bool prefixSideboardCards, bool slashTappedOutSplitCards)
{
WriteToStream writeToStream(out, prefixSideboardCards);
WriteToStream writeToStream(out, prefixSideboardCards, slashTappedOutSplitCards);
forEachCard(writeToStream);
return true;
}
bool DeckList::saveToFile_Plain(QIODevice *device, bool prefixSideboardCards)
bool DeckList::saveToFile_Plain(QIODevice *device, bool prefixSideboardCards, bool slashTappedOutSplitCards)
{
QTextStream out(device);
return saveToStream_Plain(out, prefixSideboardCards);
return saveToStream_Plain(out, prefixSideboardCards, slashTappedOutSplitCards);
}
QString DeckList::writeToString_Plain(bool prefixSideboardCards)
QString DeckList::writeToString_Plain(bool prefixSideboardCards, bool slashTappedOutSplitCards)
{
QString result;
QTextStream out(&result);
saveToStream_Plain(out, prefixSideboardCards);
saveToStream_Plain(out, prefixSideboardCards, slashTappedOutSplitCards);
return result;
}

View file

@ -151,9 +151,9 @@ public:
bool saveToFile_Native(QIODevice *device);
bool loadFromStream_Plain(QTextStream &stream);
bool loadFromFile_Plain(QIODevice *device);
bool saveToStream_Plain(QTextStream &stream, bool prefixSideboardCards);
bool saveToFile_Plain(QIODevice *device, bool prefixSideboardCards=true);
QString writeToString_Plain(bool prefixSideboardCards=true);
bool saveToStream_Plain(QTextStream &stream, bool prefixSideboardCards, bool slashTappedOutSplitCards);
bool saveToFile_Plain(QIODevice *device, bool prefixSideboardCards=true, bool slashTappedOutSplitCards=false);
QString writeToString_Plain(bool prefixSideboardCards=true, bool slashTappedOutSplitCards=false);
void cleanList();
bool isEmpty() const { return root->isEmpty() && name.isEmpty() && comments.isEmpty() && sideboardPlans.isEmpty(); }