blob: bdc2394c63edc90c5ae2d15a80e34aff77db403d (
plain)
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
|
/*
entityproperties.cc
This file is part of the Project::OSiRiON world editor
and is distributed under the terms and conditions of
the GNU General Public License version 2
*/
#include "entityproperties.h"
namespace editor
{
EntityProperties::EntityProperties()
{
properties_radius = 0;
}
EntityProperties::~EntityProperties()
{
}
void EntityProperties::add_subsection_header(const QString &header, const QString &comment)
{
if (properties_subsections.size()) {
properties_subsections += '\n';
}
if (comment.size())
properties_subsections += comment;
properties_subsections += '[';
properties_subsections += header;
properties_subsections += ']';
properties_subsections += '\n';
}
void EntityProperties::add_subsection_value(const QString &key, const QString &value, const QString &comment)
{
if (comment.size())
properties_subsections += comment;
properties_subsections += key;
properties_subsections += '=';
properties_subsections += value;
properties_subsections += '\n';
}
void EntityProperties::save(QTextStream &textstream)
{
// comments
if (comment().size()) {
// QTextStream operates on QString, not on QString const
QString commentbuffer = comment();
QTextStream commentstream(&commentbuffer);
QString line;
while (!commentstream.atEnd()) {
line = commentstream.readLine(1024);
textstream << line << '\n';
}
textstream << '\n';
}
textstream << "[" << type() << "]" << '\n';
save_comment(textstream, "label");
if (label().size())
textstream << "label=" << label() << '\n';
save_comment(textstream, "name");
if (name().size())
textstream << "name=" << name() << '\n';
// location
save_comment(textstream, "location");
textstream << "location=" << location().x() << " " << location().y() << " " << location().z() << '\n';
// angles
save_comment(textstream, "angles");
textstream << "angles=" << angles().x() << " " << angles().y() << " " << angles().z() << '\n';
// radius
save_comment(textstream, "radius");
if (radius()) {
textstream << "radius=" << radius() << '\n';
}
// other values
if (values().size()) {
textstream << values();
}
// info string
if (info().size()) {
textstream << '\n';
save_comment(textstream, "info");
// QTextStream operates on QString, not on QString const
QString infobuffer = info();
QTextStream infostream(&infobuffer);
QString line;
while (!infostream.atEnd()) {
line = infostream.readLine(1024);
textstream << "info=" << line << '\n';
}
}
if (subsections().size()) {
textstream << '\n';
QString subsectionbuffer = subsections();
QTextStream subsectionstream(&subsectionbuffer);
QString line;
while (!subsectionstream.atEnd()) {
line = subsectionstream.readLine(1024);
if (line.size())
textstream << '\t' << line << '\n';
else
textstream << '\n';
}
}
textstream << '\n';
}
} // namespace editor
|