Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOptionCollectionWidget.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Deif Lou <ginoba@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISOPTIONCOLLECTIONWIDGET_H
8#define KISOPTIONCOLLECTIONWIDGET_H
9
10#include <QWidget>
11#include <QScopedPointer>
12
13#include <kritawidgetutils_export.h>
14
19class KRITAWIDGETUTILS_EXPORT KisOptionCollectionWidget : public QWidget
20{
21 Q_OBJECT
22
23public:
24 KisOptionCollectionWidget(QWidget *parent = nullptr);
26
30 int widgetIndexFromId(const QString &id) const;
34 bool containsWidget(const QString &id) const;
35
39 QWidget* widget(int index) const;
43 template <typename T>
44 T widgetAs(int index) const
45 {
46 return qobject_cast<T>(widget(index));
47 }
48
52 QWidget* widget(const QString &id) const;
56 template <typename T>
57 T widgetAs(const QString &id) const
58 {
59 return qobject_cast<T>(widget(id));
60 }
61
70 QWidget* findWidget(const QString &path) const;
75 template <typename T>
76 T findWidgetAs(const QString &path) const
77 {
78 return qobject_cast<T>(findWidget(path));
79 }
80
85 void insertWidget(int index, const QString &id, QWidget *widget);
90 void appendWidget(const QString &id, QWidget *widget);
91
96 void removeWidget(int index);
101 void removeWidget(const QString &id);
102
107 QWidget* takeWidget(int index);
112 QWidget* takeWidget(const QString &id);
113
119 void setWidgetVisible(int index, bool visible);
125 void setWidgetVisible(const QString &id, bool visible);
126
132 void setWidgetsMargin(int margin);
136 void setSeparatorsVisible(bool visible);
144 void setOrientation(Qt::Orientation orientation, bool recursive = false);
145
149 int size() const;
153 int numberOfVisibleWidgets() const;
154
155private:
156 struct Private;
157 QScopedPointer<Private> m_d;
158};
159
164class KRITAWIDGETUTILS_EXPORT KisOptionCollectionWidgetWithHeader : public QWidget
165{
166 Q_OBJECT
167
168public:
169 KisOptionCollectionWidgetWithHeader(const QString &title, QWidget *parent = nullptr);
171
172 QSize minimumSizeHint() const override;
176 QWidget* primaryWidget() const;
180 template <typename T>
182 {
183 return qobject_cast<T>(primaryWidget());
184 }
188 void setPrimaryWidget(QWidget *widget);
192 void removePrimaryWidget();
197 QWidget* takePrimaryWidget();
202 void setPrimaryWidgetVisible(bool visible);
203
207 int widgetIndexFromId(const QString &id) const;
211 bool containsWidget(const QString &id) const;
212
216 QWidget* widget(int index) const;
220 template <typename T>
221 T widgetAs(int index) const
222 {
223 return qobject_cast<T>(widget(index));
224 }
225
229 QWidget* widget(const QString &id) const;
233 template <typename T>
234 T widgetAs(const QString &id) const
235 {
236 return qobject_cast<T>(widget(id));
237 }
238
247 QWidget* findWidget(const QString &path) const;
252 template <typename T>
253 T findWidgetAs(const QString &path) const
254 {
255 return qobject_cast<T>(findWidget(path));
256 }
257
262 void insertWidget(int index, const QString &id, QWidget *widget);
267 void appendWidget(const QString &id, QWidget *widget);
268
273 void removeWidget(int index);
278 void removeWidget(const QString &id);
279
284 QWidget* takeWidget(int index);
289 QWidget* takeWidget(const QString &id);
290
294 void setWidgetVisible(int index, bool visible);
298 void setWidgetVisible(const QString &id, bool visible);
299
305 void setWidgetsMargin(int margin);
309 void setSeparatorsVisible(bool visible);
317 void setOrientation(Qt::Orientation orientation, bool recursive = false);
318
322 int size() const;
326 int numberOfVisibleWidgets() const;
327
328protected:
329 void resizeEvent(QResizeEvent*) override;
330
331private:
332 struct Private;
333 QScopedPointer<Private> m_d;
335};
336
337#endif
Wrapper class around a KisOptionCollectionWidget that also provide a header with a title label and an...
T primaryWidgetAs() const
Get the primary widget casted to some other class.
T widgetAs(int index) const
Get the widget that is at the given position casted to some other class.
T findWidgetAs(const QString &path) const
Get the widget that is at the given path casted to some other class.
T widgetAs(const QString &id) const
Get the widget with the given id casted to some other class.
Class providing a list of widgets with some addons such as separators, orientation or individual widg...
T widgetAs(int index) const
Get the widget that is at the given position casted to some other class.
T widgetAs(const QString &id) const
Get the widget with the given id casted to some other class.
T findWidgetAs(const QString &path) const
Get the widget that is at the given path casted to some other class.