-
Notifications
You must be signed in to change notification settings - Fork 18
/
CIntegerProperty.cpp
126 lines (90 loc) · 2.26 KB
/
CIntegerProperty.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "CIntegerProperty.h"
//#include "CPropertyEditor.h" // ?
#include <QDebug>
#include <QSpinBox>
CIntegerProperty::CIntegerProperty(const QByteArray &id, const QString &name, int value, int defaultValue, int min, int max):
CBaseProperty(id, name),
m_value(value),
m_defaultValue(defaultValue),
m_min(min), m_max(max)
{
setValue(m_value);
}
CIntegerProperty::CIntegerProperty(CBaseProperty *top, const QByteArray &id, const QString &name, int value, int defaultValue, int min, int max):
CBaseProperty(top, id, name),
m_value(value),
m_defaultValue(defaultValue),
m_min(min), m_max(max)
{
setValue(m_value);
}
void CIntegerProperty::setValue(int value)
{
m_value = value;
CBaseProperty::setValue();
//qDebug() << "CIntegerProperty::setValue() " << m_value;
}
int CIntegerProperty::getValue() const
{
// handle editor...
//m_value = text(1).toInt();
return m_value;
}
void CIntegerProperty::setRange(int min, int max)
{
m_min = min;
m_max = max;
CBaseProperty::setValue();
}
// event handlers
QVariant CIntegerProperty::getVariantValue() const
{
return m_value;
}
void CIntegerProperty::displayValue()
{
setText(1, QString::number(m_value));
}
void CIntegerProperty::validateValue()
{
if (m_value < m_min)
m_value = m_min;
if (m_value > m_max)
m_value = m_max;
}
QWidget *CIntegerProperty::createEditor() const
{
return new QSpinBox();
}
void CIntegerProperty::valueToEditor()
{
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
spinEditor->setRange(m_min, m_max);
spinEditor->setValue(m_value);
}
}
void CIntegerProperty::valueFromEditor()
{
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
int newValue = spinEditor->value();
if (newValue != m_value)
{
setValue(newValue);
// emit valueChanged...
}
}
}
void CIntegerProperty::startEdit()
{
// qDebug() << "CIntegerProperty::onEdit()";
CBaseProperty::startEdit();
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
spinEditor->selectAll();
}
}