mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-01-10 04:07:25 -08:00
Merge pull request #23 from taw/master
Made Ctrl-V importer work more robust.
This commit is contained in:
@@ -417,6 +417,7 @@ bool DeckList::loadFromStream_Plain(QTextStream &in)
|
||||
cleanList();
|
||||
|
||||
InnerDecklistNode *main = 0, *side = 0;
|
||||
bool inSideboard = false;
|
||||
|
||||
int okRows = 0;
|
||||
while (!in.atEnd()) {
|
||||
@@ -425,11 +426,18 @@ bool DeckList::loadFromStream_Plain(QTextStream &in)
|
||||
continue;
|
||||
|
||||
InnerDecklistNode *zone;
|
||||
if (line.startsWith("SB:", Qt::CaseInsensitive)) {
|
||||
if (line.startsWith("Sideboard", Qt::CaseInsensitive)) {
|
||||
inSideboard = true;
|
||||
continue;
|
||||
} else if (line.startsWith("SB:", Qt::CaseInsensitive)) {
|
||||
line = line.mid(3).trimmed();
|
||||
if (!side)
|
||||
side = new InnerDecklistNode("side", root);
|
||||
zone = side;
|
||||
} else if (inSideboard) {
|
||||
if (!side)
|
||||
side = new InnerDecklistNode("side", root);
|
||||
zone = side;
|
||||
} else {
|
||||
if (!main)
|
||||
main = new InnerDecklistNode("main", root);
|
||||
@@ -448,8 +456,21 @@ bool DeckList::loadFromStream_Plain(QTextStream &in)
|
||||
int number = line.left(i).toInt(&ok);
|
||||
if (!ok)
|
||||
continue;
|
||||
|
||||
QString cardName = line.mid(i + 1);
|
||||
// Common differences between cockatrice's card names
|
||||
// and what's commonly used in decklists
|
||||
rx.setPattern("’");
|
||||
cardName.replace(rx, "'");
|
||||
rx.setPattern("Æ");
|
||||
cardName.replace(rx, "AE");
|
||||
rx.setPattern("^Aether");
|
||||
cardName.replace(rx, "AEther");
|
||||
rx.setPattern("\\s*[&|/]{1,2}\\s*");
|
||||
cardName.replace(rx, " // ");
|
||||
|
||||
++okRows;
|
||||
new DecklistCardNode(line.mid(i + 1), number, zone);
|
||||
new DecklistCardNode(cardName, number, zone);
|
||||
}
|
||||
updateDeckHash();
|
||||
return (okRows > 0);
|
||||
|
||||
Reference in New Issue
Block a user