Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
ArchidektApiResponseDeckDisplayWidget Class Reference

Displays a full deck fetched from an Archidekt API response. More...

#include <archidekt_api_response_deck_display_widget.h>

Inheritance diagram for ArchidektApiResponseDeckDisplayWidget:
[legend]
Collaboration diagram for ArchidektApiResponseDeckDisplayWidget:
[legend]

Signals

void requestNavigation (QString url)
 Emitted when navigation to a deck URL is requested.
void openInDeckEditor (DeckLoader *loader)
 Emitted when the deck should be opened in the deck editor.

Public Member Functions

 ArchidektApiResponseDeckDisplayWidget (QWidget *parent, ArchidektApiResponseDeck response, CardSizeWidget *cardSizeSlider)
 Constructs a display widget for an Archidekt deck.
void retranslateUi ()
 Updates all UI text for retranslation/localization.
void actOpenInDeckEditor ()
 Opens the deck in the deck editor via DeckLoader.
void clearAllDisplayWidgets ()
 Clears all dynamically generated card zone display widgets.
void decklistModelReset ()
 Handles model reset by clearing and reconstructing display widgets.
void constructZoneWidgetsFromDeckListModel ()
 Builds DeckCardZoneDisplayWidget instances from the current DeckListModel.

Protected Slots

void resizeEvent (QResizeEvent *event) override
 Updates layout and display on resize.

Private Slots

void onGroupCriteriaChange (const QString &activeGroupCriteria)
 Slot triggered when the active group criteria change.

Private Attributes

ArchidektApiResponseDeck response
 API deck data container.
CardSizeWidgetcardSizeSlider
 Slider for adjusting card sizes.
QVBoxLayout * layout
 Main vertical layout.
QPushButton * openInEditorButton
 Button to open deck in editor.
VisualDeckDisplayOptionsWidgetdisplayOptionsWidget
 Controls grouping/sorting/display.
QScrollArea * scrollArea
 Scrollable area for deck zones.
QWidget * zoneContainer
 Container for deck zones.
QVBoxLayout * zoneContainerLayout
 Layout for deck zones.
QWidget * container
 Outer container for scroll area.
QHash< QPersistentModelIndex, QWidget * > indexToWidgetMap
 Maps model indices to widgets.
QVBoxLayout * containerLayout
 Layout for container.
DeckListModelmodel
 Deck list model.

Detailed Description

Displays a full deck fetched from an Archidekt API response.

This widget visualizes all cards in a deck retrieved from the Archidekt API. It supports:

The widget internally constructs a DeckListModel from the Archidekt API response, then builds zone widgets for each group of cards according to the active group criteria. It also responds dynamically to model resets or sorting/grouping changes.

Signals

Features

  • Automatically generates DeckCardZoneDisplayWidget instances for each card group.
  • Provides a scrollable layout for decks of arbitrary size.
  • Updates layouts dynamically when resized or when display/group/sort criteria change.

Constructor & Destructor Documentation

◆ ArchidektApiResponseDeckDisplayWidget()

ArchidektApiResponseDeckDisplayWidget::ArchidektApiResponseDeckDisplayWidget ( QWidget * parent,
ArchidektApiResponseDeck response,
CardSizeWidget * cardSizeSlider )
explicit

Constructs a display widget for an Archidekt deck.

Parameters
parentParent widget.
responseAPI deck data container.
cardSizeSliderSlider controlling card scaling.
Here is the call graph for this function:

Member Function Documentation

◆ actOpenInDeckEditor()

void ArchidektApiResponseDeckDisplayWidget::actOpenInDeckEditor ( )

Opens the deck in the deck editor via DeckLoader.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearAllDisplayWidgets()

void ArchidektApiResponseDeckDisplayWidget::clearAllDisplayWidgets ( )

Clears all dynamically generated card zone display widgets.

Here is the caller graph for this function:

◆ constructZoneWidgetsFromDeckListModel()

void ArchidektApiResponseDeckDisplayWidget::constructZoneWidgetsFromDeckListModel ( )

Builds DeckCardZoneDisplayWidget instances from the current DeckListModel.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decklistModelReset()

void ArchidektApiResponseDeckDisplayWidget::decklistModelReset ( )

Handles model reset by clearing and reconstructing display widgets.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onGroupCriteriaChange

void ArchidektApiResponseDeckDisplayWidget::onGroupCriteriaChange ( const QString & activeGroupCriteria)
privateslot

Slot triggered when the active group criteria change.

Parameters
activeGroupCriteriaName of the new grouping criteria.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ openInDeckEditor

void ArchidektApiResponseDeckDisplayWidget::openInDeckEditor ( DeckLoader * loader)
signal

Emitted when the deck should be opened in the deck editor.

Parameters
loaderInitialized DeckLoader containing the deck data.
Here is the caller graph for this function:

◆ requestNavigation

void ArchidektApiResponseDeckDisplayWidget::requestNavigation ( QString url)
signal

Emitted when navigation to a deck URL is requested.

Parameters
urlURL of the deck on Archidekt.
Here is the caller graph for this function:

◆ resizeEvent

void ArchidektApiResponseDeckDisplayWidget::resizeEvent ( QResizeEvent * event)
overrideprotectedslot

Updates layout and display on resize.

Parameters
eventResize event.

◆ retranslateUi()

void ArchidektApiResponseDeckDisplayWidget::retranslateUi ( )

Updates all UI text for retranslation/localization.

Called when the application language changes.

Here is the caller graph for this function:

Member Data Documentation

◆ cardSizeSlider

CardSizeWidget* ArchidektApiResponseDeckDisplayWidget::cardSizeSlider
private

Slider for adjusting card sizes.

◆ container

QWidget* ArchidektApiResponseDeckDisplayWidget::container
private

Outer container for scroll area.

◆ containerLayout

QVBoxLayout* ArchidektApiResponseDeckDisplayWidget::containerLayout
private

Layout for container.

◆ displayOptionsWidget

VisualDeckDisplayOptionsWidget* ArchidektApiResponseDeckDisplayWidget::displayOptionsWidget
private

Controls grouping/sorting/display.

◆ indexToWidgetMap

QHash<QPersistentModelIndex, QWidget *> ArchidektApiResponseDeckDisplayWidget::indexToWidgetMap
private

Maps model indices to widgets.

◆ layout

QVBoxLayout* ArchidektApiResponseDeckDisplayWidget::layout
private

Main vertical layout.

◆ model

DeckListModel* ArchidektApiResponseDeckDisplayWidget::model
private

Deck list model.

◆ openInEditorButton

QPushButton* ArchidektApiResponseDeckDisplayWidget::openInEditorButton
private

Button to open deck in editor.

◆ response

ArchidektApiResponseDeck ArchidektApiResponseDeckDisplayWidget::response
private

API deck data container.

◆ scrollArea

QScrollArea* ArchidektApiResponseDeckDisplayWidget::scrollArea
private

Scrollable area for deck zones.

◆ zoneContainer

QWidget* ArchidektApiResponseDeckDisplayWidget::zoneContainer
private

Container for deck zones.

◆ zoneContainerLayout

QVBoxLayout* ArchidektApiResponseDeckDisplayWidget::zoneContainerLayout
private

Layout for deck zones.


The documentation for this class was generated from the following files: