Cockatrice 2026-06-01-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
flow_widget.h
Go to the documentation of this file.
1
7
8#ifndef FLOW_WIDGET_H
9#define FLOW_WIDGET_H
10
12
13#include <QHBoxLayout>
14#include <QLoggingCategory>
15#include <QScrollArea>
16#include <QWidget>
17
18inline Q_LOGGING_CATEGORY(FlowWidgetLog, "flow_widget", QtInfoMsg);
19inline Q_LOGGING_CATEGORY(FlowWidgetSizeLog, "flow_widget.size", QtInfoMsg);
20
21class FlowWidget : public QWidget
22{
23 Q_OBJECT
24
25public:
26 FlowWidget(QWidget *parent,
27 Qt::Orientation orientation,
28 Qt::ScrollBarPolicy horizontalPolicy,
29 Qt::ScrollBarPolicy verticalPolicy);
30
31 void addWidget(QWidget *widget_to_add) const;
32 void insertWidgetAtIndex(QWidget *toInsert, int index);
33 void removeWidget(QWidget *widgetToRemove) const;
34 void clearLayout();
35
36 [[nodiscard]] int count() const;
37 [[nodiscard]] QLayoutItem *itemAt(int index) const;
38
39 QScrollArea *scrollArea;
40
41public slots:
43 void setSpacing(int hSpacing, int vSpacing);
44
45protected:
46 void resizeEvent(QResizeEvent *event) override;
47
48private:
49 Qt::Orientation flowDirection;
50 QHBoxLayout *mainLayout;
52 QWidget *container;
53};
54
55#endif // FLOW_WIDGET_H
Definition flow_layout.h:21
void setSpacing(int hSpacing, int vSpacing)
Definition flow_widget.cpp:142
QScrollArea * scrollArea
Null when both scroll policies are AlwaysOff.
Definition flow_widget.h:39
int count() const
Definition flow_widget.cpp:180
QLayoutItem * itemAt(int index) const
Definition flow_widget.cpp:175
void clearLayout()
Removes all widgets from the flow layout and deletes them.
Definition flow_widget.cpp:106
void addWidget(QWidget *widget_to_add) const
Adds a widget to the flow layout within the FlowWidget.
Definition flow_widget.cpp:85
void removeWidget(QWidget *widgetToRemove) const
Definition flow_widget.cpp:96
FlowWidget(QWidget *parent, Qt::Orientation orientation, Qt::ScrollBarPolicy horizontalPolicy, Qt::ScrollBarPolicy verticalPolicy)
Constructs a FlowWidget.
Definition flow_widget.cpp:26
Qt::Orientation flowDirection
Definition flow_widget.h:49
QWidget * container
Definition flow_widget.h:52
void resizeEvent(QResizeEvent *event) override
Marks the flow layout as dirty so Qt recomputes item positions.
Definition flow_widget.cpp:132
QHBoxLayout * mainLayout
Definition flow_widget.h:50
void insertWidgetAtIndex(QWidget *toInsert, int index)
Definition flow_widget.cpp:90
void setMinimumSizeToMaxSizeHint()
Sets every child widget's minimum size to the largest sizeHint in the layout.
Definition flow_widget.cpp:154
FlowLayout * flowLayout
Definition flow_widget.h:51
A QLayout subclass that arranges child widgets in wrapping rows (horizontal flow) or wrapping columns...
Q_LOGGING_CATEGORY(FlowWidgetLog, "flow_widget", QtInfoMsg)