1#ifndef COCKATRICE_TAB_ARCHIDEKT_H
2#define COCKATRICE_TAB_ARCHIDEKT_H
14#include <qtmetamacros.h>
23class QNetworkAccessManager;
97 return tr(
"Archidekt: ") + cardName;
190 bool eventFilter(QObject *obj, QEvent *event)
override;
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:15
Definition remote_connection_controller.h:20
Definition dlg_manage_sets.h:29
QWidget * container
Root container for the entire tab.
Definition tab_archidekt.h:245
QHBoxLayout * secondaryToolbarLayout
Layout for secondary toolbar.
Definition tab_archidekt.h:252
QVBoxLayout * mainLayout
Outer vertical layout containing toolbars and results.
Definition tab_archidekt.h:246
QVBoxLayout * resultsLayout
Layout for results (decks appended here).
Definition tab_archidekt.h:256
SettingsButtonWidget * settingsButton
Container for card size settings.
Definition tab_archidekt.h:277
QVector< QCheckBox * > formatChecks
Individual checkboxes for each format.
Definition tab_archidekt.h:289
QTimer * searchDebounceTimer
Timer to debounce search requests.
Definition tab_archidekt.h:235
QSpinBox * minDeckSizeSpin
Spinner to select minimum deck size.
Definition tab_archidekt.h:293
QComboBox * orderByCombo
Dropdown for selecting the sort field.
Definition tab_archidekt.h:263
CardSizeWidget * getCardSizeSlider()
Get the card size slider widget.
Definition tab_archidekt.h:106
QCheckBox * logicalAndCheck
Require ALL selected colors instead of ANY.
Definition tab_archidekt.h:269
QPushButton * orderDirButton
Toggle button for ascending/descending sort.
Definition tab_archidekt.h:264
CardInfoPtr cardToQuery
Optional pre-selected card for initial filtering.
Definition tab_archidekt.h:300
void retranslateUi() override
Update all UI text to reflect the current language or translation.
Definition tab_archidekt.cpp:385
QCheckBox * packagesCheck
Toggle for searching card packages instead of full decks.
Definition tab_archidekt.h:273
QPushButton * advancedFiltersButton
Button to show/hide advanced filters.
Definition tab_archidekt.h:275
QLineEdit * cardsField
Input for cards included in the deck.
Definition tab_archidekt.h:284
QScrollArea * scrollArea
Scrollable area for results (enables infinite scroll).
Definition tab_archidekt.h:254
void connectSignals()
Connect all signals and slots for UI interactions.
Definition tab_archidekt.cpp:325
QComboBox * minDeckSizeLogicCombo
Combo box for size comparison logic.
Definition tab_archidekt.h:294
void processApiJson(QNetworkReply *reply)
Process a network reply containing JSON data.
Definition tab_archidekt.cpp:563
QLabel * sortByLabel
Label for sort controls.
Definition tab_archidekt.h:262
void prettyPrintJson(const QJsonValue &value, int indentLevel)
Pretty-print a QJsonValue for debugging.
Definition tab_archidekt.cpp:646
void updatePackageModeState(bool isPackageMode)
Update UI state when package mode is toggled.
Definition tab_archidekt.cpp:369
QHBoxLayout * primaryToolbarLayout
Layout for primary toolbar.
Definition tab_archidekt.h:249
QString buildSearchUrl()
Construct the search URL from all current filters.
Definition tab_archidekt.cpp:412
CardSizeWidget * cardSizeSlider
Slider to adjust card size in results.
Definition tab_archidekt.h:278
QList< ManaSymbolWidget * > colorSymbols
Mana symbol toggle buttons.
Definition tab_archidekt.h:267
void actNavigatePage(QString url)
Navigate to a specified page URL.
Definition tab_archidekt.cpp:548
int currentPage
Current page number for infinite scroll.
Definition tab_archidekt.h:236
ArchidektApiResponseDeckListingsDisplayWidget * listingsWidget
Definition tab_archidekt.h:239
QComboBox * edhBracketCombo
Dropdown for EDH bracket selection.
Definition tab_archidekt.h:290
bool isLoadingMore
Flag to prevent multiple simultaneous page loads.
Definition tab_archidekt.h:237
QLineEdit * ownerField
Input for owner name filter.
Definition tab_archidekt.h:272
void doSearch()
Trigger a debounced search using the current filters.
Definition tab_archidekt.cpp:515
QLineEdit * nameField
Input for deck name filter.
Definition tab_archidekt.h:271
QWidget * primaryToolbar
Primary toolbar with most important filters.
Definition tab_archidekt.h:248
void loadNextPage()
Load the next page of results for infinite scroll.
Definition tab_archidekt.cpp:533
QSet< QChar > activeColors
Set of currently active mana colors.
Definition tab_archidekt.h:268
QNetworkAccessManager * networkManager
Network manager for handling API requests.
Definition tab_archidekt.h:234
void processDeckResponse(QJsonObject reply)
Handle a JSON response for a single deck.
Definition tab_archidekt.cpp:623
QString getTabText() const override
Retrieve the tab display text.
Definition tab_archidekt.h:94
QLineEdit * commandersField
Input for commander cards.
Definition tab_archidekt.h:285
bool isListMode
Definition tab_archidekt.h:238
void setupFilterWidgets()
Set up all filter widgets.
Definition tab_archidekt.cpp:226
void doSearchImmediate()
Immediately trigger a search using the current filters.
Definition tab_archidekt.cpp:525
QLabel * filterByLabel
Label for filter controls.
Definition tab_archidekt.h:266
void getTopDecks()
Fetch top decks from the Archidekt API.
Definition tab_archidekt.cpp:555
SettingsButtonWidget * formatButton
Collapsible button for format filters.
Definition tab_archidekt.h:288
QWidget * resultsContainer
Container widget inside scroll area.
Definition tab_archidekt.h:255
QWidget * secondaryToolbar
Secondary toolbar with advanced filters.
Definition tab_archidekt.h:251
QPushButton * searchButton
Button to trigger search.
Definition tab_archidekt.h:274
SettingsButtonWidget * deckSizeButton
Collapsible button for deck size filter.
Definition tab_archidekt.h:292
void processTopDecksResponse(QJsonObject reply)
Handle a JSON response containing multiple decks.
Definition tab_archidekt.cpp:595
TabArchidekt(TabSupervisor *_tabSupervisor)
Construct a new TabArchidekt object.
Definition tab_archidekt.cpp:56
QLineEdit * deckTagNameField
Input for deck tag filtering.
Definition tab_archidekt.h:286
void initializeUi()
Initialize the main UI layout and toolbars.
Definition tab_archidekt.cpp:79
bool eventFilter(QObject *obj, QEvent *event) override
Event filter to catch wheel events for infinite scroll.
Definition tab_archidekt.cpp:210
Definition tab_supervisor.h:92
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:16
QString archidektApiLink
Definition tab_archidekt.h:35