Displays a single Archidekt deck listing as a preview card with metadata.
More...
#include <archidekt_api_response_deck_entry_display_widget.h>
|
| static constexpr float | DESIGN_RATIO = 150.0f / 267.0f |
| | Design aspect ratio.
|
Displays a single Archidekt deck listing as a preview card with metadata.
This widget renders a deck entry received from an Archidekt API response. It includes:
- A scaled deck preview image loaded asynchronously via QNetworkAccessManager.
- Elided deck name in the top-left corner.
- Deck size, EDH bracket, and view count labels.
- A color distribution bar summarizing deck colors.
- Metadata labels including owner, creation date, and last update date.
The widget dynamically scales the preview image and labels according to a linked CardSizeWidget slider. Hovering over the widget highlights the background plate, and clicking emits a requestNavigation signal pointing to the deck URL.
Features
- Asynchronous image loading with fallback to a default placeholder image.
- Maintains a fixed aspect ratio for the preview image (150:267).
- Updates text elision dynamically when resized or scaled.
- Integrates with FlowWidget containers for scrollable deck galleries.
Signals
Slots
◆ ArchidektApiResponseDeckEntryDisplayWidget()
| ArchidektApiResponseDeckEntryDisplayWidget::ArchidektApiResponseDeckEntryDisplayWidget |
( |
QWidget * | parent, |
|
|
ArchidektApiResponseDeckListingContainer | response, |
|
|
QNetworkAccessManager * | imageNetworkManager ) |
|
explicit |
Constructs a deck entry display widget.
- Parameters
-
| parent | Parent widget. |
| response | API container holding deck listing data. |
| imageNetworkManager | Shared network manager for fetching preview images. |
◆ actRequestNavigationToDeck
| void ArchidektApiResponseDeckEntryDisplayWidget::actRequestNavigationToDeck |
( |
| ) |
|
|
slot |
Emits requestNavigation for the deck's URL.
◆ enterEvent()
| void ArchidektApiResponseDeckEntryDisplayWidget::enterEvent |
( |
QEnterEvent * | event | ) |
|
|
overrideprotected |
◆ leaveEvent()
| void ArchidektApiResponseDeckEntryDisplayWidget::leaveEvent |
( |
QEvent * | event | ) |
|
|
overrideprotected |
◆ mousePressEvent()
| void ArchidektApiResponseDeckEntryDisplayWidget::mousePressEvent |
( |
QMouseEvent * | event | ) |
|
|
overrideprotected |
◆ onPreviewImageLoadFinished()
| void ArchidektApiResponseDeckEntryDisplayWidget::onPreviewImageLoadFinished |
( |
QNetworkReply * | reply | ) |
|
Handles finished network replies for preview images.
- Parameters
-
| reply | QNetworkReply containing image data. |
Validates that the reply corresponds to this widget and updates the preview image.
◆ requestNavigation
| void ArchidektApiResponseDeckEntryDisplayWidget::requestNavigation |
( |
QString | url | ) |
|
|
signal |
Emitted when the user requests navigation.
- Parameters
-
| url | Full URL to the Archidekt page. |
◆ resizeEvent()
| void ArchidektApiResponseDeckEntryDisplayWidget::resizeEvent |
( |
QResizeEvent * | event | ) |
|
|
override |
Ensures layout responds correctly on resize events.
- Parameters
-
◆ setScaleFactor
| void ArchidektApiResponseDeckEntryDisplayWidget::setScaleFactor |
( |
int | scale | ) |
|
|
slot |
Sets a scaling factor (percentage) for the preview image.
- Parameters
-
| scale | Scale percentage (100 = normal size). |
◆ updateScaledPreview()
| void ArchidektApiResponseDeckEntryDisplayWidget::updateScaledPreview |
( |
| ) |
|
Updates the scaled preview image and adjusts layout accordingly.
◆ backgroundPlateWidget
Plate for metadata labels.
◆ DESIGN_RATIO
| float ArchidektApiResponseDeckEntryDisplayWidget::DESIGN_RATIO = 150.0f / 267.0f |
|
staticconstexprprivate |
◆ imageNetworkManager
| QNetworkAccessManager* ArchidektApiResponseDeckEntryDisplayWidget::imageNetworkManager |
|
private |
◆ imageUrl
| QUrl ArchidektApiResponseDeckEntryDisplayWidget::imageUrl |
|
private |
URL of the deck's preview image.
◆ layout
| QVBoxLayout* ArchidektApiResponseDeckEntryDisplayWidget::layout |
|
private |
◆ originalPixmap
| QPixmap ArchidektApiResponseDeckEntryDisplayWidget::originalPixmap |
|
private |
Original image for scaling (avoids degradation)
◆ picture
| QLabel* ArchidektApiResponseDeckEntryDisplayWidget::picture |
|
private |
QLabel displaying the scaled pixmap.
◆ previewWidget
Widget showing the deck preview.
◆ response
◆ scaleFactor
| int ArchidektApiResponseDeckEntryDisplayWidget::scaleFactor = 100 |
|
private |
Current scaling percentage.
The documentation for this class was generated from the following files: