/[projects]/infoscreen/screenxmlhandler.cpp
ViewVC logotype

Annotation of /infoscreen/screenxmlhandler.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 638 - (hide annotations) (download)
Wed Apr 7 17:00:07 2010 UTC (14 years, 1 month ago) by torben
File size: 2171 byte(s)
Adopt infoscreen to local play mode
1 torben 528 #include "screenxmlhandler.h"
2    
3     #include "httpwrapper.h"
4    
5 torben 638 #include <QDebug>
6 torben 528
7     ScreenXmlHandler::ScreenXmlHandler()
8     {
9     }
10    
11    
12     bool ScreenXmlHandler::readXml(QString uri)
13     {
14     screenSet.clear();
15    
16     QXmlSimpleReader reader;
17     reader.setContentHandler(this);
18     reader.setErrorHandler(this);
19    
20     QByteArray data = HttpWrapper::getSyncData(uri);
21    
22     QXmlInputSource xmlInputSource;
23     xmlInputSource.setData(data);
24     return reader.parse(xmlInputSource);
25     }
26    
27    
28     bool ScreenXmlHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
29     {
30     Q_UNUSED(namespaceURI);
31     Q_UNUSED(localName);
32     Q_UNUSED(attributes);
33     //qDebug() << "XML-start:" << qName;
34     currentText = "";
35    
36     if (qName == "screen") {
37     tempItem = ScreenItem();
38     }
39    
40     return true;
41     }
42    
43 torben 638 ModuleType ScreenXmlHandler::stringToModule(QString name) {
44     ModuleType type;
45    
46     if (name == "info_image") {
47     type = ModuleImage;
48     } else if ( name == "info_web") {
49     type = ModuleWeb;
50     } else if (name == "info_video") {
51     type = ModuleVideo;
52     } else {
53     type = ModuleUnknown;
54     qDebug() << "Unknown module " << name;
55     }
56     return type;
57     }
58    
59 torben 528 bool ScreenXmlHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
60     {
61     Q_UNUSED(namespaceURI);
62     Q_UNUSED(localName);
63     //qDebug() << "XML-stop:" << qName;
64    
65     if (qName == "module") {
66 torben 638 tempItem.module = stringToModule(currentText);
67 torben 528 }
68     if (qName == "elementid") {
69     tempItem.elementid = currentText.toInt();
70     }
71     if (qName == "url") {
72     tempItem.url = currentText;
73     }
74     if (qName == "runtime") {
75     tempItem.runtime = currentText.toInt();
76     }
77     if (qName == "timestart") {
78     tempItem.start = QTime::fromString(currentText, "hh:mm:ss");
79     }
80     if (qName == "timestop") {
81     tempItem.stop = QTime::fromString(currentText, "hh:mm:ss");
82     }
83    
84    
85     if (qName == "screen") {
86     screenSet.append(tempItem);
87     }
88    
89     return true;
90     }
91    
92     bool ScreenXmlHandler::characters(const QString &str)
93     {
94     currentText += str;
95     return true;
96     }

  ViewVC Help
Powered by ViewVC 1.1.20