PeriDyno 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
QIntegerFieldWidget.cpp
Go to the documentation of this file.
2
3#include <QGridLayout>
4
5#include "Field.h"
6#include "QPiecewiseSpinBox.h"
7
8namespace dyno
9{
12
15 {
17 if (f == nullptr) {
18 return;
19 }
20
21 //this->setStyleSheet("border:none");
22 QGridLayout* layout = new QGridLayout;
23 layout->setContentsMargins(0, 0, 0, 0);
24 layout->setSpacing(0);
25
26 this->setLayout(layout);
27
28 QLabel* name = new QLabel();
29 QString str = FormatFieldWidgetName(field->getObjectName());
30 name->setFixedSize(100, 18);
31 QFontMetrics fontMetrics(name->font());
32 QString elide = fontMetrics.elidedText(str, Qt::ElideRight, 100);
33 name->setText(elide);
34 //Set label tips
35 name->setToolTip(str);
36
38 spinner->setRange(castMinimum<int>(field->getMin()), castMaximum<int>(field->getMax()));
39
40 layout->addWidget(name, 0, 0);
41 layout->addWidget(spinner, 0, 1, Qt::AlignRight);
42
43
44 this->connect(spinner, SIGNAL(valueChanged(int)), this, SLOT(changeValue(int)));
45
46 }
47
49 {
50
52 if (f == nullptr)
53 return;
54
55 f->setValue(value);
56 }
57
60 {
62 if (f == nullptr)
63 {
64 return;
65 }
66
67 //this->setStyleSheet("border:none");
68 QGridLayout* layout = new QGridLayout;
69 layout->setContentsMargins(0, 0, 0, 0);
70 layout->setSpacing(0);
71
72 this->setLayout(layout);
73
74 QLabel* name = new QLabel();
75 name->setFixedHeight(18);
76 name->setText(FormatFieldWidgetName(field->getObjectName()));
77
79 spinner->setFixedWidth(100);
80 spinner->setRange(castMinimum<uint>(field->getMin()), castMaximum<int>(field->getMax()));
81 spinner->setValue(f->getValue());
82
83 layout->addWidget(name, 0, 0);
84 layout->addWidget(spinner, 0, 1, Qt::AlignRight);
85 layout->setSpacing(3);
86
87 this->connect(spinner, SIGNAL(valueChanged(int)), this, SLOT(changeValue(int)));
88 }
89
91 {
93 if (f == nullptr)
94 return;
95
96 f->setValue(value);
97 }
98}
99
#define IMPL_FIELD_WIDGET(_data_type_, _type_)
T getValue()
Definition Field.h:130
void setValue(T val)
Definition Field.h:111
QFieldWidget(FBase *field)
DECLARE_FIELD_WIDGET QIntegerFieldWidget(FBase *field)
DECLARE_FIELD_WIDGET QUIntegerFieldWidget(FBase *field)
TA * cast(TB *b)
Definition Typedef.inl:286
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
QString FormatFieldWidgetName(std::string name)
Definition Format.cpp:9
T castMaximum(float v)
unsigned int uint
Definition VkProgram.h:14
T castMinimum(float v)