This commit is contained in:
Brübach, Lukas 2025-11-24 18:02:05 +01:00
parent 3b21ea5bfe
commit 6edaa6db25
7 changed files with 41 additions and 44 deletions

View file

@ -60,7 +60,7 @@ private:
QJsonObject oracleCard;
int owned;
int pinnedStatus;
//ArchidektApiResponsePrices prices;
// ArchidektApiResponsePrices prices;
QString rarity;
QStringList globalCategories;
};

View file

@ -48,5 +48,4 @@ private:
QString mtgoCode;
};
#endif // COCKATRICE_ARCHIDEKT_API_RESPONSE_EDITION_H

View file

@ -68,5 +68,4 @@ private:
QStringList customCards;
};
#endif // COCKATRICE_ARCHIDEKT_API_RESPONSE_DECK_H

View file

@ -23,7 +23,7 @@ void ArchidektApiResponseDeckListingContainer::fromJson(const QJsonObject &json)
theoryCrafted = json.value("theoryCrafted").toBool();
game = json.value("game").toString();
hasDescription = json.value("hasDescription").toBool();
//TODO
// TODO
tags = {};
parentFolderId = json.value("parentFolderId").toInt();
owner.fromJson(json.value("owner").toObject());

View file

@ -22,7 +22,8 @@ ArchidektApiResponseDeckDisplayWidget::ArchidektApiResponseDeckDisplayWidget(QWi
openInEditorButton = new QPushButton(this);
layout->addWidget(openInEditorButton);
connect(openInEditorButton, &QPushButton::clicked, this, &ArchidektApiResponseDeckDisplayWidget::actOpenInDeckEditor);
connect(openInEditorButton, &QPushButton::clicked, this,
&ArchidektApiResponseDeckDisplayWidget::actOpenInDeckEditor);
scrollArea = new QScrollArea(this);
scrollArea->setWidgetResizable(true);
@ -94,44 +95,44 @@ void ArchidektApiResponseDeckDisplayWidget::decklistModelReset()
constructZoneWidgetsFromDeckListModel();
}
void ArchidektApiResponseDeckDisplayWidget::constructZoneWidgetsFromDeckListModel()
{
qDebug() << model->rowCount(model->getRoot());
QSortFilterProxyModel proxy;
proxy.setSourceModel(model);
proxy.setSortRole(Qt::EditRole);
proxy.sort(1, Qt::AscendingOrder);
void ArchidektApiResponseDeckDisplayWidget::constructZoneWidgetsFromDeckListModel()
{
qDebug() << model->rowCount(model->getRoot());
QSortFilterProxyModel proxy;
proxy.setSourceModel(model);
proxy.setSortRole(Qt::EditRole);
proxy.sort(1, Qt::AscendingOrder);
for (int i = 0; i < proxy.rowCount(); ++i) {
QModelIndex proxyIndex = proxy.index(i, 0);
QModelIndex sourceIndex = proxy.mapToSource(proxyIndex);
for (int i = 0; i < proxy.rowCount(); ++i) {
QModelIndex proxyIndex = proxy.index(i, 0);
QModelIndex sourceIndex = proxy.mapToSource(proxyIndex);
// Make a persistent index from the *source* model
QPersistentModelIndex persistent(sourceIndex);
// Make a persistent index from the *source* model
QPersistentModelIndex persistent(sourceIndex);
if (indexToWidgetMap.contains(persistent)) {
continue;
}
DeckCardZoneDisplayWidget *zoneDisplayWidget = new DeckCardZoneDisplayWidget(
zoneContainer, model, persistent,
model->data(persistent.sibling(persistent.row(), 1), Qt::EditRole).toString(), "maintype",
{"name"}, DisplayType::Overlap, 20, 10, cardSizeSlider);
/*connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardHovered, this, &VisualDeckEditorWidget::onHover);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardClicked, this, &VisualDeckEditorWidget::onCardClick);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::requestCleanup, this,
&VisualDeckEditorWidget::cleanupInvalidZones);
connect(this, &VisualDeckEditorWidget::activeSortCriteriaChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::onActiveSortCriteriaChanged);
connect(this, &VisualDeckEditorWidget::activeGroupCriteriaChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::onActiveGroupCriteriaChanged);
connect(this, &VisualDeckEditorWidget::displayTypeChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::refreshDisplayType);*/
zoneContainerLayout->addWidget(zoneDisplayWidget);
indexToWidgetMap.insert(persistent, zoneDisplayWidget);
if (indexToWidgetMap.contains(persistent)) {
continue;
}
DeckCardZoneDisplayWidget *zoneDisplayWidget =
new DeckCardZoneDisplayWidget(zoneContainer, model, persistent,
model->data(persistent.sibling(persistent.row(), 1), Qt::EditRole).toString(),
"maintype", {"name"}, DisplayType::Overlap, 20, 10, cardSizeSlider);
/*connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardHovered, this, &VisualDeckEditorWidget::onHover);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardClicked, this, &VisualDeckEditorWidget::onCardClick);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::requestCleanup, this,
&VisualDeckEditorWidget::cleanupInvalidZones);
connect(this, &VisualDeckEditorWidget::activeSortCriteriaChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::onActiveSortCriteriaChanged);
connect(this, &VisualDeckEditorWidget::activeGroupCriteriaChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::onActiveGroupCriteriaChanged);
connect(this, &VisualDeckEditorWidget::displayTypeChanged, zoneDisplayWidget,
&DeckCardZoneDisplayWidget::refreshDisplayType);*/
zoneContainerLayout->addWidget(zoneDisplayWidget);
indexToWidgetMap.insert(persistent, zoneDisplayWidget);
}
}
void ArchidektApiResponseDeckDisplayWidget::resizeEvent(QResizeEvent *event)
{

View file

@ -218,9 +218,9 @@ void TabArchidekt::processDeckResponse(QJsonObject reply)
currentPageDisplay->setLayout(currentPageLayout);
auto display = new ArchidektApiResponseDeckDisplayWidget(currentPageDisplay, deckData, cardSizeSlider);
connect(display, &ArchidektApiResponseDeckDisplayWidget::requestNavigation, this,
&TabArchidekt::actNavigatePage);
connect(display, &ArchidektApiResponseDeckDisplayWidget::openInDeckEditor, tabSupervisor, &TabSupervisor::openDeckInNewTab);
connect(display, &ArchidektApiResponseDeckDisplayWidget::requestNavigation, this, &TabArchidekt::actNavigatePage);
connect(display, &ArchidektApiResponseDeckDisplayWidget::openInDeckEditor, tabSupervisor,
&TabSupervisor::openDeckInNewTab);
currentPageLayout->addWidget(display);
mainLayout->addWidget(currentPageDisplay);

View file

@ -9,9 +9,8 @@
#include <QLineEdit>
#include <QNetworkAccessManager>
#include <QPushButton>
#include <libcockatrice/card/database/card_database.h>
#include <QString>
#include <libcockatrice/card/database/card_database.h>
inline QString archidektApiLink = "https://archidekt.com/api/decks/v3/?name=";
@ -59,5 +58,4 @@ private:
CardInfoPtr cardToQuery;
};
#endif // COCKATRICE_TAB_ARCHIDEKT_H