Cockatrice
2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
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 <QSet>
21
#include <QString>
22
#include <QWidget>
23
24
class
BannerWidget
;
25
class
DeckPreviewWidget
;
26
class
FlowWidget
;
27
class
QTimer;
28
class
QVBoxLayout;
29
class
VisualDeckStorageWidget
;
30
31
class
VisualDeckStorageFolderDisplayWidget
:
public
QWidget
32
{
33
Q_OBJECT
34
public
:
35
VisualDeckStorageFolderDisplayWidget
(QWidget *parent,
36
VisualDeckStorageWidget
*
visualDeckStorageWidget
,
37
const
QString &
folderPath
,
38
bool
canBeHidden,
39
bool
showFolders
);
40
41
public
slots:
46
void
reconcile
();
47
52
void
scheduleReconcile
();
53
void
updateShowFolders
(
bool
enabled);
54
55
signals:
60
void
contentVisibilityChanged
();
61
62
private
:
63
void
beginDeckPass
();
64
void
continueDeckPass
();
65
void
finishDeckPass
();
66
[[nodiscard]]
DeckPreviewWidget
*
createDeckPreviewWidget
(
const
QString &filePath);
67
void
createSubFolderWidgets
();
68
void
refreshVisibility
();
69
[[nodiscard]]
bool
hasContent
()
const
;
70
[[nodiscard]] QStringList
childFolderPaths
()
const
;
71
78
static
constexpr
int
DECK_PASS_TIME_BUDGET_MS
= 20;
79
80
bool
showFolders
;
81
QString
folderPath
;
82
int
visibleDeckCount
= 0;
83
QVBoxLayout *
layout
;
84
QWidget *
container
;
85
QVBoxLayout *
containerLayout
;
86
FlowWidget
*
flowWidget
;
87
BannerWidget
*
header
;
88
VisualDeckStorageWidget
*
visualDeckStorageWidget
;
89
QHash<QString, DeckPreviewWidget *>
deckWidgets
;
90
QHash<QString, VisualDeckStorageFolderDisplayWidget *>
subFolderWidgets
;
91
QTimer *
reconcileTimer
=
nullptr
;
92
QStringList
lastOrderedFilePaths
;
93
95
bool
deckPassActive
=
false
;
98
bool
deckPassRestartRequested
=
false
;
100
bool
initialPassCompleted
=
false
;
101
int
deckPassRow
= 0;
102
QSet<QString>
deckPassPresentPaths
;
103
};
104
105
#endif
// VISUAL_DECK_STORAGE_FOLDER_DISPLAY_WIDGET_H
BannerWidget
Definition
banner_widget.h:17
DeckPreviewWidget
Definition
deck_preview_widget.h:30
FlowWidget
Definition
flow_widget.h:22
VisualDeckStorageFolderDisplayWidget::continueDeckPass
void continueDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:98
VisualDeckStorageFolderDisplayWidget::deckPassActive
bool deckPassActive
Whether a chunked reconcile pass is currently running.
Definition
visual_deck_storage_folder_display_widget.h:95
VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget
VisualDeckStorageFolderDisplayWidget(QWidget *parent, VisualDeckStorageWidget *visualDeckStorageWidget, const QString &folderPath, bool canBeHidden, bool showFolders)
Definition
visual_deck_storage_folder_display_widget.cpp:17
VisualDeckStorageFolderDisplayWidget::deckPassRestartRequested
bool deckPassRestartRequested
Definition
visual_deck_storage_folder_display_widget.h:98
VisualDeckStorageFolderDisplayWidget::container
QWidget * container
Definition
visual_deck_storage_folder_display_widget.h:84
VisualDeckStorageFolderDisplayWidget::subFolderWidgets
QHash< QString, VisualDeckStorageFolderDisplayWidget * > subFolderWidgets
Folder path -> subfolder widget.
Definition
visual_deck_storage_folder_display_widget.h:90
VisualDeckStorageFolderDisplayWidget::deckWidgets
QHash< QString, DeckPreviewWidget * > deckWidgets
Deck file path -> preview widget.
Definition
visual_deck_storage_folder_display_widget.h:89
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:78
VisualDeckStorageFolderDisplayWidget::deckPassRow
int deckPassRow
Next proxy row to scan in the active pass.
Definition
visual_deck_storage_folder_display_widget.h:101
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:276
VisualDeckStorageFolderDisplayWidget::layout
QVBoxLayout * layout
Definition
visual_deck_storage_folder_display_widget.h:83
VisualDeckStorageFolderDisplayWidget::finishDeckPass
void finishDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:151
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:292
VisualDeckStorageFolderDisplayWidget::createSubFolderWidgets
void createSubFolderWidgets()
Creates, removes and keeps in sync the subfolder widgets of this folder.
Definition
visual_deck_storage_folder_display_widget.cpp:225
VisualDeckStorageFolderDisplayWidget::lastOrderedFilePaths
QStringList lastOrderedFilePaths
The deck order last applied to the flow layout.
Definition
visual_deck_storage_folder_display_widget.h:92
VisualDeckStorageFolderDisplayWidget::visibleDeckCount
int visibleDeckCount
The number of this folder's deck previews not filtered out.
Definition
visual_deck_storage_folder_display_widget.h:82
VisualDeckStorageFolderDisplayWidget::containerLayout
QVBoxLayout * containerLayout
Definition
visual_deck_storage_folder_display_widget.h:85
VisualDeckStorageFolderDisplayWidget::header
BannerWidget * header
Definition
visual_deck_storage_folder_display_widget.h:87
VisualDeckStorageFolderDisplayWidget::reconcileTimer
QTimer * reconcileTimer
Coalesces proxy change bursts.
Definition
visual_deck_storage_folder_display_widget.h:91
VisualDeckStorageFolderDisplayWidget::deckPassPresentPaths
QSet< QString > deckPassPresentPaths
File paths seen so far in the active pass.
Definition
visual_deck_storage_folder_display_widget.h:102
VisualDeckStorageFolderDisplayWidget::initialPassCompleted
bool initialPassCompleted
Whether the first reconcile pass has run to completion at least once.
Definition
visual_deck_storage_folder_display_widget.h:100
VisualDeckStorageFolderDisplayWidget::updateShowFolders
void updateShowFolders(bool enabled)
Definition
visual_deck_storage_folder_display_widget.cpp:257
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:82
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:204
VisualDeckStorageFolderDisplayWidget::visualDeckStorageWidget
VisualDeckStorageWidget * visualDeckStorageWidget
Definition
visual_deck_storage_folder_display_widget.h:88
VisualDeckStorageFolderDisplayWidget::showFolders
bool showFolders
Definition
visual_deck_storage_folder_display_widget.h:80
VisualDeckStorageFolderDisplayWidget::childFolderPaths
QStringList childFolderPaths() const
The direct child folder paths of this folder, sorted by name.
Definition
visual_deck_storage_folder_display_widget.cpp:310
VisualDeckStorageFolderDisplayWidget::flowWidget
FlowWidget * flowWidget
Definition
visual_deck_storage_folder_display_widget.h:86
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:68
VisualDeckStorageFolderDisplayWidget::beginDeckPass
void beginDeckPass()
Definition
visual_deck_storage_folder_display_widget.cpp:87
VisualDeckStorageFolderDisplayWidget::folderPath
QString folderPath
Path relative to the deck folder, empty for the root folder.
Definition
visual_deck_storage_folder_display_widget.h:81
VisualDeckStorageWidget
Definition
visual_deck_storage_widget.h:30
cockatrice
src
interface
widgets
visual_deck_storage
visual_deck_storage_folder_display_widget.h
Generated by
1.16.1