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

#include <KisClickableLabel.h>

+ Inheritance diagram for KisClickableLabel:

Signals

void clicked ()
 
void dismissed ()
 

Public Member Functions

bool hasHeightForWidth () const override
 
int heightForWidth (int w) const override
 
bool isDismissable ()
 
 KisClickableLabel (QWidget *parent=nullptr)
 
QSize minimumSizeHint () const override
 
void setDismissable (bool value=true)
 
void setUnscaledPixmap (QPixmap pixmap)
 
QSize sizeHint () const override
 
void updatePixmap ()
 
 ~KisClickableLabel () override
 

Protected Member Functions

void mousePressEvent (QMouseEvent *event) override
 
void resizeEvent (QResizeEvent *event) override
 

Private Attributes

QPushButton * m_closeButton
 
bool m_dismissable = false
 
QPixmap m_pixmap
 

Detailed Description

Definition at line 17 of file KisClickableLabel.h.

Constructor & Destructor Documentation

◆ KisClickableLabel()

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

Definition at line 13 of file KisClickableLabel.cpp.

14 : QLabel(parent)
15{
16 m_closeButton = new QPushButton(this);
17 m_closeButton->setGeometry(0,0,16,16);
18 m_closeButton->setFlat(true);
19 m_closeButton->setIcon(KisIconUtils::loadIcon("dark_close-tab"));
20 connect(m_closeButton, &QPushButton::clicked, this, [&](){
21 Q_EMIT dismissed();
22 });
23
24 setDismissable(true);
25}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setDismissable(bool value=true)
QPushButton * m_closeButton
QIcon loadIcon(const QString &name)

References connect(), dismissed(), KisIconUtils::loadIcon(), m_closeButton, and setDismissable().

◆ ~KisClickableLabel()

KisClickableLabel::~KisClickableLabel ( )
override

Definition at line 27 of file KisClickableLabel.cpp.

27{}

Member Function Documentation

◆ clicked

void KisClickableLabel::clicked ( )
signal

◆ dismissed

void KisClickableLabel::dismissed ( )
signal

◆ hasHeightForWidth()

bool KisClickableLabel::hasHeightForWidth ( ) const
override

Definition at line 29 of file KisClickableLabel.cpp.

30{
31 return true;
32}

◆ heightForWidth()

int KisClickableLabel::heightForWidth ( int w) const
override

Definition at line 34 of file KisClickableLabel.cpp.

35{
36 if (m_pixmap.isNull()) {
37 return height();
38 }
39 return qCeil(static_cast<qreal>(w) * m_pixmap.height() / m_pixmap.width());
40}

References m_pixmap.

◆ isDismissable()

bool KisClickableLabel::isDismissable ( )

Definition at line 74 of file KisClickableLabel.cpp.

75{
76 return m_dismissable;
77}

References m_dismissable.

◆ minimumSizeHint()

QSize KisClickableLabel::minimumSizeHint ( ) const
override

Definition at line 42 of file KisClickableLabel.cpp.

43{
44 return {};
45}

◆ mousePressEvent()

void KisClickableLabel::mousePressEvent ( QMouseEvent * event)
overrideprotected

Definition at line 79 of file KisClickableLabel.cpp.

80{
81 Q_UNUSED(event);
82 Q_EMIT clicked();
83}

References clicked().

◆ resizeEvent()

void KisClickableLabel::resizeEvent ( QResizeEvent * event)
overrideprotected

Definition at line 85 of file KisClickableLabel.cpp.

86{
88}

References updatePixmap().

◆ setDismissable()

void KisClickableLabel::setDismissable ( bool value = true)

Definition at line 67 of file KisClickableLabel.cpp.

68{
70
71 m_closeButton->setVisible(m_dismissable);
72}
float value(const T *src, size_t ch)

References m_closeButton, m_dismissable, and value().

◆ setUnscaledPixmap()

void KisClickableLabel::setUnscaledPixmap ( QPixmap pixmap)

Definition at line 52 of file KisClickableLabel.cpp.

53{
54 m_pixmap = std::move(pixmap);
55 setMaximumSize(m_pixmap.size());
57}

References m_pixmap, and updatePixmap().

◆ sizeHint()

QSize KisClickableLabel::sizeHint ( ) const
override

Definition at line 47 of file KisClickableLabel.cpp.

48{
49 return {};
50}

◆ updatePixmap()

void KisClickableLabel::updatePixmap ( )

Definition at line 59 of file KisClickableLabel.cpp.

60{
61 if (!m_pixmap.isNull()) {
62 // setPixmap(m_pixmap.scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
63 setPixmap(m_pixmap.scaledToWidth(width(), Qt::SmoothTransformation));
64 }
65}

References m_pixmap.

Member Data Documentation

◆ m_closeButton

QPushButton* KisClickableLabel::m_closeButton
private

Definition at line 48 of file KisClickableLabel.h.

◆ m_dismissable

bool KisClickableLabel::m_dismissable = false
private

Definition at line 47 of file KisClickableLabel.h.

◆ m_pixmap

QPixmap KisClickableLabel::m_pixmap
private

Definition at line 45 of file KisClickableLabel.h.


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