00001 #include "RepeaterHandler.h"
00002
00003 void RepeaterHandler::dispose(QXmlReader* parser, QXmlContentHandler* parent)
00004 {
00005 m_parser = parser;
00006 m_parent = parent;
00007 m_parser->setContentHandler(this);
00008 }
00009
00010 bool RepeaterHandler::startElement(const QString& ,
00011 const QString& localName,
00012 const QString& ,
00013 const QXmlAttributes& attr)
00014 {
00015 if(localName == "repeat"){
00016 for(int i=0; i<attr.length(); i++){
00017 if(attr.localName(i).lower() == "delay"){
00018 bool ok;
00019 int delay = attr.value(i).toInt(&ok);
00020 if(ok){
00021 m_pRepeater->setDelay(delay);
00022 }
00023 } else if(attr.localName(i).lower() == "period"){
00024 bool ok;
00025 int period = attr.value(i).toInt(&ok);
00026 if(ok){
00027 m_pRepeater->setPeriod(period);
00028 }
00029 } else if(attr.localName(i).lower() == "mode"){
00030
00031 bool ok;
00032 int mode = attr.value(i).toInt(&ok);
00033 if(ok){
00034 m_pRepeater->setMode(mode);
00035 }
00036 }
00037 }
00038 } else if(localName == "define"){
00039
00040 m_code = 0;
00041 m_enable = true;
00042 for(int i=0; i<attr.length(); i++){
00043 if(attr.localName(i).lower() == "key"){
00044
00045 m_code = KeyNames::getCode(attr.value(i));
00046 } else if(attr.localName(i).lower() == "code"){
00047
00048 m_code = KHUtil::hex2int(attr.value(i).lower());
00049 } else if(attr.localName(i).lower() == "enable"){
00050
00051 if(attr.value(i).lower() == "false"){
00052 m_enable = false;
00053 } else {
00054 m_enable = true;
00055 }
00056 }
00057 }
00058 }
00059 return(true);
00060 }
00061
00062 bool RepeaterHandler::endElement(const QString& ,
00063 const QString& localName,
00064 const QString& )
00065 {
00066 if(localName == "define"){
00067 if(m_code > 0){
00068
00069 m_pRepeater->setRepeatable(m_code, m_enable);
00070 }
00071 } else if(localName == "repeater"){
00072
00073 m_parser->setContentHandler(m_parent);
00074 }
00075 return(true);
00076 }