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

#include <kis_layer_filter_widget.h>

+ Inheritance diagram for KisLayerFilterWidgetToolButton:

Public Member Functions

 KisLayerFilterWidgetToolButton (const KisLayerFilterWidgetToolButton &rhs)
 
 KisLayerFilterWidgetToolButton (QWidget *parent=nullptr)
 
void setSelectedColors (QList< int > colors)
 
void setTextFilter (bool isTextFiltering)
 
 ~KisLayerFilterWidgetToolButton ()
 

Private Member Functions

void paintEvent (QPaintEvent *paintEvent) override
 

Private Attributes

QList< int > m_selectedColors
 
bool m_textFilter
 

Detailed Description

Definition at line 54 of file kis_layer_filter_widget.h.

Constructor & Destructor Documentation

◆ KisLayerFilterWidgetToolButton() [1/2]

KisLayerFilterWidgetToolButton::KisLayerFilterWidgetToolButton ( QWidget * parent = nullptr)
explicit

Definition at line 202 of file kis_layer_filter_widget.cpp.

203 : QToolButton(parent)
204{
205 m_textFilter = false;
207}

References m_selectedColors, and m_textFilter.

◆ KisLayerFilterWidgetToolButton() [2/2]

KisLayerFilterWidgetToolButton::KisLayerFilterWidgetToolButton ( const KisLayerFilterWidgetToolButton & rhs)

Definition at line 209 of file kis_layer_filter_widget.cpp.

210 : QToolButton(rhs.parentWidget())
213{
214
215}

◆ ~KisLayerFilterWidgetToolButton()

KisLayerFilterWidgetToolButton::~KisLayerFilterWidgetToolButton ( )
inline

Definition at line 60 of file kis_layer_filter_widget.h.

60{}

Member Function Documentation

◆ paintEvent()

void KisLayerFilterWidgetToolButton::paintEvent ( QPaintEvent * paintEvent)
overrideprivate

Definition at line 227 of file kis_layer_filter_widget.cpp.

228{
229 KisNodeViewColorScheme colorScheme;
230 const bool validColorFilter = !(m_selectedColors.count() == 0 || m_selectedColors.count() == colorScheme.allColorLabels().count());
231
232 if (m_textFilter == false && !validColorFilter)
233 {
234 QToolButton::paintEvent(paintEvent);
235 }
236 else
237 {
238 QStylePainter paint(this);
239 QStyleOptionToolButton opt;
240 initStyleOption(&opt);
241 opt.icon = m_textFilter ? KisIconUtils::loadIcon("format-text-bold") : icon();
242 paint.drawComplexControl(QStyle::CC_ToolButton, opt);
243 const QSize halfIconSize = this->iconSize() / 2;
244 const QSize halfButtonSize = this->size() / 2;
245 const QRect editRect = kisGrowRect(QRect(QPoint(halfButtonSize.width() - halfIconSize.width(), halfButtonSize.height() - halfIconSize.height()),this->iconSize()), -1);
246 const int size = qMin(editRect.width(), editRect.height());
247
248 if( validColorFilter )
249 {
250 KisColorFilterCombo::paintColorPie(paint, opt.palette, m_selectedColors, editRect, size );
251 if (m_textFilter) {
252 if (!opt.icon.isNull()) {
253 QRadialGradient radGradient = QRadialGradient(editRect.center(), size);
254 QColor shadowTransparent = palette().shadow().color();
255 shadowTransparent.setAlpha(96);
256 radGradient.setColorAt(0.0f, shadowTransparent);
257 shadowTransparent.setAlpha(0);
258 radGradient.setColorAt(1.0f, shadowTransparent);
259 paint.setBrush(radGradient);
260 paint.setPen(Qt::NoPen);
261 paint.drawEllipse(editRect.center(), size, size);
262 opt.icon.paint(&paint, editRect);
263 }
264 }
265 }
266 }
267}
int iconSize(qreal width, qreal height)
static void paintColorPie(QStylePainter &painter, const QPalette &palette, const QList< int > &selectedColors, const QRect &rect, const int &baseSize)
void paintEvent(QPaintEvent *paintEvent) override
QVector< QColor > allColorLabels() const
T kisGrowRect(const T &rect, U offset)
Definition kis_global.h:186
int size(const Forest< T > &forest)
Definition KisForest.h:1232
QIcon loadIcon(const QString &name)
rgba palette[MAX_PALETTE]
Definition palette.c:35

References KisNodeViewColorScheme::allColorLabels(), iconSize(), kisGrowRect(), KisIconUtils::loadIcon(), m_selectedColors, m_textFilter, KisColorFilterCombo::paintColorPie(), paintEvent(), and palette.

◆ setSelectedColors()

void KisLayerFilterWidgetToolButton::setSelectedColors ( QList< int > colors)

Definition at line 217 of file kis_layer_filter_widget.cpp.

218{
219 m_selectedColors = colors;
220}

References m_selectedColors.

◆ setTextFilter()

void KisLayerFilterWidgetToolButton::setTextFilter ( bool isTextFiltering)

Definition at line 222 of file kis_layer_filter_widget.cpp.

223{
224 m_textFilter = isTextFiltering;
225}

References m_textFilter.

Member Data Documentation

◆ m_selectedColors

QList<int> KisLayerFilterWidgetToolButton::m_selectedColors
private

Definition at line 71 of file kis_layer_filter_widget.h.

◆ m_textFilter

bool KisLayerFilterWidgetToolButton::m_textFilter
private

Definition at line 70 of file kis_layer_filter_widget.h.


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