Krita Source Code Documentation
Loading...
Searching...
No Matches
rexpanderbox.h
Go to the documentation of this file.
1
30#ifndef REXPANDERBOX_H
31#define REXPANDERBOX_H
32
33// Qt includes
34
35#include <QObject>
36#include <QPixmap>
37#include <QLabel>
38#include <QWidget>
39#include <QScrollArea>
40
41// KDE includes
42
43#include <kconfiggroup.h>
44
45// Local includes
46
47
48#include "rwidgetutils.h"
49
50namespace KDcrawIface
51{
52
53class RClickLabel : public QLabel
54{
55 Q_OBJECT
56
57public:
58
59 RClickLabel(QWidget* const parent = 0);
60 explicit RClickLabel(const QString& text, QWidget* const parent = 0);
61 ~RClickLabel() override;
62
63Q_SIGNALS:
64
68 void activated();
69
70protected:
71
72 void mousePressEvent(QMouseEvent* event) override;
73 void mouseReleaseEvent(QMouseEvent* event) override;
74 void keyPressEvent(QKeyEvent* event) override;
75};
76
77// -------------------------------------------------------------------------
78
80{
81 Q_OBJECT
82
83public:
84
85 RSqueezedClickLabel(QWidget* const parent = 0);
86 explicit RSqueezedClickLabel(const QString& text, QWidget* const parent = 0);
87 ~RSqueezedClickLabel() override;
88
89Q_SIGNALS:
90
92 void activated();
93
94protected:
95
96 void mousePressEvent(QMouseEvent* event) override;
97 void mouseReleaseEvent(QMouseEvent* event) override;
98 void keyPressEvent(QKeyEvent* event) override;
99};
100
101// -------------------------------------------------------------------------
102
103class RArrowClickLabel : public QWidget
104{
105 Q_OBJECT
106
107public:
108
109 RArrowClickLabel(QWidget* const parent = 0);
110 ~RArrowClickLabel() override;
111
112 void setArrowType(Qt::ArrowType arrowType);
113 Qt::ArrowType arrowType() const;
114
115 QSize sizeHint () const override;
116
117Q_SIGNALS:
118
120
121protected:
122
123 void mousePressEvent(QMouseEvent* event) override;
124 void mouseReleaseEvent(QMouseEvent* event) override;
125 void paintEvent(QPaintEvent* event) override;
126
127protected:
128
129 Qt::ArrowType m_arrowType;
132};
133
134// -------------------------------------------------------------------------
135
136class RLabelExpander : public QWidget
137{
138 Q_OBJECT
139
140public:
141
142 RLabelExpander(QWidget* const parent = 0);
143 ~RLabelExpander() override;
144
145 void setCheckBoxVisible(bool b);
146 bool checkBoxIsVisible() const;
147
148 void setChecked(bool b);
149 bool isChecked() const;
150
151 void setLineVisible(bool b);
152 bool lineIsVisible() const;
153
154 void setText(const QString& txt);
155 QString text() const;
156
157 void setIcon(const QIcon &icon);
158 QIcon icon() const;
159
160 void setWidget(QWidget* const widget);
161 QWidget* widget() const;
162
163 void setExpanded(bool b);
164 bool isExpanded() const;
165
166 void setExpandByDefault(bool b);
167 bool isExpandByDefault() const;
168
169Q_SIGNALS:
170
171 void signalExpanded(bool);
172 void signalToggled(bool);
173
174private Q_SLOTS:
175
176 void slotToggleContainer();
177
178private:
179
180 bool eventFilter(QObject* obj, QEvent* ev) override;
181
182private:
183
184 class Private;
185 Private* const d;
186};
187
188// -------------------------------------------------------------------------
189
190class RExpanderBox : public QScrollArea
191{
192 Q_OBJECT
193
194public:
195
196 RExpanderBox(QWidget* const parent = 0);
197 ~RExpanderBox() override;
198
206 void addItem(QWidget* const w, const QIcon &icon, const QString& txt,
207 const QString& objName, bool expandBydefault);
208 void addItem(QWidget* const w, const QString& txt,
209 const QString& objName, bool expandBydefault);
210
218 void insertItem(int index, QWidget* const w, const QIcon &icon, const QString& txt,
219 const QString& objName, bool expandBydefault);
220 void insertItem(int index, QWidget* const w, const QString& txt,
221 const QString& objName, bool expandBydefault);
222
223 void removeItem(int index);
224
225 void setCheckBoxVisible(int index, bool b);
226 bool checkBoxIsVisible(int index) const;
227
228 void setChecked(int index, bool b);
229 bool isChecked(int index) const;
230
231 void setItemText(int index, const QString& txt);
232 QString itemText (int index) const;
233
234 void setItemIcon(int index, const QIcon &icon);
235 QIcon itemIcon(int index) const;
236
237 void setItemToolTip(int index, const QString& tip);
238 QString itemToolTip(int index) const;
239
240 void setItemEnabled(int index, bool enabled);
241 bool isItemEnabled(int index) const;
242
243 void addStretch();
244 void insertStretch(int index);
245
246 void setItemExpanded(int index, bool b);
247 bool isItemExpanded(int index) const;
248
249 int count() const;
250
251 RLabelExpander* widget(int index) const;
252 int indexOf(RLabelExpander* const widget) const;
253
254 virtual void readSettings(KConfigGroup& group);
255 virtual void writeSettings(KConfigGroup& group);
256
257Q_SIGNALS:
258
259 void signalItemExpanded(int index, bool b);
260 void signalItemToggled(int index, bool b);
261
262private Q_SLOTS:
263
264 void slotItemExpanded(bool b);
265 void slotItemToggled(bool b);
266
267private:
268
269 class Private;
270 Private* const d;
271};
272
273// -------------------------------------------------------------------------
274
276{
277 Q_OBJECT
278
279public:
280
281 RExpanderBoxExclusive(QWidget* const parent = 0);
282 ~RExpanderBoxExclusive() override;
283
285 void setIsToolBox(bool b);
286 bool isToolBox() const;
287
288private Q_SLOTS:
289
290 void slotItemExpanded(bool b);
291
292private:
293
295};
296
297} // namespace KDcrawIface
298
299#endif // REXPANDERBOX_H
void paintEvent(QPaintEvent *event) override
Qt::ArrowType arrowType() const
void mouseReleaseEvent(QMouseEvent *event) override
QSize sizeHint() const override
void setArrowType(Qt::ArrowType arrowType)
void mousePressEvent(QMouseEvent *event) override
RArrowClickLabel(QWidget *const parent=0)
void mousePressEvent(QMouseEvent *event) override
void activated()
Emitted when activated, by mouse or key press.
void keyPressEvent(QKeyEvent *event) override
void mouseReleaseEvent(QMouseEvent *event) override
RClickLabel(QWidget *const parent=0)
void leftClicked()
Emitted when activated by left mouse click.
RExpanderBoxExclusive(QWidget *const parent=0)
void setChecked(int index, bool b)
virtual void writeSettings(KConfigGroup &group)
virtual void readSettings(KConfigGroup &group)
bool isChecked(int index) const
void setItemText(int index, const QString &txt)
bool isItemEnabled(int index) const
int indexOf(RLabelExpander *const widget) const
void setItemToolTip(int index, const QString &tip)
void addItem(QWidget *const w, const QIcon &icon, const QString &txt, const QString &objName, bool expandBydefault)
bool isItemExpanded(int index) const
void signalItemExpanded(int index, bool b)
RLabelExpander * widget(int index) const
void insertItem(int index, QWidget *const w, const QIcon &icon, const QString &txt, const QString &objName, bool expandBydefault)
QIcon itemIcon(int index) const
QString itemText(int index) const
void setItemExpanded(int index, bool b)
QString itemToolTip(int index) const
void setItemIcon(int index, const QIcon &icon)
void setCheckBoxVisible(int index, bool b)
void signalItemToggled(int index, bool b)
void setItemEnabled(int index, bool enabled)
void insertStretch(int index)
bool checkBoxIsVisible(int index) const
RExpanderBox(QWidget *const parent=0)
RLabelExpander(QWidget *const parent=0)
bool eventFilter(QObject *obj, QEvent *ev) override
void setWidget(QWidget *const widget)
void setText(const QString &txt)
void setIcon(const QIcon &icon)
void mousePressEvent(QMouseEvent *event) override
RSqueezedClickLabel(QWidget *const parent=0)
void keyPressEvent(QKeyEvent *event) override
void mouseReleaseEvent(QMouseEvent *event) override
Simple helpher widgets collection.