Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
overlap_layout.h
Go to the documentation of this file.
1
6
7#ifndef OVERLAP_LAYOUT_H
8#define OVERLAP_LAYOUT_H
9
10#include <QLayout>
11#include <QList>
12#include <QLoggingCategory>
13#include <QSize>
14#include <qnamespace.h>
15
16class QLayoutItem;
17class QWidget;
18
19inline Q_LOGGING_CATEGORY(OverlapLayoutLog, "overlap_layout");
20
21class OverlapLayout : public QLayout
22{
23public:
24 OverlapLayout(QWidget *parent = nullptr,
25 int overlapPercentage = 10,
26 int maxColumns = 2,
27 int maxRows = 2,
28 Qt::Orientation overlapDirection = Qt::Vertical,
29 Qt::Orientation flowDirection = Qt::Horizontal);
31 void insertWidgetAtIndex(QWidget *toInsert, int index);
32
33 void addItem(QLayoutItem *item) override;
34 [[nodiscard]] int count() const override;
35 [[nodiscard]] QLayoutItem *itemAt(int index) const override;
36 QLayoutItem *takeAt(int index) override;
37 void setGeometry(const QRect &rect) override;
38 [[nodiscard]] QSize minimumSize() const override;
39 [[nodiscard]] QSize sizeHint() const override;
40 void setMaxColumns(int _maxColumns);
41 void setMaxRows(int _maxRows);
42 [[nodiscard]] int calculateMaxColumns() const;
43 [[nodiscard]] int calculateRowsForColumns(int columns) const;
44 [[nodiscard]] int calculateMaxRows() const;
45 [[nodiscard]] int calculateColumnsForRows(int rows) const;
46 void setDirection(Qt::Orientation _direction);
47
48private:
53 Qt::Orientation overlapDirection;
54 Qt::Orientation flowDirection;
55
56 // Calculate the preferred size of the layout
57 [[nodiscard]] QSize calculatePreferredSize() const;
58};
59
60#endif // OVERLAP_LAYOUT_H
void insertWidgetAtIndex(QWidget *toInsert, int index)
Definition overlap_layout.cpp:65
QSize minimumSize() const override
Provides the minimum size hint for the layout, ensuring functionality within constraints.
Definition overlap_layout.cpp:362
int calculateMaxRows() const
Calculates the maximum number of rows for a horizontal overlap layout based on the current height.
Definition overlap_layout.cpp:460
int maxColumns
Definition overlap_layout.h:51
Qt::Orientation flowDirection
Definition overlap_layout.h:54
int count() const override
Retrieves the total count of items within the layout.
Definition overlap_layout.cpp:102
QList< QLayoutItem * > itemList
Definition overlap_layout.h:49
void setDirection(Qt::Orientation _direction)
Sets the layout's orientation direction.
Definition overlap_layout.cpp:372
QLayoutItem * itemAt(int index) const override
Provides access to a layout item at a specified index.
Definition overlap_layout.cpp:116
void setMaxRows(int _maxRows)
Sets the maximum number of rows for vertical orientation.
Definition overlap_layout.cpp:394
QLayoutItem * takeAt(int index) override
Removes and returns a layout item at the specified index.
Definition overlap_layout.cpp:130
int maxRows
Definition overlap_layout.h:52
int overlapPercentage
Definition overlap_layout.h:50
void setMaxColumns(int _maxColumns)
Sets the maximum number of columns for horizontal orientation.
Definition overlap_layout.cpp:382
Qt::Orientation overlapDirection
Definition overlap_layout.h:53
QSize sizeHint() const override
Returns the size hint for the layout, based on preferred size calculations.
Definition overlap_layout.cpp:349
int calculateMaxColumns() const
Calculates the maximum number of columns for a vertical overlap layout based on the current width.
Definition overlap_layout.cpp:409
int calculateRowsForColumns(int columns) const
Calculates the maximum number of rows needed for a given number of columns in a vertical overlap layo...
Definition overlap_layout.cpp:441
int calculateColumnsForRows(int rows) const
Calculates the maximum number of columns needed for a given number of rows in a horizontal overlap la...
Definition overlap_layout.cpp:495
OverlapLayout(QWidget *parent=nullptr, int overlapPercentage=10, int maxColumns=2, int maxRows=2, Qt::Orientation overlapDirection=Qt::Vertical, Qt::Orientation flowDirection=Qt::Horizontal)
Constructs an OverlapLayout with the specified parameters.
Definition overlap_layout.cpp:40
QSize calculatePreferredSize() const
Calculates the preferred size for the layout, considering overlap and orientation.
Definition overlap_layout.cpp:256
void addItem(QLayoutItem *item) override
Adds a new item to the layout.
Definition overlap_layout.cpp:87
void setGeometry(const QRect &rect) override
Sets the geometry for the layout items, arranging them with the specified overlap.
Definition overlap_layout.cpp:139
Definition remote_connection_controller.h:20
Q_LOGGING_CATEGORY(CrashReportLog, "crash_report")