Fix deck loader with spaces (#3007)

This commit is contained in:
Zach H 2018-01-18 19:23:13 -05:00 committed by GitHub
parent dcc632e0d4
commit 34bec90193
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 561 additions and 330 deletions

View file

@ -2,8 +2,6 @@
#include <QPlainTextEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QKeySequence>
#include <QApplication>
#include <QTextStream>
#include <QDialogButtonBox>
@ -12,8 +10,7 @@
#include "deck_loader.h"
#include "settingscache.h"
DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
: QDialog(parent), deckList(0)
DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent) : QDialog(parent), deckList(nullptr)
{
contentsEdit = new QPlainTextEdit;
@ -25,7 +22,7 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOK()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
QVBoxLayout *mainLayout = new QVBoxLayout;
auto *mainLayout = new QVBoxLayout;
mainLayout->addWidget(contentsEdit);
mainLayout->addWidget(buttonBox);
@ -54,25 +51,28 @@ void DlgLoadDeckFromClipboard::actOK()
QString buffer = contentsEdit->toPlainText();
QTextStream stream(&buffer);
DeckLoader *l = new DeckLoader;
auto *deckLoader = new DeckLoader;
if (buffer.contains("<cockatrice_deck version=\"1\">"))
{
if (l->loadFromString_Native(buffer))
if (deckLoader->loadFromString_Native(buffer))
{
deckList = l;
deckList = deckLoader;
accept();
}
else
{
QMessageBox::critical(this, tr("Error"), tr("Invalid deck list."));
delete l;
delete deckLoader;
}
}
else if (l->loadFromStream_Plain(stream)) {
deckList = l;
else if (deckLoader->loadFromStream_Plain(stream))
{
deckList = deckLoader;
accept();
} else {
}
else
{
QMessageBox::critical(this, tr("Error"), tr("Invalid deck list."));
delete l;
delete deckLoader;
}
}