author | alwin <alwin> | 2004-08-01 10:33:38 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-08-01 10:33:38 (UTC) |
commit | ecd0e7c523c9f190eb2b8765ef2d629aa399d635 (patch) (unidiff) | |
tree | 1ac230cbfd75b94f7d1496dc16ccb1c9af1a81be | |
parent | 142d432ef9f8215636a81c358c828d4b6986a6ad (diff) | |
download | opie-ecd0e7c523c9f190eb2b8765ef2d629aa399d635.zip opie-ecd0e7c523c9f190eb2b8765ef2d629aa399d635.tar.gz opie-ecd0e7c523c9f190eb2b8765ef2d629aa399d635.tar.bz2 |
switched keyboard filter to the new singleton class OKeyFilter from within
opiecore2 so we can better handle it.
-rw-r--r-- | noncore/applets/zkbapplet/zkbwidget.cpp | 21 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/zkbwidget.h | 0 | ||||
-rw-r--r-- | noncore/apps/keyz-cfg/zkb.cpp | 3 |
3 files changed, 17 insertions, 7 deletions
diff --git a/noncore/applets/zkbapplet/zkbwidget.cpp b/noncore/applets/zkbapplet/zkbwidget.cpp index 38bfba9..8499500 100644 --- a/noncore/applets/zkbapplet/zkbwidget.cpp +++ b/noncore/applets/zkbapplet/zkbwidget.cpp | |||
@@ -1,40 +1,47 @@ | |||
1 | #include <opie2/otaskbarapplet.h> | 1 | #include <opie2/otaskbarapplet.h> |
2 | #include <opie2/okeyfilter.h> | ||
2 | #include <qpe/qcopenvelope_qws.h> | 3 | #include <qpe/qcopenvelope_qws.h> |
3 | #include <qpe/applnk.h> | 4 | #include <qpe/applnk.h> |
4 | #include <qpe/qpeapplication.h> | 5 | #include <qpe/qpeapplication.h> |
5 | #include <qpe/resource.h> | 6 | #include <qpe/resource.h> |
6 | #include <stdio.h> | 7 | #include <stdio.h> |
7 | #include <unistd.h> | 8 | #include <unistd.h> |
8 | #include "zkbwidget.h" | 9 | #include "zkbwidget.h" |
9 | #include "zkbcfg.h" | 10 | #include "zkbcfg.h" |
10 | 11 | ||
11 | using namespace Opie::Ui; | 12 | using namespace Opie::Ui; |
12 | ZkbWidget::ZkbWidget(QWidget* parent):QLabel(parent),keymap(0), | 13 | |
13 | disabled(Resource::loadPixmap("zkb-disabled")) { | 14 | ZkbWidget::ZkbWidget(QWidget* parent) |
15 | :QLabel(parent),keymap(0),disabled(Resource::loadPixmap("zkb-disabled")) { | ||
14 | 16 | ||
15 | labels = new QPopupMenu(); | 17 | labels = new QPopupMenu(); |
16 | connect(labels, SIGNAL(activated(int)), this, | 18 | connect(labels, SIGNAL(activated(int)), this, |
17 | SLOT(labelChanged(int))); | 19 | SLOT(labelChanged(int))); |
18 | 20 | ||
19 | loadKeymap(); | 21 | loadKeymap(); |
20 | 22 | ||
21 | channel = new QCopChannel("QPE/zkb", this); | 23 | channel = new QCopChannel("QPE/zkb", this); |
22 | connect(channel, SIGNAL(received(const QCString&,const QByteArray&)), | 24 | connect(channel, SIGNAL(received(const QCString&,const QByteArray&)), |
23 | this, SLOT(signalReceived(const QCString&,const QByteArray&))); | 25 | this, SLOT(signalReceived(const QCString&,const QByteArray&))); |
24 | setFixedWidth ( AppLnk::smallIconSize() ); | 26 | setFixedWidth ( AppLnk::smallIconSize() ); |
25 | setFixedHeight ( AppLnk::smallIconSize() ); | 27 | setFixedHeight ( AppLnk::smallIconSize() ); |
26 | } | 28 | } |
27 | 29 | ||
28 | ZkbWidget::~ZkbWidget() { | 30 | ZkbWidget::~ZkbWidget() |
31 | { | ||
32 | if (keymap != 0) { | ||
33 | delete keymap; | ||
34 | keymap = 0; | ||
35 | } | ||
29 | } | 36 | } |
30 | 37 | ||
31 | int ZkbWidget::position() | 38 | int ZkbWidget::position() |
32 | { | 39 | { |
33 | return 8; | 40 | return 8; |
34 | } | 41 | } |
35 | 42 | ||
36 | bool ZkbWidget::loadKeymap() { | 43 | bool ZkbWidget::loadKeymap() { |
37 | ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb"); | 44 | ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb"); |
38 | QFontMetrics fm(font()); | 45 | QFontMetrics fm(font()); |
39 | 46 | ||
40 | if (keymap != 0) { | 47 | if (keymap != 0) { |
@@ -44,34 +51,36 @@ bool ZkbWidget::loadKeymap() { | |||
44 | 51 | ||
45 | Keymap* km = new Keymap(); | 52 | Keymap* km = new Keymap(); |
46 | 53 | ||
47 | if (!c.load("zkb.xml", *km, "")) { | 54 | if (!c.load("zkb.xml", *km, "")) { |
48 | delete km; | 55 | delete km; |
49 | setPixmap(disabled); | 56 | setPixmap(disabled); |
50 | return false; | 57 | return false; |
51 | } | 58 | } |
52 | 59 | ||
53 | connect(km, SIGNAL(stateChanged(const QString&)), | 60 | connect(km, SIGNAL(stateChanged(const QString&)), |
54 | this, SLOT(stateChanged(const QString&))); | 61 | this, SLOT(stateChanged(const QString&))); |
55 | 62 | ||
56 | qwsServer->setKeyboardFilter(km); | 63 | Opie::Core::OKeyFilter::inst()->addHandler(km); |
57 | 64 | ||
58 | Keymap* oldkm = keymap; | 65 | Keymap* oldkm = keymap; |
59 | keymap = km; | 66 | keymap = km; |
60 | 67 | ||
61 | if (oldkm != 0) { | 68 | if (oldkm != 0) { |
62 | delete oldkm; | 69 | delete oldkm; |
63 | } | 70 | } |
64 | 71 | ||
65 | setText(keymap->getCurrentLabel()); | 72 | QString ltext = keymap->getCurrentLabel(); |
73 | if (ltext.length()==0) ltext = "??"; | ||
74 | setText(ltext); | ||
66 | 75 | ||
67 | labels->clear(); | 76 | labels->clear(); |
68 | QStringList l = keymap->listLabels(); | 77 | QStringList l = keymap->listLabels(); |
69 | labels->insertItem(disabled, 0, 0); | 78 | labels->insertItem(disabled, 0, 0); |
70 | int n = 1; | 79 | int n = 1; |
71 | w = 0; | 80 | w = 0; |
72 | for(QStringList::Iterator it = l.begin(); it != l.end(); | 81 | for(QStringList::Iterator it = l.begin(); it != l.end(); |
73 | ++it, n++) { | 82 | ++it, n++) { |
74 | 83 | ||
75 | // printf("label: %s\n", (const char*) (*it).utf8()); | 84 | // printf("label: %s\n", (const char*) (*it).utf8()); |
76 | 85 | ||
77 | labels->insertItem(*it, n, n); | 86 | labels->insertItem(*it, n, n); |
@@ -148,14 +157,12 @@ void ZkbWidget::signalReceived(const QCString& msg, const QByteArray& data) { | |||
148 | } else if (msg == "debug(QString)") { | 157 | } else if (msg == "debug(QString)") { |
149 | QString flag; | 158 | QString flag; |
150 | stream >> flag; | 159 | stream >> flag; |
151 | } | 160 | } |
152 | } | 161 | } |
153 | 162 | ||
154 | void ZkbWidget::reload() { | 163 | void ZkbWidget::reload() { |
155 | loadKeymap(); | 164 | loadKeymap(); |
156 | QCopEnvelope("QPE/System", "notBusy()"); | 165 | QCopEnvelope("QPE/System", "notBusy()"); |
157 | } | 166 | } |
158 | 167 | ||
159 | EXPORT_OPIE_APPLET_v1( ZkbWidget ) | 168 | EXPORT_OPIE_APPLET_v1( ZkbWidget ) |
160 | |||
161 | |||
diff --git a/noncore/applets/zkbapplet/zkbwidget.h b/noncore/applets/zkbapplet/zkbwidget.h index 7c67794..9bce85a 100644 --- a/noncore/applets/zkbapplet/zkbwidget.h +++ b/noncore/applets/zkbapplet/zkbwidget.h | |||
diff --git a/noncore/apps/keyz-cfg/zkb.cpp b/noncore/apps/keyz-cfg/zkb.cpp index c9e1dc5..a357b88 100644 --- a/noncore/apps/keyz-cfg/zkb.cpp +++ b/noncore/apps/keyz-cfg/zkb.cpp | |||
@@ -1,16 +1,17 @@ | |||
1 | #include "zkb.h" | 1 | #include "zkb.h" |
2 | 2 | ||
3 | /* OPIE */ | 3 | /* OPIE */ |
4 | #include <opie2/odebug.h> | 4 | #include <opie2/odebug.h> |
5 | #include <opie2/okeyfilter.h> | ||
5 | 6 | ||
6 | #include <stdio.h> | 7 | #include <stdio.h> |
7 | 8 | ||
8 | // Implementation of Action class | 9 | // Implementation of Action class |
9 | Action::Action():state(0), keycode(0), unicode(0), flags(0) { | 10 | Action::Action():state(0), keycode(0), unicode(0), flags(0) { |
10 | } | 11 | } |
11 | 12 | ||
12 | Action::Action(State* s, ushort kc, ushort uni, int f): | 13 | Action::Action(State* s, ushort kc, ushort uni, int f): |
13 | state(s), keycode(kc), unicode(uni), flags(f) { | 14 | state(s), keycode(kc), unicode(uni), flags(f) { |
14 | } | 15 | } |
15 | 16 | ||
16 | Action::~Action() { | 17 | Action::~Action() { |
@@ -237,24 +238,26 @@ int State::translateKeycode(int keycode) const { | |||
237 | 238 | ||
238 | return -1; | 239 | return -1; |
239 | } | 240 | } |
240 | 241 | ||
241 | // Implementation of Keymap class | 242 | // Implementation of Keymap class |
242 | Keymap::Keymap():enabled(true), currentState(0), autoRepeatAction(0), repeater(this) { | 243 | Keymap::Keymap():enabled(true), currentState(0), autoRepeatAction(0), repeater(this) { |
243 | repeatDelay=400; | 244 | repeatDelay=400; |
244 | repeatPeriod=80; | 245 | repeatPeriod=80; |
245 | connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); | 246 | connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); |
246 | } | 247 | } |
247 | 248 | ||
248 | Keymap::~Keymap() { | 249 | Keymap::~Keymap() { |
250 | odebug << "removing keyboard filter for zkb"<<oendl; | ||
251 | Opie::Core::OKeyFilter::inst()->remHandler(this); | ||
249 | QMap<QString, State*>::Iterator it; | 252 | QMap<QString, State*>::Iterator it; |
250 | for(it = states.begin(); it != states.end(); ++it) { | 253 | for(it = states.begin(); it != states.end(); ++it) { |
251 | delete it.data(); | 254 | delete it.data(); |
252 | } | 255 | } |
253 | states.clear(); | 256 | states.clear(); |
254 | } | 257 | } |
255 | 258 | ||
256 | bool Keymap::filter(int unicode, int keycode, int modifiers, | 259 | bool Keymap::filter(int unicode, int keycode, int modifiers, |
257 | bool isPress, bool autoRepeat) { | 260 | bool isPress, bool autoRepeat) { |
258 | 261 | ||
259 | odebug << "filter: >>> unicode=" << unicode << ", keycode=" << keycode | 262 | odebug << "filter: >>> unicode=" << unicode << ", keycode=" << keycode |
260 | << ", modifiers=" << modifiers << ", ispressed=" << isPress << oendl; | 263 | << ", modifiers=" << modifiers << ", ispressed=" << isPress << oendl; |