Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
visual_deck_storage_widget.h
Go to the documentation of this file.
1
5
6#ifndef VISUAL_DECK_STORAGE_WIDGET_H
7#define VISUAL_DECK_STORAGE_WIDGET_H
8
9#include <QSet>
10#include <QString>
11#include <QStringList>
12#include <QWidget>
13#include <qtmetamacros.h>
14
15class QLabel;
16class QTimer;
23class QHBoxLayout;
24class QScrollArea;
25class QToolButton;
26class QVBoxLayout;
29struct LoadedDeck;
30
31class VisualDeckStorageWidget final : public QWidget
32{
33 Q_OBJECT
34public:
35 explicit VisualDeckStorageWidget(QWidget *parent);
36 void refreshIfPossible();
37 void retranslateUi();
38 void setShareSelectable(bool selectable);
39 [[nodiscard]] bool isShareSelectable() const;
40 [[nodiscard]] QStringList selectedFilePaths() const;
41 void setShareSelectedFiles(const QStringList &paths);
43 void setShareAvailable(bool available);
44
47
48 [[nodiscard]] const VisualDeckStorageQuickSettingsWidget *settings() const;
49 [[nodiscard]] VisualDeckStorageModel *model() const
50 {
51 return storageModel;
52 }
54 {
55 return storageProxyModel;
56 }
57
58public slots:
63 void updateShowFolders(bool enabled);
64 void updateTagsVisibility(bool visible);
65 void updateSelectionAnimationEnabled(bool enabled);
66 void updateSortOrder();
67 void updateTagFilter();
68 void updateColorFilter();
69 void updateSearchFilter(const QString &text);
70
71signals:
72 void deckLoadRequested(const QString &filePath);
73 void openDeckEditor(const LoadedDeck &deck);
74 void shareDeckRequested(const QString &filePath);
77
78protected:
79 void resizeEvent(QResizeEvent *event) override;
80 void showEvent(QShowEvent *event) override;
81
82private:
84 [[nodiscard]] QSet<QString> gatherVisibleTags() const;
85
86private:
87 QVBoxLayout *layout;
89 QHBoxLayout *searchAndSortLayout;
94 QToolButton *refreshButton;
95 QToolButton *shareButton;
97 QScrollArea *scrollArea;
101 QTimer *refreshTimer = nullptr;
102 bool shareSelectable = false;
103};
104
105#endif // VISUAL_DECK_STORAGE_WIDGET_H
Definition deck_preview_color_identity_filter_widget.h:21
Definition dlg_manage_sets.h:29
Definition visual_deck_storage_folder_display_widget.h:35
The list model backing the Visual Deck Storage widget tree.
Definition visual_deck_storage_model.h:103
Definition visual_deck_storage_quick_settings_widget.h:24
Definition visual_deck_storage_search_widget.h:18
Definition visual_deck_storage_sort_filter_proxy_model.h:29
Definition visual_deck_storage_sort_widget.h:19
Definition visual_deck_storage_tag_filter_widget.h:21
void reapplySortAndFilters()
Definition visual_deck_storage_widget.cpp:268
VisualDeckStorageModel * model() const
Definition visual_deck_storage_widget.h:49
void retranslateUi()
Definition visual_deck_storage_widget.cpp:187
bool shareSelectable
Definition visual_deck_storage_widget.h:102
QSet< QString > gatherVisibleTags() const
The tags of all decks currently accepted by the proxy model.
Definition visual_deck_storage_widget.cpp:317
VisualDeckStorageModel * storageModel
Definition visual_deck_storage_widget.h:99
QHBoxLayout * searchAndSortLayout
Definition visual_deck_storage_widget.h:89
const VisualDeckStorageQuickSettingsWidget * settings() const
Definition visual_deck_storage_widget.cpp:260
void setShareSelectable(bool selectable)
Definition visual_deck_storage_widget.cpp:198
VisualDeckStorageTagFilterWidget * tagFilterWidget
Definition visual_deck_storage_widget.h:45
QVBoxLayout * layout
Definition visual_deck_storage_widget.h:87
bool deckPreviewSelectionAnimationEnabled
Definition visual_deck_storage_widget.h:46
QStringList selectedFilePaths() const
Definition visual_deck_storage_widget.cpp:215
void refreshIfPossible()
Definition visual_deck_storage_widget.cpp:162
VisualDeckStorageQuickSettingsWidget * quickSettingsWidget
Definition visual_deck_storage_widget.h:96
QToolButton * refreshButton
Definition visual_deck_storage_widget.h:94
QLabel * databaseLoadIndicator
Definition visual_deck_storage_widget.h:90
void updateSortOrder()
Definition visual_deck_storage_widget.cpp:299
void updateColorFilter()
Definition visual_deck_storage_widget.cpp:336
void updateSearchFilter(const QString &text)
Definition visual_deck_storage_widget.cpp:345
void resizeEvent(QResizeEvent *event) override
Definition visual_deck_storage_widget.cpp:178
void clearShareSelection()
Definition visual_deck_storage_widget.cpp:231
void openDeckEditor(const LoadedDeck &deck)
void setShareAvailable(bool available)
Definition visual_deck_storage_widget.cpp:241
void createRootFolderWidget()
Starts scanning the deck folder and rebuilds the folder tree and previews.
Definition visual_deck_storage_widget.cpp:277
void showEvent(QShowEvent *event) override
Definition visual_deck_storage_widget.cpp:169
VisualDeckStorageSearchWidget * searchWidget
Definition visual_deck_storage_widget.h:92
QTimer * refreshTimer
Coalesces the re-apply/refresh burst following a batch of deck loads.
Definition visual_deck_storage_widget.h:101
VisualDeckStorageSortWidget * sortWidget
Definition visual_deck_storage_widget.h:91
void updateShowFolders(bool enabled)
Definition visual_deck_storage_widget.cpp:292
QScrollArea * scrollArea
Definition visual_deck_storage_widget.h:97
void updateTagsVisibility(bool visible)
Definition visual_deck_storage_widget.cpp:350
void deckLoadRequested(const QString &filePath)
VisualDeckStorageFolderDisplayWidget * folderWidget
Definition visual_deck_storage_widget.h:98
void shareDeckRequested(const QString &filePath)
VisualDeckStorageSortFilterProxyModel * proxyModel() const
Definition visual_deck_storage_widget.h:53
VisualDeckStorageWidget(QWidget *parent)
Definition visual_deck_storage_widget.cpp:38
VisualDeckStorageSortFilterProxyModel * storageProxyModel
Definition visual_deck_storage_widget.h:100
QToolButton * shareButton
Definition visual_deck_storage_widget.h:95
bool isShareSelectable() const
Definition visual_deck_storage_widget.cpp:210
void updateSelectionAnimationEnabled(bool enabled)
Definition visual_deck_storage_widget.cpp:360
void updateTagFilter()
Definition visual_deck_storage_widget.cpp:304
void setShareSelectedFiles(const QStringList &paths)
Definition visual_deck_storage_widget.cpp:247
DeckPreviewColorIdentityFilterWidget * deckPreviewColorIdentityFilterWidget
Definition visual_deck_storage_widget.h:93
QWidget * searchAndSortContainer
Definition visual_deck_storage_widget.h:88
Represents a deck that was loaded from somewhere. Contains the DeckList itself, as well as info about...
Definition loaded_deck.h:14