Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
flow_widget.h
Go to the documentation of this file.
1
6
7#ifndef FLOW_WIDGET_H
8#define FLOW_WIDGET_H
10
11#include <QHBoxLayout>
12#include <QLoggingCategory>
13#include <QWidget>
14#include <qscrollarea.h>
15
16inline Q_LOGGING_CATEGORY(FlowWidgetLog, "flow_widget", QtInfoMsg);
17inline Q_LOGGING_CATEGORY(FlowWidgetSizeLog, "flow_widget.size", QtInfoMsg);
18
19class FlowWidget final : public QWidget
20{
21 Q_OBJECT
22
23public:
24 FlowWidget(QWidget *parent,
25 Qt::Orientation orientation,
26 Qt::ScrollBarPolicy horizontalPolicy,
27 Qt::ScrollBarPolicy verticalPolicy);
28 void addWidget(QWidget *widget_to_add) const;
29 void insertWidgetAtIndex(QWidget *toInsert, int index);
30 void removeWidget(QWidget *widgetToRemove) const;
31 void clearLayout();
32 [[nodiscard]] int count() const;
33 [[nodiscard]] QLayoutItem *itemAt(int index) const;
34
35 QScrollArea *scrollArea;
36
37public slots:
39
40protected:
41 void resizeEvent(QResizeEvent *event) override;
42
43private:
44 Qt::Orientation flowDirection;
45 QHBoxLayout *mainLayout;
47 QWidget *container;
48};
49
50#endif // FLOW_WIDGET_H
Definition flow_layout.h:19
QScrollArea * scrollArea
Definition flow_widget.h:35
int count() const
Definition flow_widget.cpp:183
QLayoutItem * itemAt(int index) const
Definition flow_widget.cpp:178
void clearLayout()
Clears all widgets from the flow layout.
Definition flow_widget.cpp:107
void addWidget(QWidget *widget_to_add) const
Adds a widget to the flow layout within the FlowWidget.
Definition flow_widget.cpp:86
void removeWidget(QWidget *widgetToRemove) const
Definition flow_widget.cpp:97
FlowWidget(QWidget *parent, Qt::Orientation orientation, Qt::ScrollBarPolicy horizontalPolicy, Qt::ScrollBarPolicy verticalPolicy)
Constructs a FlowWidget with a scrollable layout.
Definition flow_widget.cpp:21
Qt::Orientation flowDirection
Definition flow_widget.h:44
QWidget * container
Definition flow_widget.h:47
void resizeEvent(QResizeEvent *event) override
Handles resize events for the FlowWidget.
Definition flow_widget.cpp:128
QHBoxLayout * mainLayout
Definition flow_widget.h:45
void insertWidgetAtIndex(QWidget *toInsert, int index)
Definition flow_widget.cpp:91
void setMinimumSizeToMaxSizeHint()
Sets the minimum size for all widgets inside the FlowWidget to the maximum sizeHint of all of them.
Definition flow_widget.cpp:152
FlowLayout * flowLayout
Definition flow_widget.h:46
TODO: Document this.
Q_LOGGING_CATEGORY(FlowWidgetLog, "flow_widget", QtInfoMsg)