#include <visual_deck_storage_folder_display_widget.h>
|
| void | reconcile () |
| | Starts a new chunked reconcile pass that re-reads the proxy and rebuilds the deck previews and subfolder widgets to match.
|
| void | scheduleReconcile () |
| | Coalesces proxy change signals (a burst of deck loads or filter invalidations) into a single reconcile on the next event loop turn.
|
| void | updateShowFolders (bool enabled) |
|
| void | contentVisibilityChanged () |
| | Emitted whenever this folder's visible content changes, so parent folders can re-evaluate their own visibility.
|
|
| static constexpr int | DECK_PASS_TIME_BUDGET_MS = 20 |
| | The maximum time in milliseconds spent creating deck previews per event loop turn.
|
◆ VisualDeckStorageFolderDisplayWidget()
| VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget |
( |
QWidget * | parent, |
|
|
VisualDeckStorageWidget * | visualDeckStorageWidget, |
|
|
const QString & | folderPath, |
|
|
bool | canBeHidden, |
|
|
bool | showFolders ) |
◆ beginDeckPass()
| void VisualDeckStorageFolderDisplayWidget::beginDeckPass |
( |
| ) |
|
|
private |
◆ childFolderPaths()
| QStringList VisualDeckStorageFolderDisplayWidget::childFolderPaths |
( |
| ) |
const |
|
nodiscardprivate |
The direct child folder paths of this folder, sorted by name.
◆ contentVisibilityChanged
| void VisualDeckStorageFolderDisplayWidget::contentVisibilityChanged |
( |
| ) |
|
|
signal |
Emitted whenever this folder's visible content changes, so parent folders can re-evaluate their own visibility.
◆ continueDeckPass()
| void VisualDeckStorageFolderDisplayWidget::continueDeckPass |
( |
| ) |
|
|
private |
◆ createDeckPreviewWidget()
| DeckPreviewWidget * VisualDeckStorageFolderDisplayWidget::createDeckPreviewWidget |
( |
const QString & | filePath | ) |
|
|
nodiscardprivate |
Creates a deck preview widget and wires it up to the storage widget.
- Parameters
-
| filePath | The absolute path of the deck file to preview. |
◆ createSubFolderWidgets()
| void VisualDeckStorageFolderDisplayWidget::createSubFolderWidgets |
( |
| ) |
|
|
private |
Creates, removes and keeps in sync the subfolder widgets of this folder.
Only direct child folders are created here; each child manages its own children, mirroring the folder tree on disk.
◆ finishDeckPass()
| void VisualDeckStorageFolderDisplayWidget::finishDeckPass |
( |
| ) |
|
|
private |
◆ hasContent()
| bool VisualDeckStorageFolderDisplayWidget::hasContent |
( |
| ) |
const |
|
nodiscardprivate |
Whether this folder shows any deck previews or has any visible subfolder.
While the first pass is still building, the folder counts as having content so it doesn't flicker or hide prematurely before its previews have been created.
◆ reconcile
| void VisualDeckStorageFolderDisplayWidget::reconcile |
( |
| ) |
|
|
slot |
Starts a new chunked reconcile pass that re-reads the proxy and rebuilds the deck previews and subfolder widgets to match.
Starts a new chunked scan of the source model, yielding to the event loop between chunks.
◆ refreshVisibility()
| void VisualDeckStorageFolderDisplayWidget::refreshVisibility |
( |
| ) |
|
|
private |
Hides the folder when it contains nothing visible, and reports the change upward.
◆ scheduleReconcile
| void VisualDeckStorageFolderDisplayWidget::scheduleReconcile |
( |
| ) |
|
|
slot |
Coalesces proxy change signals (a burst of deck loads or filter invalidations) into a single reconcile on the next event loop turn.
◆ updateShowFolders
| void VisualDeckStorageFolderDisplayWidget::updateShowFolders |
( |
bool | enabled | ) |
|
|
slot |
◆ container
| QWidget* VisualDeckStorageFolderDisplayWidget::container |
|
private |
◆ containerLayout
| QVBoxLayout* VisualDeckStorageFolderDisplayWidget::containerLayout |
|
private |
◆ DECK_PASS_TIME_BUDGET_MS
| int VisualDeckStorageFolderDisplayWidget::DECK_PASS_TIME_BUDGET_MS = 20 |
|
staticconstexprprivate |
The maximum time in milliseconds spent creating deck previews per event loop turn.
Creating all previews of a large folder at once blocks the ui thread for hundreds of milliseconds, so the pass is split into chunks that yield to the event loop instead.
◆ deckPassActive
| bool VisualDeckStorageFolderDisplayWidget::deckPassActive = false |
|
private |
Whether a chunked reconcile pass is currently running.
◆ deckPassPresentPaths
| QSet<QString> VisualDeckStorageFolderDisplayWidget::deckPassPresentPaths |
|
private |
File paths seen so far in the active pass.
◆ deckPassRestartRequested
| bool VisualDeckStorageFolderDisplayWidget::deckPassRestartRequested = false |
|
private |
Set when the model changes mid-pass. Discards progress and restarts the scan once the current chunk finishes so the pass always converges on the latest model state.
◆ deckPassRow
| int VisualDeckStorageFolderDisplayWidget::deckPassRow = 0 |
|
private |
Next proxy row to scan in the active pass.
◆ deckWidgets
| QHash<QString, DeckPreviewWidget *> VisualDeckStorageFolderDisplayWidget::deckWidgets |
|
private |
Deck file path -> preview widget.
◆ flowWidget
| FlowWidget* VisualDeckStorageFolderDisplayWidget::flowWidget |
|
private |
◆ folderPath
| QString VisualDeckStorageFolderDisplayWidget::folderPath |
|
private |
Path relative to the deck folder, empty for the root folder.
◆ header
◆ initialPassCompleted
| bool VisualDeckStorageFolderDisplayWidget::initialPassCompleted = false |
|
private |
Whether the first reconcile pass has run to completion at least once.
◆ lastOrderedFilePaths
| QStringList VisualDeckStorageFolderDisplayWidget::lastOrderedFilePaths |
|
private |
The deck order last applied to the flow layout.
◆ layout
| QVBoxLayout* VisualDeckStorageFolderDisplayWidget::layout |
|
private |
◆ reconcileTimer
| QTimer* VisualDeckStorageFolderDisplayWidget::reconcileTimer = nullptr |
|
private |
Coalesces proxy change bursts.
◆ showFolders
| bool VisualDeckStorageFolderDisplayWidget::showFolders |
|
private |
◆ subFolderWidgets
Folder path -> subfolder widget.
◆ visibleDeckCount
| int VisualDeckStorageFolderDisplayWidget::visibleDeckCount = 0 |
|
private |
The number of this folder's deck previews not filtered out.
◆ visualDeckStorageWidget
The documentation for this class was generated from the following files: