-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathorderhandler.cpp
More file actions
69 lines (59 loc) · 1.71 KB
/
Copy pathorderhandler.cpp
File metadata and controls
69 lines (59 loc) · 1.71 KB
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
#include <QDebug>
#include "orderhandler.h"
OrderHandler::OrderHandler()
{
this->inOrder = false;
this->inBricks = false;
this->inRed = false;
this->inBlue = false;
this->inYellow = false;
this->inStatus = false;
}
bool OrderHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
{
if(qName.compare("order") == 0)
inOrder = true;
else if(qName.compare("bricks") == 0)
inBricks = true;
else if(qName.compare("red") == 0)
inRed = true;
else if(qName.compare("blue") == 0)
inBlue = true;
else if(qName.compare("yellow") == 0)
inYellow = true;
else if(qName.compare("status") == 0)
inStatus = true;
return true;
}
bool OrderHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
{
if(qName.compare("order") == 0)
inOrder = false;
else if(qName.compare("bricks") == 0)
inBricks = false;
else if(qName.compare("red") == 0)
inRed = false;
else if(qName.compare("blue") == 0)
inBlue = false;
else if(qName.compare("yellow") == 0)
inYellow = false;
else if(qName.compare("status") == 0)
inStatus = false;
return true;
}
bool OrderHandler::characters(const QString &ch)
{
if(inOrder && inBricks && inRed)
order.setRed(ch.toInt());
else if(inOrder && inBricks && inBlue)
order.setBlue(ch.toInt());
else if(inOrder && inBricks && inYellow)
order.setYellow(ch.toInt());
else if(inOrder && inStatus)
order.setStatus(ch.toAscii().data());
return true;
}
Order OrderHandler::getOrder()
{
return this->order;
}