Krita Source Code Documentation
Loading...
Searching...
No Matches
KisShadeSelectorLineComboBoxPopup Class Reference

#include <kis_shade_selector_line_combo_box_popup.h>

+ Inheritance diagram for KisShadeSelectorLineComboBoxPopup:

Public Member Functions

 KisShadeSelectorLineComboBoxPopup (QWidget *parent)
 
void setConfiguration (const QString &string)
 
 ~KisShadeSelectorLineComboBoxPopup () override
 

Public Attributes

const int spacing
 

Private Slots

void activateItem (QWidget *widget)
 

Private Member Functions

void mouseMoveEvent (QMouseEvent *e) override
 
void mousePressEvent (QMouseEvent *e) override
 
void paintEvent (QPaintEvent *) override
 
void updateHighlightedArea (const QRect &newRect)
 
void updateSelectedArea (const QRect &newRect)
 

Private Attributes

QRect m_highlightedArea
 
KisShadeSelectorLineBasem_lastHighlightedItem
 
KisShadeSelectorLineBasem_lastSelectedItem
 
KisShadeSelectorLineEditorm_lineEditor
 
QScopedPointer< KisColorSelectorBaseProxym_parentProxy
 
QRect m_selectedArea
 

Detailed Description

Definition at line 18 of file kis_shade_selector_line_combo_box_popup.h.

Constructor & Destructor Documentation

◆ ~KisShadeSelectorLineComboBoxPopup()

KisShadeSelectorLineComboBoxPopup::~KisShadeSelectorLineComboBoxPopup ( )
override

Definition at line 73 of file kis_shade_selector_line_combo_box_popup.cpp.

74{
75}

◆ KisShadeSelectorLineComboBoxPopup()

KisShadeSelectorLineComboBoxPopup::KisShadeSelectorLineComboBoxPopup ( QWidget * parent)

Definition at line 25 of file kis_shade_selector_line_combo_box_popup.cpp.

26 : QWidget(parent, Qt::Popup),
27 spacing(10),
30 m_lineEditor(0),
32{
33 setMouseTracking(true);
34
35 QVBoxLayout* layout = new QVBoxLayout(this);
36 layout->setSpacing(spacing);
37
38 layout->addWidget(new KisShadeSelectorLine(1.0, 0.0, 0.0, m_parentProxy.data(), this));
39 layout->addWidget(new KisShadeSelectorLine(0.1, 0.0, 0.0, m_parentProxy.data(), this));
40 layout->addWidget(new KisShadeSelectorLine(0.2, 0.0, 0.0, m_parentProxy.data(), this));
41 layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.0, m_parentProxy.data(), this));
42 layout->addWidget(new KisShadeSelectorLine(0.0, 1.0, 0.0, m_parentProxy.data(), this));
43 layout->addWidget(new KisShadeSelectorLine(0.0, 0.0, 0.5, m_parentProxy.data(), this));
44 layout->addWidget(new KisShadeSelectorLine(0.0, 0.0, 1.0, m_parentProxy.data(), this));
45 layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.5, m_parentProxy.data(), this));
46 layout->addWidget(new KisShadeSelectorLine(0.0, 1.0, 1.0, m_parentProxy.data(), this));
47 layout->addWidget(new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this));
48 layout->addWidget(new KisShadeSelectorLine(0.0, -1.0, 1.0, m_parentProxy.data(), this));
49 layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.5, m_parentProxy.data(), this, -0.04));
50 layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.5, m_parentProxy.data(), this, +0.04));
51 layout->addWidget(new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this, -0.04));
52
53 KisShadeSelectorLine* preview = new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this, +0.04);
54 m_lineEditor = new KisShadeSelectorLineEditor(this, preview);
55 layout->addWidget(preview);
56 layout->addWidget(m_lineEditor);
57
58 connect(m_lineEditor, SIGNAL(requestActivateLine(QWidget*)), SLOT(activateItem(QWidget*)));
59
60 for(int i=0; i<this->layout()->count(); i++) {
61 KisShadeSelectorLine* item = dynamic_cast<KisShadeSelectorLine*>(this->layout()->itemAt(i)->widget());
62 if(item!=0) {
63 item->setMouseTracking(true);
64 item->setAttribute(Qt::WA_TransparentForMouseEvents);
65 KoColor color;
66 color.fromQColor(QColor(190, 50, 50));
67 item->setColor(color);
68 item->showHelpText();
69 }
70 }
71}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QScopedPointer< KisColorSelectorBaseProxy > m_parentProxy
void setColor(const KoColor &color)
void fromQColor(const QColor &c)
Convenient function for converting from a QColor.
Definition KoColor.cpp:213

References activateItem(), connect(), KoColor::fromQColor(), m_lineEditor, m_parentProxy, KisShadeSelectorLine::setColor(), KisShadeSelectorLine::showHelpText(), and spacing.

Member Function Documentation

◆ activateItem

void KisShadeSelectorLineComboBoxPopup::activateItem ( QWidget * widget)
privateslot

Definition at line 98 of file kis_shade_selector_line_combo_box_popup.cpp.

99{
100 KisShadeSelectorLineBase* item = dynamic_cast<KisShadeSelectorLineBase*>(widget);
102
103 QRect itemRect = kisGrowRect(item->geometry(), spacing / 2 - 1);
104 m_lastSelectedItem = item;
105
106 updateSelectedArea(itemRect);
107}
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
T kisGrowRect(const T &rect, U offset)
Definition kis_global.h:186

References KIS_ASSERT_RECOVER_RETURN, kisGrowRect(), m_lastSelectedItem, spacing, and updateSelectedArea().

◆ mouseMoveEvent()

void KisShadeSelectorLineComboBoxPopup::mouseMoveEvent ( QMouseEvent * e)
overrideprivate

Definition at line 126 of file kis_shade_selector_line_combo_box_popup.cpp.

127{
128 if(rect().contains(e->pos())) {
129 for(int i = 0; i < layout()->count(); i++) {
130 KisShadeSelectorLineBase* item = dynamic_cast<KisShadeSelectorLineBase*>(layout()->itemAt(i)->widget());
132
133 QRect itemRect = kisGrowRect(item->geometry(), spacing / 2 - 1);
134 if(itemRect.contains(e->pos())) {
136
137 updateHighlightedArea(itemRect);
138 }
139 }
140 }
141 else {
142 updateHighlightedArea(QRect());
143 }
144}

References KIS_ASSERT_RECOVER_RETURN, kisGrowRect(), m_lastHighlightedItem, spacing, and updateHighlightedArea().

◆ mousePressEvent()

void KisShadeSelectorLineComboBoxPopup::mousePressEvent ( QMouseEvent * e)
overrideprivate

Definition at line 146 of file kis_shade_selector_line_combo_box_popup.cpp.

147{
148 if(rect().contains(e->pos())) {
150
152
154 m_lineEditor->blockSignals(true);
156 m_lineEditor->blockSignals(false);
157 }
159 }
160 if (m_lastSelectedItem) {
161 KisShadeSelectorLineComboBox *parent = dynamic_cast<KisShadeSelectorLineComboBox*>(this->parent());
162 Q_ASSERT(parent);
163 parent->setConfiguration(m_lastSelectedItem->toString());
164 }
165 e->accept();
166
167 this->parentWidget()->update();
168 hide();
169}
virtual QString toString() const =0
void fromString(const QString &string) override
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327

References KisShadeSelectorLineEditor::fromString(), m_highlightedArea, m_lastHighlightedItem, m_lastSelectedItem, m_lineEditor, mouseMoveEvent(), KisShadeSelectorLineBase::toString(), and updateSelectedArea().

◆ paintEvent()

void KisShadeSelectorLineComboBoxPopup::paintEvent ( QPaintEvent * )
overrideprivate

Definition at line 109 of file kis_shade_selector_line_combo_box_popup.cpp.

110{
111 QPainter painter(this);
112 QPainter p(this);
113 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
114
115 if (cfg.readEntry("useCustomColorForBackground", false)) {
116 p.fillRect(0,0,width(), height(), cfg.readEntry("customSelectorBackgroundColor", QColor(Qt::gray)));
117 } else {
118 p.fillRect(0,0,width(), height(), qApp->palette().window().color());
119 }
120 painter.fillRect(m_selectedArea, palette().highlight());
121
122 painter.setPen(QPen(palette().highlight(), 2));
123 painter.drawRect(m_highlightedArea);
124}
const Params2D p
rgba palette[MAX_PALETTE]
Definition palette.c:35

References m_highlightedArea, m_selectedArea, p, and palette.

◆ setConfiguration()

void KisShadeSelectorLineComboBoxPopup::setConfiguration ( const QString & string)

◆ updateHighlightedArea()

void KisShadeSelectorLineComboBoxPopup::updateHighlightedArea ( const QRect & newRect)
private

Definition at line 90 of file kis_shade_selector_line_combo_box_popup.cpp.

91{
92 QRect oldHighlightArea = m_highlightedArea;
93 m_highlightedArea = newRect;
94 update(oldHighlightArea);
96}
bool update(QSpinBox *spinBox)

References m_highlightedArea.

◆ updateSelectedArea()

void KisShadeSelectorLineComboBoxPopup::updateSelectedArea ( const QRect & newRect)
private

Definition at line 82 of file kis_shade_selector_line_combo_box_popup.cpp.

83{
84 QRect oldSelectedArea = m_selectedArea;
85 m_selectedArea = newRect;
86 update(oldSelectedArea);
88}

References m_selectedArea.

Member Data Documentation

◆ m_highlightedArea

QRect KisShadeSelectorLineComboBoxPopup::m_highlightedArea
private

Definition at line 44 of file kis_shade_selector_line_combo_box_popup.h.

◆ m_lastHighlightedItem

KisShadeSelectorLineBase* KisShadeSelectorLineComboBoxPopup::m_lastHighlightedItem
private

Definition at line 40 of file kis_shade_selector_line_combo_box_popup.h.

◆ m_lastSelectedItem

KisShadeSelectorLineBase* KisShadeSelectorLineComboBoxPopup::m_lastSelectedItem
private

Definition at line 41 of file kis_shade_selector_line_combo_box_popup.h.

◆ m_lineEditor

KisShadeSelectorLineEditor* KisShadeSelectorLineComboBoxPopup::m_lineEditor
private

Definition at line 42 of file kis_shade_selector_line_combo_box_popup.h.

◆ m_parentProxy

QScopedPointer<KisColorSelectorBaseProxy> KisShadeSelectorLineComboBoxPopup::m_parentProxy
private

Definition at line 46 of file kis_shade_selector_line_combo_box_popup.h.

◆ m_selectedArea

QRect KisShadeSelectorLineComboBoxPopup::m_selectedArea
private

Definition at line 45 of file kis_shade_selector_line_combo_box_popup.h.

◆ spacing

const int KisShadeSelectorLineComboBoxPopup::spacing

Definition at line 23 of file kis_shade_selector_line_combo_box_popup.h.


The documentation for this class was generated from the following files: