summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp
authoralwin <alwin>2005-02-28 09:40:30 (UTC)
committer alwin <alwin>2005-02-28 09:40:30 (UTC)
commit2b64a84d39eeed5681d0ee5068c7d11a01527750 (patch) (side-by-side diff)
treec8693340dbc5ef5e2f9afa90b690829ddff2c4bd /noncore/applets/keyhelper/keyhelperapplet/config/RepeaterHandler.cpp
parent61fa699140c5efbb6ba0bf2a62f7e8fbf62976be (diff)
downloadopie-2b64a84d39eeed5681d0ee5068c7d11a01527750.zip
opie-2b64a84d39eeed5681d0ee5068c7d11a01527750.tar.gz
opie-2b64a84d39eeed5681d0ee5068c7d11a01527750.tar.bz2
other keymapping tool - not working this moment, I have to check it out
- the reason is that the config file is somewhat easier to understand than from zkbapplet and has a nice config tool. Please don't put it into any repositories this moment.
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 @@
+#include "RepeaterHandler.h"
+
+void RepeaterHandler::dispose(QXmlReader* parser, QXmlContentHandler* parent)
+{
+ m_parser = parser;
+ m_parent = parent;
+ m_parser->setContentHandler(this);
+}
+
+bool RepeaterHandler::startElement(const QString& /* namespaceURI */,
+ const QString& localName,
+ const QString& /* qName */,
+ const QXmlAttributes& attr)
+{
+ if(localName == "repeat"){
+ for(int i=0; i<attr.length(); i++){
+ if(attr.localName(i).lower() == "delay"){
+ bool ok;
+ int delay = attr.value(i).toInt(&ok);
+ if(ok){
+ m_pRepeater->setDelay(delay);
+ }
+ } else if(attr.localName(i).lower() == "period"){
+ bool ok;
+ int period = attr.value(i).toInt(&ok);
+ if(ok){
+ m_pRepeater->setPeriod(period);
+ }
+ } else if(attr.localName(i).lower() == "mode"){
+ /* default mode */
+ bool ok;
+ int mode = attr.value(i).toInt(&ok);
+ if(ok){
+ m_pRepeater->setMode(mode);
+ }
+ }
+ }
+ } else if(localName == "define"){
+ /* ÊÑ¿ô½é´ü²½ */
+ m_code = 0;
+ m_enable = true;
+ for(int i=0; i<attr.length(); i++){
+ if(attr.localName(i).lower() == "key"){
+ /* keyname */
+ m_code = KeyNames::getCode(attr.value(i));
+ } else if(attr.localName(i).lower() == "code"){
+ /* keycode */
+ m_code = KHUtil::hex2int(attr.value(i).lower());
+ } else if(attr.localName(i).lower() == "enable"){
+ /* enable/disable */
+ if(attr.value(i).lower() == "false"){
+ m_enable = false;
+ } else {
+ m_enable = true;
+ }
+ }
+ }
+ }
+ return(true);
+}
+
+bool RepeaterHandler::endElement(const QString& /* namespaceURI */,
+ const QString& localName,
+ const QString& /* qName */)
+{
+ if(localName == "define"){
+ if(m_code > 0){
+ /* set repeat enable/disable */
+ m_pRepeater->setRepeatable(m_code, m_enable);
+ }
+ } else if(localName == "repeater"){
+ /* return parent */
+ m_parser->setContentHandler(m_parent);
+ }
+ return(true);
+}