LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
ToolbarTab Class Reference

Widget used as tab for toolbar containing buttons. More...

#include <toolbartab.h>

Inheritance diagram for ToolbarTab:
Collaboration diagram for ToolbarTab:

Public Member Functions

 ToolbarTab (QWidget *parent=0)
 Create widget. More...
 
QGroupBox * addGroup (const char *name)
 Add new group. More...
 
void addWidget (QGroupBox *groupBox, QWidget *widget, int x=0, int y=0, int w=0, int h=1)
 Add new widget. More...
 
QPushButton * addButton (QGroupBox *groupBox, const char *buttonName, int x=0, int y=0, int w=1, int h=1)
 Create a new button and add it to the page. More...
 
QGroupBox * groupByName (const char *groupName)
 Get existing group. More...
 
QPushButton * buttonByText (QGroupBox *groupBox, const char *buttonText)
 Get existing button. More...
 
void removeGroup (QGroupBox *group)
 Remove group. More...
 
void removeButton (QPushButton *button)
 Remove button. More...
 

Private Attributes

Ui::ToolbarTab * ui
 
QHBoxLayout * _layout
 

Detailed Description

Widget used as tab for toolbar containing buttons.

Definition at line 19 of file toolbartab.h.

Constructor & Destructor Documentation

ToolbarTab::ToolbarTab ( QWidget *  parent = 0)

Create widget.

Parameters
parentPointer to parent widget

Definition at line 4 of file toolbartab.cpp.

4  :
5  QWidget(parent),
6  ui(new Ui::ToolbarTab) {
7  ui->setupUi(this);
8 
9  if(ui->container->layout() == 0) {
10  _layout = new QHBoxLayout();
11  ui->container->setLayout(_layout);
12  }
13  else {
14  _layout = dynamic_cast<QHBoxLayout*>(ui->container->layout());
15 
16  if(!_layout) {
17  throw "Wrong layout for ToolbarTab container";
18  }
19  }
20 }
Ui::ToolbarTab * ui
Definition: toolbartab.h:84
QHBoxLayout * _layout
Definition: toolbartab.h:85

Member Function Documentation

QPushButton * ToolbarTab::addButton ( QGroupBox *  groupBox,
const char *  buttonName,
int  x = 0,
int  y = 0,
int  w = 1,
int  h = 1 
)

Create a new button and add it to the page.

Parameters
groupBoxPointer to target group
buttonNameName of the new button
xHorizontal position
yVertical position
wWidth
hHeight

Definition at line 31 of file toolbartab.cpp.

31  {
32  auto button = new QPushButton(buttonName);
33 
34  addWidget(groupBox, button, x, y, w, h);
35 
36  return button;
37 }
void addWidget(QGroupBox *groupBox, QWidget *widget, int x=0, int y=0, int w=0, int h=1)
Add new widget.
Definition: toolbartab.cpp:39
QGroupBox * ToolbarTab::addGroup ( const char *  name)

Add new group.

Parameters
nameGroup name
Returns
Pointer to created QGroupBox

Definition at line 22 of file toolbartab.cpp.

22  {
23  auto group = new QGroupBox(tr(name));
24  group->setLayout(new QGridLayout());
25 
26  _layout->insertWidget(_layout->count() - 1, group);
27 
28  return group;
29 }
QHBoxLayout * _layout
Definition: toolbartab.h:85
void ToolbarTab::addWidget ( QGroupBox *  groupBox,
QWidget *  widget,
int  x = 0,
int  y = 0,
int  w = 0,
int  h = 1 
)

Add new widget.

Parameters
groupBoxPointer to target group
buttonPointer to existing QPushButton
xHorizontal position
yVertical position
wWidth
hHeight

Definition at line 39 of file toolbartab.cpp.

39  {
40  if(groupBox == nullptr) {
41  return;
42  }
43 
44  auto gridLayout = dynamic_cast<QGridLayout*>(groupBox->layout());
45 
46  if(gridLayout) {
47  gridLayout->addWidget(widget, y, x, h, w);
48  }
49  else {
50  groupBox->layout()->addWidget(widget);
51  }
52 }
QPushButton * ToolbarTab::buttonByText ( QGroupBox *  groupBox,
const char *  buttonText 
)

Get existing button.

Parameters
groupBoxGroup to search
buttonTextButton name
Returns
Pointer to QPushButton

Definition at line 68 of file toolbartab.cpp.

68  {
69  auto nbButtons = groupBox->layout()->count();
70 
71  for (int i = 0; i < nbButtons; i++) {
72  auto button = dynamic_cast<QPushButton*>(groupBox->layout()->itemAt(i)->widget());
73 
74  if(button && button->text() == buttonText) {
75  return button;
76  }
77  }
78 
79  return nullptr;
80 }
QGroupBox * ToolbarTab::groupByName ( const char *  groupName)

Get existing group.

Parameters
nameTab name
Returns
Pointer to QGroupBox

Definition at line 54 of file toolbartab.cpp.

54  {
55  auto nbGroups = _layout->count();
56 
57  for (int i = 0; i < nbGroups; i++) {
58  auto groupBox = dynamic_cast<QGroupBox*>(_layout->itemAt(i)->widget());
59 
60  if (groupBox && groupBox->title() == groupName) {
61  return groupBox;
62  }
63  }
64 
65  return nullptr;
66 }
QHBoxLayout * _layout
Definition: toolbartab.h:85
void ToolbarTab::removeButton ( QPushButton *  button)

Remove button.

Parameters
buttonPointer to QPushButton

Definition at line 90 of file toolbartab.cpp.

90  {
91  if(button != nullptr) {
92  delete button;
93  }
94 }
void ToolbarTab::removeGroup ( QGroupBox *  group)

Remove group.

Parameters
groupPointer to QGroupBox

Definition at line 82 of file toolbartab.cpp.

82  {
83  if(group == nullptr) {
84  return;
85  }
86 
87  delete group;
88 }

Member Data Documentation

QHBoxLayout* ToolbarTab::_layout
private

Definition at line 85 of file toolbartab.h.

Ui::ToolbarTab* ToolbarTab::ui
private

Definition at line 84 of file toolbartab.h.


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