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

#include <kis_equalizer_button.h>

+ Inheritance diagram for KisEqualizerButton:

Classes

struct  Private
 

Public Member Functions

void enterEvent (QEnterEvent *event) override
 
 KisEqualizerButton (QWidget *parent)
 
void leaveEvent (QEvent *event) override
 
QSize minimumSizeHint () const override
 
void paintEvent (QPaintEvent *event) override
 
void setRightmost (bool value)
 
QSize sizeHint () const override
 
 ~KisEqualizerButton () override
 

Private Attributes

const QScopedPointer< Privatem_d
 

Detailed Description

Definition at line 14 of file kis_equalizer_button.h.

Constructor & Destructor Documentation

◆ KisEqualizerButton()

KisEqualizerButton::KisEqualizerButton ( QWidget * parent)

Definition at line 35 of file kis_equalizer_button.cpp.

36 : QAbstractButton(parent),
37 m_d(new Private(this))
38{
39 setFocusPolicy(Qt::WheelFocus);
40 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
41}
const QScopedPointer< Private > m_d

◆ ~KisEqualizerButton()

KisEqualizerButton::~KisEqualizerButton ( )
override

Definition at line 43 of file kis_equalizer_button.cpp.

44{
45}

Member Function Documentation

◆ enterEvent()

void KisEqualizerButton::enterEvent ( QEnterEvent * event)
override

Definition at line 137 of file kis_equalizer_button.cpp.

139{
140 Q_UNUSED(event);
141
142 m_d->isHovering = true;
143 update();
144}
bool update(QSpinBox *spinBox)

References m_d.

◆ leaveEvent()

void KisEqualizerButton::leaveEvent ( QEvent * event)
override

Definition at line 146 of file kis_equalizer_button.cpp.

147{
148 Q_UNUSED(event);
149
150 m_d->isHovering = false;
151 update();
152}

References m_d.

◆ minimumSizeHint()

QSize KisEqualizerButton::minimumSizeHint ( ) const
override

Definition at line 128 of file kis_equalizer_button.cpp.

129{
130 QSize sh = sizeHint();
131 return QSize(10, sh.height());
132}
QSize sizeHint() const override

References sizeHint().

◆ paintEvent()

void KisEqualizerButton::paintEvent ( QPaintEvent * event)
override

Definition at line 67 of file kis_equalizer_button.cpp.

68{
69 Q_UNUSED(event);
70 const QRect bounds = m_d->boundingRect();
71 const QRect filling = m_d->fillingRect();
72 const QColor backgroundColor = palette().color(QPalette::Base);
73
74 QPainter p(this);
75
76 { // draw border
77
78 QStyleOptionViewItem option; // empty!
79 const int gridHint = style()->styleHint(QStyle::SH_Table_GridLineColor, &option, this);
80 const QColor gridColor = static_cast<QRgb>(gridHint);
81 const QPen gridPen(gridColor);
82
83 p.setPen(gridPen);
84 p.setBrush(backgroundColor);
85 p.drawRect(bounds);
86 }
87
88 {
90 QColor frameColor = KisAnimTimelineColors::instance()-> onionSkinsSliderEnabledColor();
91
92 if (isChecked() || hasFocus() || m_d->isHovering) {
93 p.setPen(hasFocus() || m_d->isHovering ? frameColor : Qt::transparent);
94 p.setBrush(isChecked() ? fillColor : Qt::transparent);
95 p.drawRect(filling);
96 }
97 }
98
99 QString textValue = text();
100
101 { // draw text
102 QPalette::ColorRole textRole = QPalette::Text;
103
104 //Draw text shadow, This will increase readability when the background of same color
105 QRect shadowRect(bounds);
106 shadowRect.translate(1,1);
107 QColor textColor = palette().color(textRole);
108 QColor shadowColor = (textColor.value() <= 128)
109 ? QColor(255,255,255,160) : QColor(0,0,0,160);
110
111 int flags = Qt::AlignCenter | Qt::TextHideMnemonic;
112
113 p.setPen(shadowColor);
114 p.drawText(shadowRect, flags, textValue);
115
116 p.setPen(textColor);
117 p.drawText(bounds, flags, textValue);
118 }
119}
const Params2D p
static KisAnimTimelineColors * instance()
unsigned int QRgb
#define bounds(x, a, b)
rgba palette[MAX_PALETTE]
Definition palette.c:35

References bounds, KisAnimTimelineColors::instance(), m_d, KisAnimTimelineColors::onionSkinsButtonColor(), p, and palette.

◆ setRightmost()

void KisEqualizerButton::setRightmost ( bool value)

Definition at line 47 of file kis_equalizer_button.cpp.

48{
49 m_d->isRightmost = value;
50}
float value(const T *src, size_t ch)

References m_d, and value().

◆ sizeHint()

QSize KisEqualizerButton::sizeHint ( ) const
override

Definition at line 121 of file kis_equalizer_button.cpp.

122{
123 QFontMetrics metrics(this->font());
124 const int minHeight = metrics.height() + 10;
125 return QSize(15, minHeight);
126}

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisEqualizerButton::m_d
private

Definition at line 35 of file kis_equalizer_button.h.


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