Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_widget_chooser.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2011 Silvio Heinrich <plassy@web.de>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef H_KIS_WIDGET_CHOOSER_H_
8
#define H_KIS_WIDGET_CHOOSER_H_
9
10
#include <kritaui_export.h>
11
#include <QList>
12
#include <QIcon>
13
#include <QFrame>
14
15
class
QToolButton;
16
class
QLabel;
17
class
QButtonGroup;
18
19
class
KRITAUI_EXPORT
KisWidgetChooser
:
public
QFrame
20
{
21
Q_OBJECT
22
23
struct
Data
24
{
25
Data
(
const
QString& ID):
26
id(ID), widget(0), label(0), chosen(false) { }
27
Data
(
const
Data
& d):
28
id(d.id), widget(d.widget), label(d.label), chosen(d.chosen) { }
29
Data
(
const
QString& ID, QWidget* w, QLabel* l):
30
id(ID), widget(w), label(l), chosen(false) { }
31
32
friend
bool
operator ==
(
const
Data
& a,
const
Data
& b) {
33
return
a.
id
== b.id;
34
}
35
36
QString
id
;
37
QWidget*
widget
;
38
QLabel*
label
;
39
bool
chosen
;
40
};
41
42
typedef
QList<Data>::iterator
Iterator
;
43
typedef
QList<Data>::const_iterator
ConstIterator
;
44
45
public
:
46
KisWidgetChooser
(
int
id
, QWidget* parent=0);
47
~KisWidgetChooser
()
override
;
48
49
QWidget* chooseWidget(
const
QString&
id
);
50
void
addLabelWidget(
const
QString&
id
,
const
QString& label, QWidget* widget);
51
QWidget* getWidget(
const
QString&
id
)
const
;
52
53
template
<
class
TW
id
get>
54
TWidget*
addWidget
(
const
QString&
id
,
const
QString& label =
""
) {
55
if
(
id
.isEmpty()) {
56
return
0;
57
}
58
59
TWidget* widget =
new
TWidget();
60
addLabelWidget(
id
, label, widget);
61
return
widget;
62
}
63
64
template
<
class
TW
id
get>
65
TWidget*
getWidget
(
const
QString&
id
)
const
{
66
return
dynamic_cast<
TWidget*
>
(getWidget(
id
));
67
}
68
public
Q_SLOTS:
69
70
void
showPopupWidget();
71
void
updateThemedIcons();
72
73
private
:
74
void
removeWidget(
const
QString&
id
);
75
QLayout* createPopupLayout();
76
QLayout* createLayout();
77
void
updateArrowIcon();
78
79
protected
Q_SLOTS:
80
void
slotButtonPressed();
81
void
slotWidgetChosen(
int
index);
82
83
// QWidget interface
84
protected
:
85
void
changeEvent(QEvent *e)
override
;
86
87
private
:
88
int
m_chooserid
;
89
QIcon
m_acceptIcon
;
90
QToolButton*
m_arrowButton
;
91
QButtonGroup*
m_buttons
;
92
QFrame*
m_popup
;
93
QString
m_chosenID
;
94
QList<Data>
m_widgets
;
95
};
96
97
#endif
// H_KIS_WIDGET_CHOOSER_H_
98
operator==
bool operator==(const KisRegion &lhs, const KisRegion &rhs)
Definition
KisRegion.cpp:398
KisWidgetChooser
Definition
kis_widget_chooser.h:20
KisWidgetChooser::ConstIterator
QList< Data >::const_iterator ConstIterator
Definition
kis_widget_chooser.h:43
KisWidgetChooser::m_buttons
QButtonGroup * m_buttons
Definition
kis_widget_chooser.h:91
KisWidgetChooser::getWidget
TWidget * getWidget(const QString &id) const
Definition
kis_widget_chooser.h:65
KisWidgetChooser::addWidget
TWidget * addWidget(const QString &id, const QString &label="")
Definition
kis_widget_chooser.h:54
KisWidgetChooser::m_popup
QFrame * m_popup
Definition
kis_widget_chooser.h:92
KisWidgetChooser::Iterator
QList< Data >::iterator Iterator
Definition
kis_widget_chooser.h:42
KisWidgetChooser::m_arrowButton
QToolButton * m_arrowButton
Definition
kis_widget_chooser.h:90
KisWidgetChooser::m_widgets
QList< Data > m_widgets
Definition
kis_widget_chooser.h:94
KisWidgetChooser::m_chooserid
int m_chooserid
Definition
kis_widget_chooser.h:88
KisWidgetChooser::m_acceptIcon
QIcon m_acceptIcon
Definition
kis_widget_chooser.h:89
KisWidgetChooser::m_chosenID
QString m_chosenID
Definition
kis_widget_chooser.h:93
QList
Definition
KisQStringListFwd.h:16
KisWidgetChooser::Data
Definition
kis_widget_chooser.h:24
KisWidgetChooser::Data::Data
Data(const Data &d)
Definition
kis_widget_chooser.h:27
KisWidgetChooser::Data::Data
Data(const QString &ID)
Definition
kis_widget_chooser.h:25
KisWidgetChooser::Data::widget
QWidget * widget
Definition
kis_widget_chooser.h:37
KisWidgetChooser::Data::id
QString id
Definition
kis_widget_chooser.h:36
KisWidgetChooser::Data::label
QLabel * label
Definition
kis_widget_chooser.h:38
KisWidgetChooser::Data::Data
Data(const QString &ID, QWidget *w, QLabel *l)
Definition
kis_widget_chooser.h:29
KisWidgetChooser::Data::chosen
bool chosen
Definition
kis_widget_chooser.h:39
libs
ui
widgets
kis_widget_chooser.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52