ui fixed in result dialog.
[speedfreak] / Client / xmlwriter.cpp
1 /*
2  * Xml writer
3  *
4  * @author     Tiina Kivilinna-Korhola
5  * @copyright  (c) 2010 Speed Freak team
6  * license     http://opensource.org/licenses/gpl-license.php GNU Public License
7  */
8
9 #include "xmlwriter.h"
10
11
12
13 /**
14   *@brief Constructor, connects object to GUI
15   *@param Pointer to carmainwindow, which is temporarily used during development
16   */
17 XmlWriter::XmlWriter()
18 {
19
20 }
21
22 /**
23   *@brief Destructor
24   */
25 XmlWriter::~XmlWriter()
26 {
27
28 }
29
30 /**
31   *@brief Writes registration items into tags.
32   *@param netbuf a buffer where xmlstreamwriter writes to.
33   *@param usr for user name.
34   *@param psswd for password.
35   *@param email.
36   */
37 void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email)
38 {
39     qDebug() << "_writeRegistering";
40
41     xmlwriter.setDevice(netbuf);
42
43     xmlwriter.writeStartDocument();
44     xmlwriter.writeStartElement("user");
45
46     xmlwriter.writeStartElement("login");
47     xmlwriter.writeCharacters(usr);
48     xmlwriter.writeEndElement();
49
50     xmlwriter.writeStartElement("password");
51     xmlwriter.writeCharacters(psswd);
52     xmlwriter.writeEndElement();
53
54     xmlwriter.writeStartElement("email");
55     xmlwriter.writeCharacters(email);
56     xmlwriter.writeEndElement();
57
58     xmlwriter.writeEndElement();
59     xmlwriter.writeEndDocument();
60 }
61
62
63 /**
64   *@brief Writes Speed Freek results items as tags and contents into a buffer.
65   *@todo Consider looping when writing many values.
66   *@todo Replace test value to finally used variables.
67   */
68 void XmlWriter::writeResult(QBuffer *netbuf, double result)
69 {
70     qDebug() << "_writeResult";
71
72     xmlwriter.setDevice(netbuf);
73
74     xmlwriter.writeStartDocument();
75     xmlwriter.writeStartElement("result");
76     xmlwriter.writeAttribute("value", QString::number(result));
77     xmlwriter.writeEndElement();
78     xmlwriter.writeEndDocument();
79 }
80
81
82 /**
83   *@brief Write track to server.
84   *@param netbuf where to write.
85   *@param counter is GPSData::roundCounter.
86   *@todo Decide suitable attributes.
87   */
88 void XmlWriter::writeGpsTrack(QBuffer *netbuf, int counter, int start, int stop, int lat, int lon, int alt, int speed, int time)
89 {
90     qDebug() << "_writeGpsTrack";
91
92     double *ptrValue;
93     //ptrValue = ptrTable;
94     double tmp = 0;
95
96     xmlwriter.setDevice(netbuf);
97
98     xmlwriter.writeStartDocument();
99
100     xmlwriter.writeStartElement("Route");
101     xmlwriter.writeAttribute("starttime", QDateTime::currentDateTime().toString());
102     xmlwriter.writeAttribute("endtime", QDateTime::currentDateTime().toString());
103     xmlwriter.writeAttribute("points", QDateTime::currentDateTime().toString());
104     for(int i = 0; i < counter; i++)
105     {
106         xmlwriter.writeStartElement("point");
107         xmlwriter.writeAttribute("lat", QString::number(lat));
108         xmlwriter.writeAttribute("lon", QString::number(lon));
109         xmlwriter.writeAttribute("alt", QString::number(alt));
110         xmlwriter.writeAttribute("speed", QString::number(speed));
111         xmlwriter.writeAttribute("time", QString::number(time));
112         xmlwriter.writeEndElement();
113     }
114     xmlwriter.writeEndElement();
115     xmlwriter.writeEndDocument();
116 }
117
118
119 /**
120   *@brief Opens and closes a file, when xml information is written into a file,
121   *and passes file to writeXmlFile()
122   *@param usr for user name.
123   *@param psswd for password.
124   *@param email.
125   *@todo Replace hardcoced filename to finally GUI entry widget.
126   */
127 //void XmlWriter::writeXml(QString usr, QString psswd, QString email)
128 void XmlWriter::writeXml()
129 {
130     QString filename = "xmlcategoryfile.xml";
131     QFile file(filename);
132     if (!file.open(QFile::WriteOnly | QFile::Text)) {
133         qDebug() << "_xmlWrite fail";
134         return;
135     }
136
137     writeXmlFile(&file);
138     //writeRegistering(&file, usr, psswd, email);
139     //writeResult(&file);
140     file.close();
141 }
142
143 /**
144   *@brief Writes general xml information.
145   *Calls other functions to insert login and result information.
146   *@param device: target of writing, here filename.
147   *@param usr for user name.
148   *@param psswd for password.
149   *@param email.
150   */
151 bool XmlWriter::writeXmlFile(QIODevice *device)
152 {
153     xmlwriter.setDevice(device);
154     xmlwriter.writeStartDocument();
155     writeItems();
156     xmlwriter.writeEndDocument();
157
158     return true;
159 }
160
161
162 /**
163   *@brief Writes Speed Freek results items as tags and contents to earlier defined target.
164   *@todo Consider looping when writing many values.
165   *@todo Replace testing values to finally used variabls.
166   */
167 void XmlWriter::writeItems()
168 {
169     xmlwriter.writeStartElement("result");
170     xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value
171     xmlwriter.writeAttribute("unit", "seconds");
172     xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString());
173     xmlwriter.writeEndElement();
174 }
175