summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp
Unidiff
Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp b/noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp
new file mode 100644
index 0000000..aeae761
--- a/dev/null
+++ b/noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp
@@ -0,0 +1,76 @@
1#include "RepeaterHandler.h"
2
3void RepeaterHandler::dispose(QXmlReader* parser, QXmlContentHandler* parent)
4{
5 m_parser = parser;
6 m_parent = parent;
7 m_parser->setContentHandler(this);
8}
9
10bool RepeaterHandler::startElement(const QString& /* namespaceURI */,
11 const QString& localName,
12 const QString& /* qName */,
13 const QXmlAttributes& attr)
14{
15 if(localName == "repeat"){
16 for(int i=0; i<attr.length(); i++){
17 if(attr.localName(i).lower() == "delay"){
18 bool ok;
19 int delay = attr.value(i).toInt(&ok);
20 if(ok){
21 m_pRepeater->setDelay(delay);
22 }
23 } else if(attr.localName(i).lower() == "period"){
24 bool ok;
25 int period = attr.value(i).toInt(&ok);
26 if(ok){
27 m_pRepeater->setPeriod(period);
28 }
29 } else if(attr.localName(i).lower() == "mode"){
30 /* default mode */
31 bool ok;
32 int mode = attr.value(i).toInt(&ok);
33 if(ok){
34 m_pRepeater->setMode(mode);
35 }
36 }
37 }
38 } else if(localName == "define"){
39 /* ÊÑ¿ô½é´ü²½ */
40 m_code = 0;
41 m_enable = true;
42 for(int i=0; i<attr.length(); i++){
43 if(attr.localName(i).lower() == "key"){
44 /* keyname */
45 m_code = KeyNames::getCode(attr.value(i));
46 } else if(attr.localName(i).lower() == "code"){
47 /* keycode */
48 m_code = KHUtil::hex2int(attr.value(i).lower());
49 } else if(attr.localName(i).lower() == "enable"){
50 /* enable/disable */
51 if(attr.value(i).lower() == "false"){
52 m_enable = false;
53 } else {
54 m_enable = true;
55 }
56 }
57 }
58 }
59 return(true);
60}
61
62bool RepeaterHandler::endElement(const QString& /* namespaceURI */,
63 const QString& localName,
64 const QString& /* qName */)
65{
66 if(localName == "define"){
67 if(m_code > 0){
68 /* set repeat enable/disable */
69 m_pRepeater->setRepeatable(m_code, m_enable);
70 }
71 } else if(localName == "repeater"){
72 /* return parent */
73 m_parser->setContentHandler(m_parent);
74 }
75 return(true);
76}