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)
 
- Signals inherited from KisPopupButton
void sigPopupWidgetShown ()
 

Public Member Functions

KoAbstractGradientSP gradient () const
 
 KisCmbGradient (QWidget *parent=0)
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
void setGradient (KoAbstractGradientSP gradient)
 
QSize sizeHint () const override
 
 ~KisCmbGradient ()
 
- 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 ()
 

Private Member Functions

void updateGradientPreview ()
 

Private Attributes

KoCheckerBoardPainter m_checkersPainter
 
KisGenericGradientEditorm_gradientEditor
 

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 19 of file kis_cmb_gradient.cpp.

20 : KisPopupButton(parent)
23{
24 m_gradientEditor->setContentsMargins(10, 10, 10, 10);
29}
KoCheckerBoardPainter m_checkersPainter
KisGenericGradientEditor * m_gradientEditor
This is a generic gradient editor widget.
void sigGradientChanged()
signal emitted when the gradient changes
void loadUISettings(const QString &prefix=QString())
Load the ui settings from the configuration.
void setPopupWidget(QWidget *widget)
KisPopupButton(QWidget *parent)

References gradientSelected(), KisGenericGradientEditor::loadUISettings(), m_gradientEditor, KisPopupButton::setPopupWidget(), and KisGenericGradientEditor::sigGradientChanged().

◆ ~KisCmbGradient()

KisCmbGradient::~KisCmbGradient ( )

Definition at line 31 of file kis_cmb_gradient.cpp.

32{
34}
void saveUISettings(const QString &prefix=QString())
Save the ui settings to the configuration.

References m_gradientEditor, and KisGenericGradientEditor::saveUISettings().

Member Function Documentation

◆ gradient()

KoAbstractGradientSP KisCmbGradient::gradient ( ) const

Definition at line 43 of file kis_cmb_gradient.cpp.

44{
45 return m_gradientEditor->gradient();
46}

References KisGenericGradientEditor::gradient, and m_gradientEditor.

◆ gradientChanged

void KisCmbGradient::gradientChanged ( KoAbstractGradientSP )
signal

◆ gradientSelected

void KisCmbGradient::gradientSelected ( )
privateslot

Definition at line 53 of file kis_cmb_gradient.cpp.

54{
56
57 Q_EMIT gradientChanged(this->gradient());
58}
void gradientChanged(KoAbstractGradientSP)
KoAbstractGradientSP gradient() const

References gradient(), gradientChanged(), and updateGradientPreview().

◆ resizeEvent()

void KisCmbGradient::resizeEvent ( QResizeEvent * event)
overrideprotected

Definition at line 92 of file kis_cmb_gradient.cpp.

93{
94 setIconSize(QSize(event->size().width() - 30, event->size().height() - 4));
96 KisPopupButton::resizeEvent(event);
97}

References updateGradientPreview().

◆ setCanvasResourcesInterface()

void KisCmbGradient::setCanvasResourcesInterface ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)

Definition at line 48 of file kis_cmb_gradient.cpp.

49{
50 m_gradientEditor->setCanvasResourcesInterface(canvasResourcesInterface);
51}
void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP newCanvasResourcesInterface)
Set the canvas resources interface.

References m_gradientEditor, and KisGenericGradientEditor::setCanvasResourcesInterface().

◆ setGradient()

◆ sizeHint()

QSize KisCmbGradient::sizeHint ( ) const
override

Definition at line 79 of file kis_cmb_gradient.cpp.

80{
81 ensurePolished();
82 QFontMetrics fm = fontMetrics();
83 int maxW = 7 * fm.horizontalAdvance(QChar('x')) + 18;
84 int maxH = qMax(fm.lineSpacing(), 14) + 2;
85
86 QStyleOptionComboBox options;
87 options.initFrom(this);
88
89 return style()->sizeFromContents(QStyle::CT_ComboBox, &options, QSize(maxW, maxH), this);
90}

◆ updateGradientPreview()

void KisCmbGradient::updateGradientPreview ( )
private

Definition at line 60 of file kis_cmb_gradient.cpp.

61{
62 const QSize previewSize = iconSize();
63 QImage thumbnail(previewSize, QImage::Format_ARGB32);
64
65 {
66 QPainter gc(&thumbnail);
67 m_checkersPainter.paint(gc, QRect(QPoint(), previewSize));
68
70 if (gradient) {
71 QImage preview = gradient->generatePreview(previewSize.width(), previewSize.height(), m_gradientEditor->canvasResourcesInterface());
72 gc.drawImage(QPoint(), preview);
73 }
74 }
75
76 setIcon(QIcon(QPixmap::fromImage(thumbnail)));
77}
int iconSize(qreal width, qreal height)
KoCanvasResourcesInterfaceSP canvasResourcesInterface
void paint(QPainter &painter, const QRectF &rect, const QPointF &patternOrigin) const

References KisGenericGradientEditor::canvasResourcesInterface, gradient(), iconSize(), m_checkersPainter, m_gradientEditor, and KoCheckerBoardPainter::paint().

Member Data Documentation

◆ m_checkersPainter

KoCheckerBoardPainter KisCmbGradient::m_checkersPainter
private

Definition at line 49 of file kis_cmb_gradient.h.

◆ m_gradientEditor

KisGenericGradientEditor* KisCmbGradient::m_gradientEditor
private

Definition at line 50 of file kis_cmb_gradient.h.


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