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

#include <kis_collapsible_button_group.h>

+ Inheritance diagram for KisCollapsibleButtonGroup:

Classes

struct  Private
 

Public Member Functions

QToolButton * addAction (QAction *action)
 
bool autoRaise () const
 
bool collapsed () const
 
QSize iconSize () const
 
 KisCollapsibleButtonGroup (QWidget *parent=nullptr)
 
virtual QSize minimumSizeHint () const override
 
void setAutoCollapse (bool autoCollapse)
 
void setAutoRaise (bool autoRaise)
 
void setCollapsed (bool collapse)
 
void setIconSize (const QSize &size)
 
virtual QSize sizeHint () const override
 
 ~KisCollapsibleButtonGroup () override
 

Protected Member Functions

virtual void resizeEvent (class QResizeEvent *event) override
 

Private Attributes

QScopedPointer< Privatem_d
 

Detailed Description

Definition at line 12 of file kis_collapsible_button_group.h.

Constructor & Destructor Documentation

◆ KisCollapsibleButtonGroup()

KisCollapsibleButtonGroup::KisCollapsibleButtonGroup ( QWidget * parent = nullptr)

Definition at line 25 of file kis_collapsible_button_group.cpp.

26 : QWidget(parent)
28{
29 m_d->layout = new QHBoxLayout;
30 m_d->layout->setSpacing(0);
31 m_d->layout->setContentsMargins(0, 0, 0, 0);
32 setLayout(m_d->layout);
33
34 setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
35
36 m_d->collapsedButton.reset(new QToolButton(this));
37 m_d->layout->addWidget(m_d->collapsedButton.data());
38
39 connect(m_d->collapsedButton.data(), &QToolButton::triggered, [this](QAction* triggered) {
40 m_d->collapsedButton->setDefaultAction(triggered);
41 });
42}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))

References connect(), and m_d.

◆ ~KisCollapsibleButtonGroup()

KisCollapsibleButtonGroup::~KisCollapsibleButtonGroup ( )
override

Definition at line 53 of file kis_collapsible_button_group.cpp.

53 {
54 m_d.reset();
55}

References m_d.

Member Function Documentation

◆ addAction()

QToolButton * KisCollapsibleButtonGroup::addAction ( QAction * action)

Definition at line 107 of file kis_collapsible_button_group.cpp.

108{
109 QToolButton* button = new QToolButton(this);
110 button->setDefaultAction(action);
111 button->setIconSize(iconSize());
112
113 m_d->allButtons.append(button);
114 m_d->layout->insertWidget(1, button);
115
116 action->setIconVisibleInMenu(true);
117 if (action->text().isEmpty()) {
118 // TODO: Once we're out of string freeze, we should try to use a shorter string here.
119 // Tooltip is too long, but at least we know it's localized!
120 action->setText(action->toolTip());
121 }
122
123 m_d->collapsedButton->addAction(action);
124 m_d->collapsedButton->setDefaultAction(action);
125
126 button->setAutoRaise(autoRaise());
127 button->setVisible(!m_d->collapsed);
128
129 return button;
130}
QString button(const QWheelEvent &ev)

References autoRaise(), button(), iconSize(), and m_d.

◆ autoRaise()

bool KisCollapsibleButtonGroup::autoRaise ( ) const

Definition at line 57 of file kis_collapsible_button_group.cpp.

58{
59 return m_d->collapsedButton->autoRaise();
60}

References m_d.

◆ collapsed()

bool KisCollapsibleButtonGroup::collapsed ( ) const

Definition at line 92 of file kis_collapsible_button_group.cpp.

93{
94 return m_d->collapsed;
95}

References m_d.

◆ iconSize()

QSize KisCollapsibleButtonGroup::iconSize ( ) const

Definition at line 71 of file kis_collapsible_button_group.cpp.

72{
73 return m_d->collapsedButton->iconSize();
74}

References m_d.

◆ minimumSizeHint()

QSize KisCollapsibleButtonGroup::minimumSizeHint ( ) const
overridevirtual

Definition at line 102 of file kis_collapsible_button_group.cpp.

103{
104 return m_d->collapsedButton->size();
105}

References m_d.

◆ resizeEvent()

void KisCollapsibleButtonGroup::resizeEvent ( class QResizeEvent * event)
overrideprotectedvirtual

Definition at line 132 of file kis_collapsible_button_group.cpp.

133{
134 Q_UNUSED(event);
135 if (m_d->autoCollapse) {
136 if (size().width() < sizeHint().width()) {
137 setCollapsed(true);
138 } else {
139 setCollapsed(false);
140 }
141 }
142}
virtual QSize sizeHint() const override
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References m_d, setCollapsed(), and sizeHint().

◆ setAutoCollapse()

void KisCollapsibleButtonGroup::setAutoCollapse ( bool autoCollapse)

Definition at line 76 of file kis_collapsible_button_group.cpp.

77{
78 m_d->autoCollapse = autoCollapse;
79}

References m_d.

◆ setAutoRaise()

void KisCollapsibleButtonGroup::setAutoRaise ( bool autoRaise)

Definition at line 44 of file kis_collapsible_button_group.cpp.

45{
46 m_d->collapsedButton->setAutoRaise(autoRaise);
47
48 Q_FOREACH (QToolButton* button, m_d->allButtons) {
49 button->setAutoRaise(autoRaise);
50 }
51}

References autoRaise(), button(), and m_d.

◆ setCollapsed()

void KisCollapsibleButtonGroup::setCollapsed ( bool collapse)

Definition at line 81 of file kis_collapsible_button_group.cpp.

82{
83 m_d->collapsed = collapse;
84
85 m_d->collapsedButton->setVisible(m_d->collapsed);
86
87 Q_FOREACH (QToolButton* button, m_d->allButtons) {
88 button->setVisible(!m_d->collapsed);
89 }
90}

References button(), and m_d.

◆ setIconSize()

void KisCollapsibleButtonGroup::setIconSize ( const QSize & size)

Definition at line 62 of file kis_collapsible_button_group.cpp.

63{
64 m_d->collapsedButton->setIconSize(size);
65
66 Q_FOREACH (QToolButton* button, m_d->allButtons) {
67 button->setIconSize(size);
68 }
69}

References button(), and m_d.

◆ sizeHint()

QSize KisCollapsibleButtonGroup::sizeHint ( ) const
overridevirtual

Definition at line 97 of file kis_collapsible_button_group.cpp.

98{
99 return m_d->collapsedButton->sizeHint() * m_d->allButtons.count();
100}

References m_d.

Member Data Documentation

◆ m_d

QScopedPointer<Private> KisCollapsibleButtonGroup::m_d
private

Definition at line 42 of file kis_collapsible_button_group.h.


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