CuteLogger
Fast and simple logging solution for Qt based applications
flowlayout.h
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef FLOWLAYOUT_H
5#define FLOWLAYOUT_H
6
7#include <QLayout>
8#include <QRect>
9#include <QStyle>
10
13class FlowLayout : public QLayout
14{
15public:
16 explicit FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
17 explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
18 ~FlowLayout() override;
19
20 void addItem(QLayoutItem *item) override;
21 int horizontalSpacing() const;
22 int verticalSpacing() const;
23 Qt::Orientations expandingDirections() const override;
24 bool hasHeightForWidth() const override;
25 int heightForWidth(int width) const override;
26 int count() const override;
27 QLayoutItem *itemAt(int index) const override;
28 QSize minimumSize() const override;
29 void setGeometry(const QRect &rect) override;
30 QSize sizeHint() const override;
31 QLayoutItem *takeAt(int index) override;
32
33private:
34 int doLayout(const QRect &rect, bool testOnly) const;
35 int smartSpacing(QStyle::PixelMetric pm) const;
36
37 QList<QLayoutItem *> m_items;
38 int m_hSpace;
39 int m_vSpace;
40};
41
42#endif // FLOWLAYOUT_H