22
22
#include " IconCreator.h"
23
23
#include " PopupMenu.h"
24
24
25
- class KColorPicker ::Impl : public QSharedData
25
+ class KColorPickerPrivate
26
26
{
27
- public:
28
- explicit Impl ();
29
- ~Impl ();
30
- QIcon createIcon (const QColor & color, const QSize &size);
31
- PopupMenu* popupMenu ();
32
- void addColor (const QColor &color);
33
- void selectColor (const QColor &color);
34
- QColor selectedColor () const ;
35
-
36
- private:
37
- PopupMenu *mPopupMenu ;
27
+ Q_DISABLE_COPY (KColorPickerPrivate)
28
+
29
+ Q_DECLARE_PUBLIC (KColorPicker)
30
+
31
+ explicit KColorPickerPrivate (KColorPicker *kColorPicker );
32
+
33
+ KColorPicker *const q_ptr;
34
+ QSize mIconSize ;
35
+ PopupMenu mPopupMenu ;
38
36
QColor mSelectedColor ;
39
37
};
40
38
41
- KColorPicker::KColorPicker () : mImpl(new Impl())
42
- {
43
- setPopupMode (QToolButton::InstantPopup);
44
- auto popupMenu = mImpl ->popupMenu ();
45
- setMenu (popupMenu);
46
- connect (popupMenu, &PopupMenu::colorChanged, this , &KColorPicker::colorSelected);
47
- mIconSize = QSize (25 , 25 );
48
- addDefaultColors ();
49
- setColor (QColor (Qt::red));
50
- }
39
+ KColorPicker::KColorPicker () : d_ptr(new KColorPickerPrivate(this ))
40
+ {}
51
41
52
42
KColorPicker::~KColorPicker ()
53
- {
54
- }
43
+ {}
55
44
56
45
void KColorPicker::setColor (const QColor &color)
57
46
{
47
+ Q_D (KColorPicker);
58
48
setColorIcon (color);
59
- mImpl -> selectColor (color);
49
+ d-> mPopupMenu . selectColor (color);
60
50
}
61
51
62
52
void KColorPicker::colorSelected (const QColor &color)
@@ -67,78 +57,55 @@ void KColorPicker::colorSelected(const QColor &color)
67
57
68
58
void KColorPicker::setFixedSize (const QSize &size)
69
59
{
60
+ Q_D (const KColorPicker);
70
61
QToolButton::setFixedSize (size);
71
62
setIconSize (size);
72
- setColorIcon (mImpl -> selectedColor () );
63
+ setColorIcon (d-> mSelectedColor );
73
64
}
74
65
75
66
void KColorPicker::setFixedSize (int width, int height)
76
67
{
68
+ Q_D (const KColorPicker);
77
69
QToolButton::setFixedSize (width, height);
78
70
setIconSize (QSize (width, height));
79
- setColorIcon (mImpl -> selectedColor () );
71
+ setColorIcon (d-> mSelectedColor );
80
72
}
81
73
82
74
void KColorPicker::setIconSize (const QSize &size)
83
75
{
76
+ Q_D (KColorPicker);
84
77
auto scaleFactor = 0.6 ;
85
- mIconSize = size * scaleFactor;
86
- QToolButton::setIconSize (mIconSize );
87
- }
88
-
89
- void KColorPicker::addDefaultColors ()
90
- {
91
- mImpl ->addColor (QColor (Qt::red));
92
- mImpl ->addColor (QColor (Qt::green));
93
- mImpl ->addColor (QColor (Qt::blue));
94
- mImpl ->addColor (QColor (Qt::yellow));
95
- mImpl ->addColor (QColor (Qt::magenta));
96
- mImpl ->addColor (QColor (Qt::cyan));
97
- mImpl ->addColor (QColor (Qt::white));
98
- mImpl ->addColor (QColor (Qt::black));
78
+ d->mIconSize = size * scaleFactor;
79
+ QToolButton::setIconSize (d->mIconSize );
99
80
}
100
81
101
82
void KColorPicker::setColorIcon (const QColor &color)
102
83
{
103
- auto icon = mImpl ->createIcon (color, mIconSize );
84
+ Q_D (KColorPicker);
85
+ auto icon = IconCreator::createIcon (color, d->mIconSize );
104
86
setIcon (icon);
105
87
}
106
88
107
89
//
108
- // Impl
90
+ // KColorPickerPrivate
109
91
//
110
- KColorPicker::Impl::Impl ()
111
- {
112
- mPopupMenu = new PopupMenu ();;
113
- }
114
92
115
- KColorPicker::Impl::~Impl ( )
93
+ KColorPickerPrivate::KColorPickerPrivate (KColorPicker * kColorPicker ) : q_ptr( kColorPicker )
116
94
{
117
- delete mPopupMenu ;
118
- }
119
-
120
- QIcon KColorPicker::Impl::createIcon (const QColor &color, const QSize &size)
121
- {
122
- return IconCreator::createIcon (color, size);
123
- }
124
-
125
- PopupMenu *KColorPicker::Impl::popupMenu ()
126
- {
127
- return mPopupMenu ;
128
- }
95
+ mIconSize = QSize (25 , 25 );
96
+ kColorPicker ->setPopupMode (QToolButton::InstantPopup);
97
+ kColorPicker ->setMenu (&mPopupMenu );
98
+ kColorPicker ->connect (&mPopupMenu , &PopupMenu::colorChanged, kColorPicker , &KColorPicker::colorSelected);
129
99
130
- void KColorPicker::Impl::addColor (const QColor &color)
131
- {
132
- mPopupMenu ->addColor (color);
133
- mSelectedColor = color;
134
- }
135
100
136
- void KColorPicker::Impl::selectColor (const QColor &color)
137
- {
138
- mPopupMenu ->selectColor (color);
139
- }
101
+ // Default Colors
102
+ mPopupMenu .addColor (QColor (Qt::red));
103
+ mPopupMenu .addColor (QColor (Qt::green));
104
+ mPopupMenu .addColor (QColor (Qt::blue));
105
+ mPopupMenu .addColor (QColor (Qt::yellow));
106
+ mPopupMenu .addColor (QColor (Qt::magenta));
107
+ mPopupMenu .addColor (QColor (Qt::cyan));
108
+ mPopupMenu .addColor (QColor (Qt::white));
109
+ mPopupMenu .addColor (QColor (Qt::black));
140
110
141
- QColor KColorPicker::Impl::selectedColor () const
142
- {
143
- return mSelectedColor ;
144
111
}
0 commit comments