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

#include <KoToolBoxLayout_p.h>

+ Inheritance diagram for SectionLayout:

Public Member Functions

void addButton (QAbstractButton *button, int priority)
 
void addItem (QLayoutItem *) override
 
const QSize & buttonSize () const
 
int count () const override
 
QLayoutItem * itemAt (int i) const override
 
 SectionLayout (QWidget *parent)
 
void setButtonSize (const QSize size)
 
void setGeometry (const QRect &rect) override
 
void setOrientation (Qt::Orientation orientation)
 
QSize sizeHint () const override
 
QLayoutItem * takeAt (int i) override
 
 ~SectionLayout () override
 

Private Attributes

QSize m_buttonSize
 
QList< QWidgetItem * > m_items
 
Qt::Orientation m_orientation
 
QMap< QAbstractButton *, int > m_priorities
 

Detailed Description

Definition at line 19 of file KoToolBoxLayout_p.h.

Constructor & Destructor Documentation

◆ SectionLayout()

SectionLayout::SectionLayout ( QWidget * parent)
inlineexplicit

Definition at line 22 of file KoToolBoxLayout_p.h.

23 : QLayout(parent), m_orientation(Qt::Vertical)
24 {
25 }
Qt::Orientation m_orientation

◆ ~SectionLayout()

SectionLayout::~SectionLayout ( )
inlineoverride

Definition at line 27 of file KoToolBoxLayout_p.h.

28 {
29 qDeleteAll( m_items );
30 m_items.clear();
31 }
QList< QWidgetItem * > m_items

References m_items.

Member Function Documentation

◆ addButton()

void SectionLayout::addButton ( QAbstractButton * button,
int priority )
inline

Definition at line 33 of file KoToolBoxLayout_p.h.

34 {
35 addChildWidget(button);
36 if (m_priorities.values().contains(priority)) {
37 qWarning() << "Button" << button << "has a conflicting priority";
38 }
39
40 m_priorities.insert(button, priority);
41 int index = 1;
42 Q_FOREACH (QWidgetItem *item, m_items) {
43 if (m_priorities.value(static_cast<QAbstractButton*>(item->widget())) > priority)
44 break;
45 index++;
46 }
47 m_items.insert(index-1, new QWidgetItem(button));
48 }
QMap< QAbstractButton *, int > m_priorities
QString button(const QWheelEvent &ev)

References button(), m_items, and m_priorities.

◆ addItem()

void SectionLayout::addItem ( QLayoutItem * )
inlineoverride

Definition at line 61 of file KoToolBoxLayout_p.h.

61{ Q_ASSERT(0); }

◆ buttonSize()

const QSize & SectionLayout::buttonSize ( ) const
inline

Definition at line 120 of file KoToolBoxLayout_p.h.

121 {
122 return m_buttonSize;
123 }

References m_buttonSize.

◆ count()

int SectionLayout::count ( ) const
inlineoverride

Definition at line 72 of file KoToolBoxLayout_p.h.

72{ return m_items.count(); }

References m_items.

◆ itemAt()

QLayoutItem * SectionLayout::itemAt ( int i) const
inlineoverride

Definition at line 63 of file KoToolBoxLayout_p.h.

64 {
65 if (m_items.count() <= i)
66 return 0;
67 return m_items.at(i);
68 }

References m_items.

◆ setButtonSize()

void SectionLayout::setButtonSize ( const QSize size)
inline

Definition at line 115 of file KoToolBoxLayout_p.h.

116 {
118 }
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References m_buttonSize.

◆ setGeometry()

void SectionLayout::setGeometry ( const QRect & rect)
inlineoverride

Definition at line 74 of file KoToolBoxLayout_p.h.

75 {
76 int x = 0;
77 int y = 0; const QSize &size = buttonSize();
78 if (m_orientation == Qt::Vertical) {
79 foreach (QWidgetItem* w, m_items) {
80 if (w->isEmpty())
81 continue;
82 int realX;
83 if (parentWidget()->isLeftToRight()) {
84 realX = x;
85 } else {
86 realX = rect.width() - x - size.width();
87 }
88 w->widget()->setGeometry(QRect(realX, y, size.width(), size.height()));
89 x += size.width();
90 if (x + size.width() > rect.width()) {
91 x = 0;
92 y += size.height();
93 }
94 }
95 } else {
96 foreach (QWidgetItem* w, m_items) {
97 if (w->isEmpty())
98 continue;
99 int realX;
100 if (parentWidget()->isLeftToRight()) {
101 realX = x;
102 } else {
103 realX = rect.width() - x - size.width();
104 }
105 w->widget()->setGeometry(QRect(realX, y, size.width(), size.height()));
106 y += size.height();
107 if (y + size.height() > rect.height()) {
108 x += size.width();
109 y = 0;
110 }
111 }
112 }
113 }
const QSize & buttonSize() const

References buttonSize(), m_items, and m_orientation.

◆ setOrientation()

void SectionLayout::setOrientation ( Qt::Orientation orientation)
inline

Definition at line 125 of file KoToolBoxLayout_p.h.

126 {
127 m_orientation = orientation;
128 }

References m_orientation.

◆ sizeHint()

QSize SectionLayout::sizeHint ( ) const
inlineoverride

Definition at line 50 of file KoToolBoxLayout_p.h.

51 {
52 // This is implemented just to not freak out GammaRay, in practice
53 // this doesn't have any effect on the layout.
54 if (m_orientation == Qt::Vertical) {
55 return QSize(m_buttonSize.width(), m_buttonSize.height() * count());
56 } else {
57 return QSize(m_buttonSize.width() * count(), m_buttonSize.height());
58 }
59 }
int count() const override

References count(), m_buttonSize, and m_orientation.

◆ takeAt()

QLayoutItem * SectionLayout::takeAt ( int i)
inlineoverride

Definition at line 70 of file KoToolBoxLayout_p.h.

70{ return m_items.takeAt(i); }

References m_items.

Member Data Documentation

◆ m_buttonSize

QSize SectionLayout::m_buttonSize
private

Definition at line 131 of file KoToolBoxLayout_p.h.

◆ m_items

QList<QWidgetItem*> SectionLayout::m_items
private

Definition at line 133 of file KoToolBoxLayout_p.h.

◆ m_orientation

Qt::Orientation SectionLayout::m_orientation
private

Definition at line 134 of file KoToolBoxLayout_p.h.

◆ m_priorities

QMap<QAbstractButton*, int> SectionLayout::m_priorities
private

Definition at line 132 of file KoToolBoxLayout_p.h.


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