1#ifndef COCKATRICE_TAB_ARCHIDEKT_H
2#define COCKATRICE_TAB_ARCHIDEKT_H
4#include "../../interface/widgets/cards/card_size_widget.h"
5#include "../../interface/widgets/quick_settings/settings_button_widget.h"
14#include <QNetworkAccessManager>
88 return tr(
"Archidekt: ") + cardName;
181 bool eventFilter(QObject *obj, QEvent *event)
override;
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QWidget * container
Root container for the entire tab.
Definition tab_archidekt.h:236
QHBoxLayout * secondaryToolbarLayout
Layout for secondary toolbar.
Definition tab_archidekt.h:243
QVBoxLayout * mainLayout
Outer vertical layout containing toolbars and results.
Definition tab_archidekt.h:237
QVBoxLayout * resultsLayout
Layout for results (decks appended here)
Definition tab_archidekt.h:247
SettingsButtonWidget * settingsButton
Container for card size settings.
Definition tab_archidekt.h:268
QVector< QCheckBox * > formatChecks
Individual checkboxes for each format.
Definition tab_archidekt.h:280
QTimer * searchDebounceTimer
Timer to debounce search requests.
Definition tab_archidekt.h:226
QSpinBox * minDeckSizeSpin
Spinner to select minimum deck size.
Definition tab_archidekt.h:284
QComboBox * orderByCombo
Dropdown for selecting the sort field.
Definition tab_archidekt.h:254
CardSizeWidget * getCardSizeSlider()
Get the card size slider widget.
Definition tab_archidekt.h:97
QCheckBox * logicalAndCheck
Require ALL selected colors instead of ANY.
Definition tab_archidekt.h:260
QPushButton * orderDirButton
Toggle button for ascending/descending sort.
Definition tab_archidekt.h:255
CardInfoPtr cardToQuery
Optional pre-selected card for initial filtering.
Definition tab_archidekt.h:291
void retranslateUi() override
Update all UI text to reflect the current language or translation.
Definition tab_archidekt.cpp:384
QCheckBox * packagesCheck
Toggle for searching card packages instead of full decks.
Definition tab_archidekt.h:264
QPushButton * advancedFiltersButton
Button to show/hide advanced filters.
Definition tab_archidekt.h:266
QLineEdit * cardsField
Input for cards included in the deck.
Definition tab_archidekt.h:275
QScrollArea * scrollArea
Scrollable area for results (enables infinite scroll)
Definition tab_archidekt.h:245
void connectSignals()
Connect all signals and slots for UI interactions.
Definition tab_archidekt.cpp:324
QComboBox * minDeckSizeLogicCombo
Combo box for size comparison logic.
Definition tab_archidekt.h:285
void processApiJson(QNetworkReply *reply)
Process a network reply containing JSON data.
Definition tab_archidekt.cpp:561
QLabel * sortByLabel
Label for sort controls.
Definition tab_archidekt.h:253
void prettyPrintJson(const QJsonValue &value, int indentLevel)
Pretty-print a QJsonValue for debugging.
Definition tab_archidekt.cpp:644
void updatePackageModeState(bool isPackageMode)
Update UI state when package mode is toggled.
Definition tab_archidekt.cpp:368
QHBoxLayout * primaryToolbarLayout
Layout for primary toolbar.
Definition tab_archidekt.h:240
QString buildSearchUrl()
Construct the search URL from all current filters.
Definition tab_archidekt.cpp:411
CardSizeWidget * cardSizeSlider
Slider to adjust card size in results.
Definition tab_archidekt.h:269
QList< ManaSymbolWidget * > colorSymbols
Mana symbol toggle buttons.
Definition tab_archidekt.h:258
void actNavigatePage(QString url)
Navigate to a specified page URL.
Definition tab_archidekt.cpp:546
int currentPage
Current page number for infinite scroll.
Definition tab_archidekt.h:227
ArchidektApiResponseDeckListingsDisplayWidget * listingsWidget
Definition tab_archidekt.h:230
QComboBox * edhBracketCombo
Dropdown for EDH bracket selection.
Definition tab_archidekt.h:281
bool isLoadingMore
Flag to prevent multiple simultaneous page loads.
Definition tab_archidekt.h:228
QLineEdit * ownerField
Input for owner name filter.
Definition tab_archidekt.h:263
void doSearch()
Trigger a debounced search using the current filters.
Definition tab_archidekt.cpp:513
QLineEdit * nameField
Input for deck name filter.
Definition tab_archidekt.h:262
QWidget * primaryToolbar
Primary toolbar with most important filters.
Definition tab_archidekt.h:239
void loadNextPage()
Load the next page of results for infinite scroll.
Definition tab_archidekt.cpp:531
QSet< QChar > activeColors
Set of currently active mana colors.
Definition tab_archidekt.h:259
QNetworkAccessManager * networkManager
Network manager for handling API requests.
Definition tab_archidekt.h:225
void processDeckResponse(QJsonObject reply)
Handle a JSON response for a single deck.
Definition tab_archidekt.cpp:621
QString getTabText() const override
Retrieve the tab display text.
Definition tab_archidekt.h:85
QLineEdit * commandersField
Input for commander cards.
Definition tab_archidekt.h:276
bool isListMode
Definition tab_archidekt.h:229
void setupFilterWidgets()
Set up all filter widgets.
Definition tab_archidekt.cpp:200
void doSearchImmediate()
Immediately trigger a search using the current filters.
Definition tab_archidekt.cpp:523
QLabel * filterByLabel
Label for filter controls.
Definition tab_archidekt.h:257
void getTopDecks()
Fetch top decks from the Archidekt API.
Definition tab_archidekt.cpp:553
SettingsButtonWidget * formatButton
Collapsible button for format filters.
Definition tab_archidekt.h:279
QWidget * resultsContainer
Container widget inside scroll area.
Definition tab_archidekt.h:246
QWidget * secondaryToolbar
Secondary toolbar with advanced filters.
Definition tab_archidekt.h:242
QPushButton * searchButton
Button to trigger search.
Definition tab_archidekt.h:265
SettingsButtonWidget * deckSizeButton
Collapsible button for deck size filter.
Definition tab_archidekt.h:283
void processTopDecksResponse(QJsonObject reply)
Handle a JSON response containing multiple decks.
Definition tab_archidekt.cpp:593
TabArchidekt(TabSupervisor *_tabSupervisor)
Construct a new TabArchidekt object.
Definition tab_archidekt.cpp:32
QLineEdit * deckTagNameField
Input for deck tag filtering.
Definition tab_archidekt.h:277
void initializeUi()
Initialize the main UI layout and toolbars.
Definition tab_archidekt.cpp:55
bool eventFilter(QObject *obj, QEvent *event) override
Event filter to catch wheel events for infinite scroll.
Definition tab_archidekt.cpp:184
Definition tab_supervisor.h:83
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:11
QString archidektApiLink
Definition tab_archidekt.h:26