-
Notifications
You must be signed in to change notification settings - Fork 18
/
CStringProperty.cpp
81 lines (58 loc) · 1.53 KB
/
CStringProperty.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
#include "CStringProperty.h"
#include <QDebug>
#include <QLineEdit>
CStringProperty::CStringProperty(const QByteArray &id, const QString &name, const QString &value, const QString &defaultValue):
CBaseProperty(id, name),
m_value(value),
m_defaultValue(defaultValue)
{
setValue(value);
}
CStringProperty::CStringProperty(CBaseProperty *top, const QByteArray &id, const QString &name, const QString &value, const QString &defaultValue):
CBaseProperty(top, id, name),
m_value(value),
m_defaultValue(defaultValue)
{
setValue(value);
}
void CStringProperty::setValue(const QString &value)
{
m_value = value;
CBaseProperty::setValue();
}
const QString &CStringProperty::getValue() const
{
m_value = text(1);
return m_value;
}
QVariant CStringProperty::getVariantValue() const
{
return getValue();
}
void CStringProperty::displayValue()
{
setText(1, m_value);
}
void CStringProperty::startEdit()
{
setFlags(flags() | Qt::ItemIsEditable);
treeWidget()->editItem(this, 1);
QLineEdit* editor = dynamic_cast<QLineEdit*>(getActiveEditor());
if (editor != NULL)
{
editor->selectAll();
}
}
void CStringProperty::finishEdit(bool cancel)
{
// qDebug() << "CStringProperty::finishEdit() " << text(1) << " : " << getActiveEditor();
if (!cancel)
{
QLineEdit* editor = dynamic_cast<QLineEdit*>(getActiveEditor());
if (editor != NULL)
{
setValue(editor->text());
}
}
setFlags(flags() & ~Qt::ItemIsEditable);
}