Token dialog fixes (#3711)
* Token dialog fixes * clangify * edit custom tokens * Fix in-game token dialog
This commit is contained in:
parent
3830c85ce6
commit
6c21855f98
7 changed files with 43 additions and 11 deletions
|
@ -327,8 +327,8 @@ CardDatabase::CardDatabase(QObject *parent) : QObject(parent), loadStatus(NotLoa
|
||||||
qRegisterMetaType<CardInfoPtr>("CardSetPtr");
|
qRegisterMetaType<CardInfoPtr>("CardSetPtr");
|
||||||
|
|
||||||
// add new parsers here
|
// add new parsers here
|
||||||
availableParsers << new CockatriceXml3Parser;
|
|
||||||
availableParsers << new CockatriceXml4Parser;
|
availableParsers << new CockatriceXml4Parser;
|
||||||
|
availableParsers << new CockatriceXml3Parser;
|
||||||
|
|
||||||
for (auto &parser : availableParsers) {
|
for (auto &parser : availableParsers) {
|
||||||
connect(parser, SIGNAL(addCard(CardInfoPtr)), this, SLOT(addCard(CardInfoPtr)), Qt::DirectConnection);
|
connect(parser, SIGNAL(addCard(CardInfoPtr)), this, SLOT(addCard(CardInfoPtr)), Qt::DirectConnection);
|
||||||
|
|
|
@ -349,6 +349,7 @@ const QString CardDatabaseDisplayModel::sanitizeCardName(const QString &dirtyNam
|
||||||
}
|
}
|
||||||
return QString::fromStdWString(toReturn);
|
return QString::fromStdWString(toReturn);
|
||||||
}
|
}
|
||||||
|
|
||||||
TokenDisplayModel::TokenDisplayModel(QObject *parent) : CardDatabaseDisplayModel(parent)
|
TokenDisplayModel::TokenDisplayModel(QObject *parent) : CardDatabaseDisplayModel(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -364,3 +365,19 @@ int TokenDisplayModel::rowCount(const QModelIndex &parent) const
|
||||||
// always load all tokens at start
|
// always load all tokens at start
|
||||||
return QSortFilterProxyModel::rowCount(parent);
|
return QSortFilterProxyModel::rowCount(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TokenEditModel::TokenEditModel(QObject *parent) : CardDatabaseDisplayModel(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TokenEditModel::filterAcceptsRow(int sourceRow, const QModelIndex & /*sourceParent*/) const
|
||||||
|
{
|
||||||
|
CardInfoPtr info = static_cast<CardDatabaseModel *>(sourceModel())->getCard(sourceRow);
|
||||||
|
return info->getIsToken() && info->getSets().contains(CardDatabase::TOKENS_SETNAME) && rowMatchesCardName(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
int TokenEditModel::rowCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
// always load all tokens at start
|
||||||
|
return QSortFilterProxyModel::rowCount(parent);
|
||||||
|
}
|
||||||
|
|
|
@ -140,4 +140,15 @@ protected:
|
||||||
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
|
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TokenEditModel : public CardDatabaseDisplayModel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit TokenEditModel(QObject *parent = nullptr);
|
||||||
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -61,7 +61,7 @@ DlgEditTokens::DlgEditTokens(QWidget *parent) : QDialog(parent), currentCard(nul
|
||||||
|
|
||||||
databaseModel = new CardDatabaseModel(db, false, this);
|
databaseModel = new CardDatabaseModel(db, false, this);
|
||||||
databaseModel->setObjectName("databaseModel");
|
databaseModel->setObjectName("databaseModel");
|
||||||
cardDatabaseDisplayModel = new TokenDisplayModel(this);
|
cardDatabaseDisplayModel = new TokenEditModel(this);
|
||||||
cardDatabaseDisplayModel->setSourceModel(databaseModel);
|
cardDatabaseDisplayModel->setSourceModel(databaseModel);
|
||||||
cardDatabaseDisplayModel->setIsToken(CardDatabaseDisplayModel::ShowTrue);
|
cardDatabaseDisplayModel->setIsToken(CardDatabaseDisplayModel::ShowTrue);
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ DlgEditTokens::DlgEditTokens(QWidget *parent) : QDialog(parent), currentCard(nul
|
||||||
mainLayout->addWidget(buttonBox);
|
mainLayout->addWidget(buttonBox);
|
||||||
|
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
setWindowTitle(tr("Edit tokens"));
|
setWindowTitle(tr("Edit custom tokens"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DlgEditTokens::tokenSelectionChanged(const QModelIndex ¤t, const QModelIndex & /* previous */)
|
void DlgEditTokens::tokenSelectionChanged(const QModelIndex ¤t, const QModelIndex & /* previous */)
|
||||||
|
@ -123,7 +123,7 @@ void DlgEditTokens::tokenSelectionChanged(const QModelIndex ¤t, const QMod
|
||||||
currentCard.clear();
|
currentCard.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!currentCard) {
|
if (currentCard) {
|
||||||
nameEdit->setText(currentCard->getName());
|
nameEdit->setText(currentCard->getName());
|
||||||
const QChar cardColor = currentCard->getColorChar();
|
const QChar cardColor = currentCard->getColorChar();
|
||||||
colorEdit->setCurrentIndex(colorEdit->findData(cardColor, Qt::UserRole, Qt::MatchFixedString));
|
colorEdit->setCurrentIndex(colorEdit->findData(cardColor, Qt::UserRole, Qt::MatchFixedString));
|
||||||
|
@ -154,9 +154,12 @@ void DlgEditTokens::actAddToken()
|
||||||
}
|
}
|
||||||
} while (askAgain);
|
} while (askAgain);
|
||||||
|
|
||||||
CardInfoPtr card = CardInfo::newInstance(name, "", true);
|
QString setName = CardDatabase::TOKENS_SETNAME;
|
||||||
|
CardInfoPerSetMap sets;
|
||||||
|
sets.insert(setName, CardInfoPerSet(databaseModel->getDatabase()->getSet(setName)));
|
||||||
|
CardInfoPtr card = CardInfo::newInstance(name, "", true, QVariantHash(), QList<CardRelation *>(),
|
||||||
|
QList<CardRelation *>(), sets, false, -1, false);
|
||||||
card->setCardType("Token");
|
card->setCardType("Token");
|
||||||
card->addToSet(databaseModel->getDatabase()->getSet(CardDatabase::TOKENS_SETNAME));
|
|
||||||
|
|
||||||
databaseModel->getDatabase()->addCard(card);
|
databaseModel->getDatabase()->addCard(card);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
class QModelIndex;
|
class QModelIndex;
|
||||||
class CardDatabaseModel;
|
class CardDatabaseModel;
|
||||||
class TokenDisplayModel;
|
class TokenEditModel;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
class QLineEdit;
|
class QLineEdit;
|
||||||
|
@ -27,7 +27,7 @@ private slots:
|
||||||
private:
|
private:
|
||||||
CardInfoPtr currentCard;
|
CardInfoPtr currentCard;
|
||||||
CardDatabaseModel *databaseModel;
|
CardDatabaseModel *databaseModel;
|
||||||
TokenDisplayModel *cardDatabaseDisplayModel;
|
TokenEditModel *cardDatabaseDisplayModel;
|
||||||
QStringList predefinedTokens;
|
QStringList predefinedTokens;
|
||||||
QLabel *nameLabel, *colorLabel, *ptLabel, *annotationLabel;
|
QLabel *nameLabel, *colorLabel, *ptLabel, *annotationLabel;
|
||||||
QComboBox *colorEdit;
|
QComboBox *colorEdit;
|
||||||
|
|
|
@ -171,8 +171,9 @@ private:
|
||||||
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Remove card"), parseSequenceString("-"), ShortcutGroup::Deck_Editor)},
|
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Remove card"), parseSequenceString("-"), ShortcutGroup::Deck_Editor)},
|
||||||
{"TabDeckEditor/aManageSets",
|
{"TabDeckEditor/aManageSets",
|
||||||
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Manage sets"), parseSequenceString(""), ShortcutGroup::Deck_Editor)},
|
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Manage sets"), parseSequenceString(""), ShortcutGroup::Deck_Editor)},
|
||||||
{"TabDeckEditor/aEditTokens",
|
{"TabDeckEditor/aEditTokens", SK(QT_TRANSLATE_NOOP("shortcutsTab", "Edit custom tokens"),
|
||||||
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Edit tokens"), parseSequenceString(""), ShortcutGroup::Deck_Editor)},
|
parseSequenceString(""),
|
||||||
|
ShortcutGroup::Deck_Editor)},
|
||||||
{"TabDeckEditor/aExportDeckDecklist",
|
{"TabDeckEditor/aExportDeckDecklist",
|
||||||
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Export deck"), parseSequenceString(""), ShortcutGroup::Deck_Editor)},
|
SK(QT_TRANSLATE_NOOP("shortcutsTab", "Export deck"), parseSequenceString(""), ShortcutGroup::Deck_Editor)},
|
||||||
{"TabDeckEditor/aIncrement",
|
{"TabDeckEditor/aIncrement",
|
||||||
|
|
|
@ -640,7 +640,7 @@ void MainWindow::retranslateUi()
|
||||||
aOpenCustomsetsFolder->setText(tr("Open custom sets folder"));
|
aOpenCustomsetsFolder->setText(tr("Open custom sets folder"));
|
||||||
aAddCustomSet->setText(tr("Add custom sets/cards"));
|
aAddCustomSet->setText(tr("Add custom sets/cards"));
|
||||||
aManageSets->setText(tr("&Manage sets..."));
|
aManageSets->setText(tr("&Manage sets..."));
|
||||||
aEditTokens->setText(tr("Edit &tokens..."));
|
aEditTokens->setText(tr("Edit custom &tokens..."));
|
||||||
|
|
||||||
aAbout->setText(tr("&About Cockatrice"));
|
aAbout->setText(tr("&About Cockatrice"));
|
||||||
aTips->setText(tr("&Tip of the Day"));
|
aTips->setText(tr("&Tip of the Day"));
|
||||||
|
|
Loading…
Reference in a new issue