Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
Loading...
Searching...
No Matches
visual_deck_storage_folder_display_widget.h
Go to the documentation of this file.
1
15
16
#ifndef VISUAL_DECK_STORAGE_FOLDER_DISPLAY_WIDGET_H
17
#define VISUAL_DECK_STORAGE_FOLDER_DISPLAY_WIDGET_H
18
19
#include <QHash>
20
#include <QList>
21
#include <QSet>
22
#include <QString>
23
#include <QStringList>
24
#include <QWidget>
25
#include <qtmetamacros.h>
26
27
class
BannerWidget
;
28
class
DeckPreviewWidget
;
29
class
FlowWidget
;
30
class
QTimer;
31
class
QVBoxLayout;
32
class
VisualDeckStorageWidget
;
33
34
class
VisualDeckStorageFolderDisplayWidget
:
public
QWidget
35
{
36
Q_OBJECT
37
public
:
38
VisualDeckStorageFolderDisplayWidget
(QWidget *parent,
39
VisualDeckStorageWidget
*
visualDeckStorageWidget
,
40
const
QString &
folderPath
,
41
bool
canBeHidden,
42
bool
showFolders
);
43
44
public
slots:
49
void
reconcile
();
50
55
void
scheduleReconcile
();
56
void
updateShowFolders
(
bool
enabled);
57
void
setShareSelectable
(
bool
selectable);
58
59
signals:
64
void
contentVisibilityChanged
();
65
66
private
:
67
void
beginDeckPass
();
68
void
continueDeckPass
();
69
void
finishDeckPass
();
70
[[nodiscard]]
DeckPreviewWidget
*
createDeckPreviewWidget
(
const
QString &filePath);
71
void
createSubFolderWidgets
();
72
void
refreshVisibility
();
73
[[nodiscard]]
bool
hasContent
()
const
;
74
[[nodiscard]] QStringList
childFolderPaths
()
const
;
75
82
static
constexpr
int
DECK_PASS_TIME_BUDGET_MS
= 20;
83
84
bool
showFolders
;
85
QString
folderPath
;
86
int
visibleDeckCount
= 0;
87
QVBoxLayout *
layout
;
88
QWidget *
container
;
89
QVBoxLayout *
containerLayout
;
90
FlowWidget
*
flowWidget
;
91
BannerWidget
*
header
;
92
VisualDeckStorageWidget
*
visualDeckStorageWidget
;
93
QHash<QString, DeckPreviewWidget *>
deckWidgets
;
94
QHash<QString, VisualDeckStorageFolderDisplayWidget *>
subFolderWidgets
;
95
QTimer *
reconcileTimer
=
nullptr
;
96
QStringList
lastOrderedFilePaths
;
97
99
bool
deckPassActive
=
false
;
102
bool
deckPassRestartRequested
=
false
;
104
bool
initialPassCompleted
=
false
;
105
int
deckPassRow
= 0;
106
QSet<QString>
deckPassPresentPaths
;
107
};
108
109
#endif
// VISUAL_DECK_STORAGE_FOLDER_DISPLAY_WIDGET_H
BannerWidget
Definition
banner_widget.h:19
DeckPreviewWidget
Definition
deck_preview_widget.h:34
FlowWidget
Definition
flow_widget.h:27
QHash
Definition
mana_curve_category_widget.h:11
QSet
Definition
dlg_manage_sets.h:29
VisualDeckStorageFolderDisplayWidget::continueDeckPass
void continueDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:112
VisualDeckStorageFolderDisplayWidget::deckPassActive
bool deckPassActive
Whether a chunked reconcile pass is currently running.
Definition
visual_deck_storage_folder_display_widget.h:99
VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget
VisualDeckStorageFolderDisplayWidget(QWidget *parent, VisualDeckStorageWidget *visualDeckStorageWidget, const QString &folderPath, bool canBeHidden, bool showFolders)
Definition
visual_deck_storage_folder_display_widget.cpp:29
VisualDeckStorageFolderDisplayWidget::deckPassRestartRequested
bool deckPassRestartRequested
Definition
visual_deck_storage_folder_display_widget.h:102
VisualDeckStorageFolderDisplayWidget::container
QWidget * container
Definition
visual_deck_storage_folder_display_widget.h:88
VisualDeckStorageFolderDisplayWidget::subFolderWidgets
QHash< QString, VisualDeckStorageFolderDisplayWidget * > subFolderWidgets
Folder path -> subfolder widget.
Definition
visual_deck_storage_folder_display_widget.h:94
VisualDeckStorageFolderDisplayWidget::deckWidgets
QHash< QString, DeckPreviewWidget * > deckWidgets
Deck file path -> preview widget.
Definition
visual_deck_storage_folder_display_widget.h:93
VisualDeckStorageFolderDisplayWidget::DECK_PASS_TIME_BUDGET_MS
static constexpr int DECK_PASS_TIME_BUDGET_MS
The maximum time in milliseconds spent creating deck previews per event loop turn.
Definition
visual_deck_storage_folder_display_widget.h:82
VisualDeckStorageFolderDisplayWidget::deckPassRow
int deckPassRow
Next proxy row to scan in the active pass.
Definition
visual_deck_storage_folder_display_widget.h:105
VisualDeckStorageFolderDisplayWidget::refreshVisibility
void refreshVisibility()
Hides the folder when it contains nothing visible, and reports the change upward.
Definition
visual_deck_storage_folder_display_widget.cpp:312
VisualDeckStorageFolderDisplayWidget::layout
QVBoxLayout * layout
Definition
visual_deck_storage_folder_display_widget.h:87
VisualDeckStorageFolderDisplayWidget::finishDeckPass
void finishDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:170
VisualDeckStorageFolderDisplayWidget::hasContent
bool hasContent() const
Whether this folder shows any deck previews or has any visible subfolder.
Definition
visual_deck_storage_folder_display_widget.cpp:328
VisualDeckStorageFolderDisplayWidget::createSubFolderWidgets
void createSubFolderWidgets()
Creates, removes and keeps in sync the subfolder widgets of this folder.
Definition
visual_deck_storage_folder_display_widget.cpp:261
VisualDeckStorageFolderDisplayWidget::lastOrderedFilePaths
QStringList lastOrderedFilePaths
The deck order last applied to the flow layout.
Definition
visual_deck_storage_folder_display_widget.h:96
VisualDeckStorageFolderDisplayWidget::visibleDeckCount
int visibleDeckCount
The number of this folder's deck previews not filtered out.
Definition
visual_deck_storage_folder_display_widget.h:86
VisualDeckStorageFolderDisplayWidget::containerLayout
QVBoxLayout * containerLayout
Definition
visual_deck_storage_folder_display_widget.h:89
VisualDeckStorageFolderDisplayWidget::header
BannerWidget * header
Definition
visual_deck_storage_folder_display_widget.h:91
VisualDeckStorageFolderDisplayWidget::reconcileTimer
QTimer * reconcileTimer
Coalesces proxy change bursts.
Definition
visual_deck_storage_folder_display_widget.h:95
VisualDeckStorageFolderDisplayWidget::setShareSelectable
void setShareSelectable(bool selectable)
Definition
visual_deck_storage_folder_display_widget.cpp:243
VisualDeckStorageFolderDisplayWidget::deckPassPresentPaths
QSet< QString > deckPassPresentPaths
File paths seen so far in the active pass.
Definition
visual_deck_storage_folder_display_widget.h:106
VisualDeckStorageFolderDisplayWidget::initialPassCompleted
bool initialPassCompleted
Whether the first reconcile pass has run to completion at least once.
Definition
visual_deck_storage_folder_display_widget.h:104
VisualDeckStorageFolderDisplayWidget::updateShowFolders
void updateShowFolders(bool enabled)
Definition
visual_deck_storage_folder_display_widget.cpp:293
VisualDeckStorageFolderDisplayWidget::reconcile
void reconcile()
Starts a new chunked reconcile pass that re-reads the proxy and rebuilds the deck previews and subfol...
Definition
visual_deck_storage_folder_display_widget.cpp:96
VisualDeckStorageFolderDisplayWidget::contentVisibilityChanged
void contentVisibilityChanged()
Emitted whenever this folder's visible content changes, so parent folders can re-evaluate their own v...
VisualDeckStorageFolderDisplayWidget::createDeckPreviewWidget
DeckPreviewWidget * createDeckPreviewWidget(const QString &filePath)
Creates a deck preview widget and wires it up to the storage widget.
Definition
visual_deck_storage_folder_display_widget.cpp:223
VisualDeckStorageFolderDisplayWidget::visualDeckStorageWidget
VisualDeckStorageWidget * visualDeckStorageWidget
Definition
visual_deck_storage_folder_display_widget.h:92
VisualDeckStorageFolderDisplayWidget::showFolders
bool showFolders
Definition
visual_deck_storage_folder_display_widget.h:84
VisualDeckStorageFolderDisplayWidget::childFolderPaths
QStringList childFolderPaths() const
The direct child folder paths of this folder, sorted by name.
Definition
visual_deck_storage_folder_display_widget.cpp:346
VisualDeckStorageFolderDisplayWidget::flowWidget
FlowWidget * flowWidget
Definition
visual_deck_storage_folder_display_widget.h:90
VisualDeckStorageFolderDisplayWidget::scheduleReconcile
void scheduleReconcile()
Coalesces proxy change signals (a burst of deck loads or filter invalidations) into a single reconcil...
Definition
visual_deck_storage_folder_display_widget.cpp:82
VisualDeckStorageFolderDisplayWidget::beginDeckPass
void beginDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:101
VisualDeckStorageFolderDisplayWidget::folderPath
QString folderPath
Path relative to the deck folder, empty for the root folder.
Definition
visual_deck_storage_folder_display_widget.h:85
VisualDeckStorageWidget
Definition
visual_deck_storage_widget.h:32
cockatrice
src
interface
widgets
visual_deck_storage
visual_deck_storage_folder_display_widget.h
Generated by
1.18.0