-
Notifications
You must be signed in to change notification settings - Fork 402
/
Copy pathabiparamitem.cpp
98 lines (81 loc) · 2.53 KB
/
abiparamitem.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <qt/abiparamitem.h>
#include <qt/contractutil.h>
#include <qt/platformstyle.h>
#include <QHBoxLayout>
#include <QRegularExpressionValidator>
ABIParamItem::ABIParamItem(const PlatformStyle *platformStyle, const ParameterABI ¶m, QWidget *parent) :
QWidget(parent),
m_buttonAdd(new QToolButton(this)),
m_buttonRemove(new QToolButton(this)),
m_itemValue(new QValidatedLineEdit(this)),
m_isDeleted(false)
{
QHBoxLayout *mainLayout = new QHBoxLayout(this);
mainLayout->setSpacing(2);
mainLayout->setContentsMargins(0,0,0,0);
m_buttonAdd->setIcon(platformStyle->MultiStatesIcon(":/icons/add", PlatformStyle::PushButton));
m_buttonRemove->setIcon(platformStyle->MultiStatesIcon(":/icons/remove", PlatformStyle::PushButton));
m_buttonAdd->setFixedSize(30,30);
m_buttonRemove->setFixedSize(30,30);
m_buttonAdd->setFocusPolicy(Qt::NoFocus);
m_buttonRemove->setFocusPolicy(Qt::NoFocus);
QRegularExpression regEx;
if(ContractUtil::getRegularExpession(param.decodeType(), regEx))
{
QRegularExpressionValidator *validator = new QRegularExpressionValidator(m_itemValue);
validator->setRegularExpression(regEx);
m_itemValue->setEmptyIsValid(false);
m_itemValue->setCheckValidator(validator);
}
mainLayout->addWidget(m_buttonAdd);
mainLayout->addWidget(m_buttonRemove);
mainLayout->addWidget(m_itemValue);
setLayout(mainLayout);
connect(m_buttonAdd, SIGNAL(clicked(bool)), this, SLOT(on_addItemClicked()));
connect(m_buttonRemove, SIGNAL(clicked(bool)), this, SLOT(on_removeItemClicked()));
}
QString ABIParamItem::getValue()
{
return m_itemValue->text();
}
void ABIParamItem::setFixed(bool isFixed)
{
m_buttonAdd->setVisible(!isFixed);
m_buttonRemove->setVisible(!isFixed);
}
int ABIParamItem::getPosition() const
{
return m_position;
}
void ABIParamItem::setPosition(int position)
{
m_position = position;
}
void ABIParamItem::on_addItemClicked()
{
Q_EMIT on_addItemClicked(m_position + 1);
}
void ABIParamItem::on_removeItemClicked()
{
Q_EMIT on_removeItemClicked(m_position);
}
bool ABIParamItem::getIsDeleted() const
{
return m_isDeleted;
}
void ABIParamItem::setIsDeleted(bool isDeleted)
{
m_isDeleted= isDeleted;
if(isDeleted)
{
m_itemValue->setText("");
m_itemValue->setValid(true);
}
m_itemValue->setVisible(!isDeleted);
m_buttonRemove->setEnabled(!isDeleted);
}
bool ABIParamItem::isValid()
{
m_itemValue->checkValidity();
return m_itemValue->isValid();
}