Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
blob: 84a6bc4f91e528634659f2c638c9807bffbdbb69 (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
/*
   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()
{
}

EntityProperties::~EntityProperties()
{
}

void EntityProperties::add_subsection(const QString &name)
{
	if (properties_subsections.size()) {
		properties_subsections += '\n';
	}
		
	properties_subsections += '[';
	properties_subsections += name;
	properties_subsections += ']';
	properties_subsections += '\n';
		
}

void EntityProperties::add_subsection_value(const QString &key, const QString &value)
{
	properties_subsections += key;
	properties_subsections += '=';
	properties_subsections += value;
	properties_subsections += '\n';
}

void EntityProperties::save(QTextStream &textstream)
{
	textstream << "[" << type() << "]" << '\n';
	if (label().size())
		textstream << "label=" << label() << '\n';
	if (name().size())
		textstream << "name=" << name() << '\n';
	
	// other values
	if (values().size()) {
		textstream << values();
	}
	
	// info string
	if (info().size()) {
		textstream << '\n';
		
		// 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