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

The KisCmbGradient class allows the user to select a gradient. More...

#include <kis_cmb_gradient.h>

+ Inheritance diagram for KisCmbGradient:

Signals

void gradientChanged (KoAbstractGradientSP)
 

Public Member Functions

KoAbstractGradientSP gradient (bool includeHidden=false) const
 
 KisCmbGradient (QWidget *parent=0)
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
void setGradient (KoAbstractGradientSP gradient)
 
QSize sizeHint () const override
 
- Public Member Functions inherited from KisPopupButton
void adjustPosition ()
 adjustPosition adjusts the position of the popup widget based on the position of this button and the size of the widget
 
bool isPopupWidgetVisible ()
 
 KisPopupButton (QWidget *parent)
 
void setArrowVisible (bool v)
 
void setPopupWidget (QWidget *widget)
 
void setPopupWidgetWidth (int w)
 
 ~KisPopupButton () override
 

Protected Member Functions

void resizeEvent (QResizeEvent *event) override
 
- Protected Member Functions inherited from KisPopupButton
void paintEvent (QPaintEvent *event) override
 
void paintPopupArrow ()
 

Private Slots

void gradientSelected (KoResourceSP resource)
 

Private Attributes

KoCheckerBoardPainter m_checkersPainter
 
KisGradientChooserm_gradientChooser
 

Additional Inherited Members

- Public Slots inherited from KisPopupButton
void hidePopupWidget ()
 
void setPopupWidgetDetached (bool detach)
 
void setPopupWidgetVisible (bool visible)
 
void showPopupWidget ()
 

Detailed Description

The KisCmbGradient class allows the user to select a gradient.

Definition at line 20 of file kis_cmb_gradient.h.

Constructor & Destructor Documentation

◆ KisCmbGradient()

KisCmbGradient::KisCmbGradient ( QWidget * parent = 0)
explicit

Definition at line 18 of file kis_cmb_gradient.cpp.

19 : KisPopupButton(parent)
22{
23 m_gradientChooser->setContentsMargins(10, 10, 10, 10);
24 connect(m_gradientChooser, SIGNAL(resourceSelected(KoResourceSP )), SLOT(gradientSelected(KoResourceSP )));
26 [this](KoAbstractGradientSP resource) { gradientSelected(resource); });
28}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void gradientSelected(KoResourceSP resource)
KisGradientChooser * m_gradientChooser
KoCheckerBoardPainter m_checkersPainter
void gradientEdited(KoAbstractGradientSP resource)
Emitted when a resource was changed or added.
void setPopupWidget(QWidget *widget)
KisPopupButton(QWidget *parent)

References connect(), KisGradientChooser::gradientEdited(), gradientSelected(), m_gradientChooser, and KisPopupButton::setPopupWidget().

Member Function Documentation

◆ gradient()

KoAbstractGradientSP KisCmbGradient::gradient ( bool includeHidden = false) const

Definition at line 35 of file kis_cmb_gradient.cpp.

36{
37 return m_gradientChooser->currentResource(includeHidden).dynamicCast<KoAbstractGradient>();
38}
KoResourceSP currentResource(bool includeHidden=false)

References KisGradientChooser::currentResource(), and m_gradientChooser.

◆ gradientChanged

void KisCmbGradient::gradientChanged ( KoAbstractGradientSP )
signal

◆ gradientSelected

void KisCmbGradient::gradientSelected ( KoResourceSP resource)
privateslot

Definition at line 45 of file kis_cmb_gradient.cpp.

46{
47 KoAbstractGradientSP gradient = resource.dynamicCast<KoAbstractGradient>();
48 if (!gradient) return;
49
50 QImage preview = gradient->generatePreview(iconSize().width(), iconSize().height(), m_gradientChooser->canvasResourcesInterface());
51
52 QImage thumbnail(preview.size(), QImage::Format_ARGB32);
53
54 {
55 QPainter gc(&thumbnail);
56 m_checkersPainter.paint(gc, preview.rect());
57 gc.drawImage(QPoint(), preview);
58 }
59
60 setIcon(QIcon(QPixmap::fromImage(thumbnail)));
61
63}
int iconSize(qreal width, qreal height)
void gradientChanged(KoAbstractGradientSP)
KoAbstractGradientSP gradient(bool includeHidden=false) const
KoCanvasResourcesInterfaceSP canvasResourcesInterface
void paint(QPainter &painter, const QRectF &rect, const QPointF &patternOrigin) const

References KisGradientChooser::canvasResourcesInterface, gradient(), gradientChanged(), iconSize(), m_checkersPainter, m_gradientChooser, and KoCheckerBoardPainter::paint().

◆ resizeEvent()

void KisCmbGradient::resizeEvent ( QResizeEvent * event)
overrideprotected

Definition at line 78 of file kis_cmb_gradient.cpp.

79{
80 setIconSize(QSize(event->size().width() - 30, event->size().height() - 4));
81 KisPopupButton::resizeEvent(event);
82}

◆ setCanvasResourcesInterface()

void KisCmbGradient::setCanvasResourcesInterface ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)

Definition at line 40 of file kis_cmb_gradient.cpp.

41{
42 m_gradientChooser->setCanvasResourcesInterface(canvasResourcesInterface);
43}
void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface)

References m_gradientChooser, and KisGradientChooser::setCanvasResourcesInterface().

◆ setGradient()

void KisCmbGradient::setGradient ( KoAbstractGradientSP gradient)

◆ sizeHint()

QSize KisCmbGradient::sizeHint ( ) const
override

Definition at line 65 of file kis_cmb_gradient.cpp.

66{
67 ensurePolished();
68 QFontMetrics fm = fontMetrics();
69 int maxW = 7 * fm.horizontalAdvance(QChar('x')) + 18;
70 int maxH = qMax(fm.lineSpacing(), 14) + 2;
71
72 QStyleOptionComboBox options;
73 options.initFrom(this);
74
75 return style()->sizeFromContents(QStyle::CT_ComboBox, &options, QSize(maxW, maxH), this);
76}

Member Data Documentation

◆ m_checkersPainter

KoCheckerBoardPainter KisCmbGradient::m_checkersPainter
private

Definition at line 46 of file kis_cmb_gradient.h.

◆ m_gradientChooser

KisGradientChooser* KisCmbGradient::m_gradientChooser
private

Definition at line 45 of file kis_cmb_gradient.h.


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