summaryrefslogtreecommitdiff
path: root/noncore/apps/keyz-cfg
Side-by-side diff
Diffstat (limited to 'noncore/apps/keyz-cfg') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/keyz-cfg/zkb.cpp716
1 files changed, 358 insertions, 358 deletions
diff --git a/noncore/apps/keyz-cfg/zkb.cpp b/noncore/apps/keyz-cfg/zkb.cpp
index 58bde2a..c9e1dc5 100644
--- a/noncore/apps/keyz-cfg/zkb.cpp
+++ b/noncore/apps/keyz-cfg/zkb.cpp
@@ -1,4 +1,8 @@
#include "zkb.h"
+
+/* OPIE */
+#include <opie2/odebug.h>
+
#include <stdio.h>
// Implementation of Action class
@@ -6,584 +10,580 @@ Action::Action():state(0), keycode(0), unicode(0), flags(0) {
}
Action::Action(State* s, ushort kc, ushort uni, int f):
- state(s), keycode(kc), unicode(uni), flags(f) {
+ state(s), keycode(kc), unicode(uni), flags(f) {
}
Action::~Action() {
}
State* Action::getState() const {
- return state;
+ return state;
}
void Action::setState(State* s) {
- state = s;
- setDefined(true);
+ state = s;
+ setDefined(true);
}
bool Action::hasEvent() const {
- return flags & Event;
+ return flags & Event;
}
void Action::setEvent(bool e) {
- flags = (flags & ~Event) | ((e) ? Event : 0);
+ flags = (flags & ~Event) | ((e) ? Event : 0);
- if (e) {
- setDefined(true);
- } else {
- if (state == 0) {
- setDefined(false);
- }
- }
+ if (e) {
+ setDefined(true);
+ } else {
+ if (state == 0) {
+ setDefined(false);
+ }
+ }
}
bool Action::isDefined() const {
- return flags & Defined;
+ return flags & Defined;
}
void Action::setDefined(bool d) {
- flags = (flags & ~Defined) | ((d) ? Defined : 0);
+ flags = (flags & ~Defined) | ((d) ? Defined : 0);
}
int Action::getKeycode() const {
- return keycode;
+ return keycode;
}
void Action::setKeycode(int c) {
- keycode = (ushort) c;
- setEvent(true);
+ keycode = (ushort) c;
+ setEvent(true);
}
int Action::getUnicode() const {
- return unicode;
+ return unicode;
}
void Action::setUnicode(int u) {
- unicode = (ushort) u;
- setEvent(true);
+ unicode = (ushort) u;
+ setEvent(true);
}
int Action::getModifiers() const {
- int ret = 0;
- if (flags & Shift_Mod) {
- ret |= Qt::ShiftButton;
- }
+ int ret = 0;
+ if (flags & Shift_Mod) {
+ ret |= Qt::ShiftButton;
+ }
- if (flags & Ctrl_Mod) {
- ret |= Qt::ControlButton;
- }
+ if (flags & Ctrl_Mod) {
+ ret |= Qt::ControlButton;
+ }
- if (flags & Alt_Mod) {
- ret |= Qt::AltButton;
- }
+ if (flags & Alt_Mod) {
+ ret |= Qt::AltButton;
+ }
- if (flags & Keypad_Mod) {
- ret |= Qt::Keypad;
- }
+ if (flags & Keypad_Mod) {
+ ret |= Qt::Keypad;
+ }
- return ret;
+ return ret;
}
void Action::setModifiers(int m) {
- int n = 0;
+ int n = 0;
- if (m & Qt::ShiftButton) {
- n |= Shift_Mod;
- }
+ if (m & Qt::ShiftButton) {
+ n |= Shift_Mod;
+ }
- if (m & Qt::ControlButton) {
- n |= Ctrl_Mod;
- }
+ if (m & Qt::ControlButton) {
+ n |= Ctrl_Mod;
+ }
- if (m & Qt::AltButton) {
- n |= Alt_Mod;
- }
+ if (m & Qt::AltButton) {
+ n |= Alt_Mod;
+ }
- if (m & Qt::Keypad) {
- n |= Keypad_Mod;
- }
+ if (m & Qt::Keypad) {
+ n |= Keypad_Mod;
+ }
- flags = flags & ~Mod_Bits | n;
- setEvent(true);
+ flags = flags & ~Mod_Bits | n;
+ setEvent(true);
}
bool Action::isPressed() const {
- return (flags & Press) != 0;
+ return (flags & Press) != 0;
}
void Action::setPressed(bool p) {
- flags = (flags & ~Press) | ((p) ? Press : 0);
- setEvent(true);
+ flags = (flags & ~Press) | ((p) ? Press : 0);
+ setEvent(true);
}
bool Action::isAutorepeat() const {
- return (flags & Autorepeat) != 0;
+ return (flags & Autorepeat) != 0;
}
void Action::setAutorepeat(bool p) {
- flags = (flags & ~Autorepeat) | ((p) ? Autorepeat : 0);
- setEvent(true);
+ flags = (flags & ~Autorepeat) | ((p) ? Autorepeat : 0);
+ setEvent(true);
}
// Implementation of State class
const short State::x1[] = { /* from 0x20 to 0x5f */
- 31, 0, 28, 3, 5, 6, 9, 28, /* 0x20 - 0x27 */
- 11, 26, 10, 13, 26, 1, 29, 27, /* 0x28 - 0x2f */
- 15, 16, 22, 4, 17, 19, 24, 20, /* 0x30 - 0x37 */
- 8, 14, 29, 26, 29, 12, 32, 27, /* 0x38 - 0x3f */
- 18, 0, 1, 2, 3, 4, 5, 6, /* 0x40 - 0x47 */
- 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48 - 0x4f */
- 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50 - 0x57 */
- 23, 24, 25, 30, -1, 26, 28, 7, /* 0x58 - 0x5f */
- 31, -1, -1, -1, -1, -1, -1, -1, /* 0x60 - 0x67 */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68 - 0x6f */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70 - 0x77 */
- -1, -1, -1, 29, 31, 32, 32, 28, /* 0x78 - 0x7f */
+ 31, 0, 28, 3, 5, 6, 9, 28, /* 0x20 - 0x27 */
+ 11, 26, 10, 13, 26, 1, 29, 27, /* 0x28 - 0x2f */
+ 15, 16, 22, 4, 17, 19, 24, 20, /* 0x30 - 0x37 */
+ 8, 14, 29, 26, 29, 12, 32, 27, /* 0x38 - 0x3f */
+ 18, 0, 1, 2, 3, 4, 5, 6, /* 0x40 - 0x47 */
+ 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48 - 0x4f */
+ 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50 - 0x57 */
+ 23, 24, 25, 30, -1, 26, 28, 7, /* 0x58 - 0x5f */
+ 31, -1, -1, -1, -1, -1, -1, -1, /* 0x60 - 0x67 */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68 - 0x6f */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70 - 0x77 */
+ -1, -1, -1, 29, 31, 32, 32, 28, /* 0x78 - 0x7f */
};
const short State::x2[] = { /* from 0x1000 to 0x1057*/
- 42, 36, -1, 30, 32, -1, -1, -1, /* 0x1000 - 0x1007 */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1008 - 0x100f */
- -1, -1, 44, 45, 46, 47, -1, -1, /* 0x1010 - 0x1017 */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1018 - 0x101f */
- 33, 35, 34, -1, 36, 27, -1, -1, /* 0x1020 - 0x1027 */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1028 - 0x102f */
- -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1030 - 0x1037 */
- 37, 38, 40, 39, 41, -1, -1, -1, /* 0x1038 - 0x103f */
- -1, -1, -1, -1, -1, 35, -1, -1, /* 0x1040 - 0x1047 */
- -1, -1, -1, -1, -1, 48, -1, -1, /* 0x1048 - 0x104f */
- 43, 49, 50, -1, -1, -1, -1, -1, /* 0x1050 - 0x1057 */
+ 42, 36, -1, 30, 32, -1, -1, -1, /* 0x1000 - 0x1007 */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1008 - 0x100f */
+ -1, -1, 44, 45, 46, 47, -1, -1, /* 0x1010 - 0x1017 */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1018 - 0x101f */
+ 33, 35, 34, -1, 36, 27, -1, -1, /* 0x1020 - 0x1027 */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1028 - 0x102f */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1030 - 0x1037 */
+ 37, 38, 40, 39, 41, -1, -1, -1, /* 0x1038 - 0x103f */
+ -1, -1, -1, -1, -1, 35, -1, -1, /* 0x1040 - 0x1047 */
+ -1, -1, -1, -1, -1, 48, -1, -1, /* 0x1048 - 0x104f */
+ 43, 49, 50, -1, -1, -1, -1, -1, /* 0x1050 - 0x1057 */
};
-
+
State::State(State* p):parent(p), keys(0) {
- keys = new Action[Key_Max * 2 + 1];
+ keys = new Action[Key_Max * 2 + 1];
}
State::State(const State& s) {
- parent = s.parent;
- keys = new Action[Key_Max * 2 + 1];
- memcpy(keys, s.keys, sizeof(Action) * (Key_Max * 2 + 1));
+ parent = s.parent;
+ keys = new Action[Key_Max * 2 + 1];
+ memcpy(keys, s.keys, sizeof(Action) * (Key_Max * 2 + 1));
}
State::~State() {
- if (keys!=0) {
- delete [] keys;
- }
+ if (keys!=0) {
+ delete [] keys;
+ }
}
Action* State::get(int keycode, bool pressed, bool follow) const {
- Action* ret = 0;
- int n = translateKeycode(keycode);
+ Action* ret = 0;
+ int n = translateKeycode(keycode);
- if (n != -1 && keys != 0) {
- if (pressed) {
- n += Key_Max;
- }
- ret = &keys[n];
- }
+ if (n != -1 && keys != 0) {
+ if (pressed) {
+ n += Key_Max;
+ }
+ ret = &keys[n];
+ }
- if (ret==0 || !ret->isDefined()) {
- if (follow && parent!=0) {
- ret = parent->get(keycode, pressed, follow);
- }
- }
+ if (ret==0 || !ret->isDefined()) {
+ if (follow && parent!=0) {
+ ret = parent->get(keycode, pressed, follow);
+ }
+ }
- return ret;
+ return ret;
}
bool State::set(int keycode, bool pressed, Action& action) {
- int n = translateKeycode(keycode);
+ int n = translateKeycode(keycode);
- if (n==-1 || keys==0) {
- return false;
- }
+ if (n==-1 || keys==0) {
+ return false;
+ }
- if (pressed) {
- n += Key_Max + 1;
- }
+ if (pressed) {
+ n += Key_Max + 1;
+ }
- keys[n] = action;
- return true;
+ keys[n] = action;
+ return true;
}
State* State::getParent() const {
- return parent;
+ return parent;
}
void State::setParent(State* s) {
- parent = s;
+ parent = s;
}
int State::translateKeycode(int keycode) const {
- if (keycode < 0x20) {
- return -1;
- }
+ if (keycode < 0x20) {
+ return -1;
+ }
- if (keycode < 0x80) {
- return x1[keycode - 0x20];
- }
+ if (keycode < 0x80) {
+ return x1[keycode - 0x20];
+ }
- if (keycode < 0x1000) {
- return -1;
- }
+ if (keycode < 0x1000) {
+ return -1;
+ }
- if (keycode < 0x1057) {
- return x2[keycode - 0x1000];
- }
+ if (keycode < 0x1057) {
+ return x2[keycode - 0x1000];
+ }
- return -1;
+ return -1;
}
// Implementation of Keymap class
Keymap::Keymap():enabled(true), currentState(0), autoRepeatAction(0), repeater(this) {
- repeatDelay=400;
- repeatPeriod=80;
- connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
+ repeatDelay=400;
+ repeatPeriod=80;
+ connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
}
Keymap::~Keymap() {
- QMap<QString, State*>::Iterator it;
- for(it = states.begin(); it != states.end(); ++it) {
- delete it.data();
- }
- states.clear();
+ QMap<QString, State*>::Iterator it;
+ for(it = states.begin(); it != states.end(); ++it) {
+ delete it.data();
+ }
+ states.clear();
}
bool Keymap::filter(int unicode, int keycode, int modifiers,
- bool isPress, bool autoRepeat) {
+ bool isPress, bool autoRepeat) {
- qDebug("filter: >>> unicode=%x, keycode=%x, modifiers=%x, "
- "ispressed=%x\n", unicode, keycode, modifiers, isPress);
+ odebug << "filter: >>> unicode=" << unicode << ", keycode=" << keycode
+ << ", modifiers=" << modifiers << ", ispressed=" << isPress << oendl;
- if (!enabled) {
- return false;
- }
+ if (!enabled) {
+ return false;
+ }
- // the second check is workaround to make suspend work if
- // the user pressed it right after he did resume. for some
- // reason the event sent by qt has autoRepeat true in this
- // case
- if (autoRepeat && keycode != 4177) {
- return true;
- }
+ // the second check is workaround to make suspend work if
+ // the user pressed it right after he did resume. for some
+ // reason the event sent by qt has autoRepeat true in this
+ // case
+ if (autoRepeat && keycode != 4177) {
+ return true;
+ }
- (void) unicode; (void) modifiers;
+ (void) unicode; (void) modifiers;
- Action* action = currentState->get(keycode, isPress, true);
- if (action==0 || !action->isDefined()) {
- return true;
- }
+ Action* action = currentState->get(keycode, isPress, true);
+ if (action==0 || !action->isDefined()) {
+ return true;
+ }
- if (action->hasEvent()) {
- qDebug("filter:<<< unicode=%x, keycode=%x, modifiers=%x, "
- "ispressed=%x\n", action->getUnicode(),
- action->getKeycode(), action->getModifiers(),
- action->isPressed());
+ if (action->hasEvent()) {
+ odebug << "filter:<<< unicode=" << action->getUnicode() << ", keycode=" << action->getKeycode()
+ << ", modifiers=" << action->getModifiers() << ", ispressed=" << action->isPressed() << oendl;
- QWSServer::sendKeyEvent(action->getUnicode(),
- action->getKeycode(), action->getModifiers(),
- action->isPressed(), false);
- }
+ QWSServer::sendKeyEvent(action->getUnicode(),
+ action->getKeycode(), action->getModifiers(),
+ action->isPressed(), false);
+ }
- if (action->isAutorepeat()) {
- autoRepeatAction = action;
- repeater.start(repeatDelay, TRUE);
- } else {
- autoRepeatAction = 0;
- }
+ if (action->isAutorepeat()) {
+ autoRepeatAction = action;
+ repeater.start(repeatDelay, TRUE);
+ } else {
+ autoRepeatAction = 0;
+ }
- State* nstate = action->getState();
- if (nstate != 0) {
- setCurrentState(nstate);
- QString lbl = getCurrentLabel();
- if (!lbl.isEmpty()) {
- emit stateChanged(lbl);
- }
- }
+ State* nstate = action->getState();
+ if (nstate != 0) {
+ setCurrentState(nstate);
+ QString lbl = getCurrentLabel();
+ if (!lbl.isEmpty()) {
+ emit stateChanged(lbl);
+ }
+ }
- return true;
+ return true;
}
void Keymap::enable() {
- enabled = true;
+ enabled = true;
}
void Keymap::disable() {
- enabled = false;
+ enabled = false;
}
QStringList Keymap::listStates() {
- QStringList ret;
+ QStringList ret;
- QMap<QString, State*>::Iterator it;
- for(it = states.begin(); it != states.end(); ++it) {
- ret.append(it.key());
- }
+ QMap<QString, State*>::Iterator it;
+ for(it = states.begin(); it != states.end(); ++it) {
+ ret.append(it.key());
+ }
- return ret;
+ return ret;
}
State* Keymap::getStateByName(const QString& name) {
- QMap<QString, State*>::Iterator it = states.find(name);
+ QMap<QString, State*>::Iterator it = states.find(name);
- if (it == states.end()) {
- return 0;
- }
+ if (it == states.end()) {
+ return 0;
+ }
- return it.data();
+ return it.data();
}
QStringList Keymap::listLabels() {
- QStringList ret;
+ QStringList ret;
- for(uint i = 0; i < labelList.count(); i++) {
- ret.append(*labelList.at(i));
- }
+ for(uint i = 0; i < labelList.count(); i++) {
+ ret.append(*labelList.at(i));
+ }
- return ret;
+ return ret;
}
State* Keymap::getStateByLabel(const QString& label) {
- QMap<QString, QString>::Iterator lit = labels.find(label);
- State* state = 0;
+ QMap<QString, QString>::Iterator lit = labels.find(label);
+ State* state = 0;
- if (lit == labels.end()) {
- return 0;
- }
+ if (lit == labels.end()) {
+ return 0;
+ }
- QString name = lit.data();
+ QString name = lit.data();
- int n = name.find(":*");
- if (n>=0 && n==(int)(name.length()-2)) {
- name=name.left(name.length() - 1);
+ int n = name.find(":*");
+ if (n>=0 && n==(int)(name.length()-2)) {
+ name=name.left(name.length() - 1);
- n = currentStateName.findRev(":");
- if (n >= 0) {
- name += currentStateName.mid(n+1);
- }
- }
+ n = currentStateName.findRev(":");
+ if (n >= 0) {
+ name += currentStateName.mid(n+1);
+ }
+ }
-// odebug << "look for: " << name.utf8() << "\n" << oendl;
- QMap<QString, State*>::Iterator sit = states.find(name);
- if (sit != states.end()) {
- state = sit.data();
- }
+// odebug << "look for: " << name.utf8() << "\n" << oendl;
+ QMap<QString, State*>::Iterator sit = states.find(name);
+ if (sit != states.end()) {
+ state = sit.data();
+ }
- return state;
+ return state;
}
bool Keymap::addState(const QString& name, State* state) {
- if (states.find(name) != states.end()) {
- return false;
- }
+ if (states.find(name) != states.end()) {
+ return false;
+ }
- states.insert(name, state);
- lsmapInSync = false;
+ states.insert(name, state);
+ lsmapInSync = false;
- if (currentState == 0) {
- setCurrentState(state);
- }
+ if (currentState == 0) {
+ setCurrentState(state);
+ }
- return true;
+ return true;
}
State* Keymap::getCurrentState() const {
- return currentState;
+ return currentState;
}
QString Keymap::getCurrentLabel() {
- return currentLabel;
+ return currentLabel;
}
bool Keymap::setCurrentState(State* state) {
- QMap<QString, State*>::Iterator it;
- for(it = states.begin(); it != states.end(); ++it) {
- State* s = it.data();
- if (s == state) {
- currentState = s;
- currentStateName = it.key();
+ QMap<QString, State*>::Iterator it;
+ for(it = states.begin(); it != states.end(); ++it) {
+ State* s = it.data();
+ if (s == state) {
+ currentState = s;
+ currentStateName = it.key();
- qDebug("state changed: %s\n", (const char*)
- currentStateName.utf8());
+ odebug << "state changed: " << (const char*)currentStateName.utf8() << oendl;
- if (!lsmapInSync) {
- generateLabelStateMaps();
- }
+ if (!lsmapInSync) {
+ generateLabelStateMaps();
+ }
- QMap<State*, QString>::Iterator tit;
- tit = stateLabelMap.find(state);
- if (tit != stateLabelMap.end()) {
- currentLabel = tit.data();
- } else {
-// odebug << "no label for: " + currentStateName + "\n" << oendl;
- currentLabel = "";
- }
+ QMap<State*, QString>::Iterator tit;
+ tit = stateLabelMap.find(state);
+ if (tit != stateLabelMap.end()) {
+ currentLabel = tit.data();
+ } else {
+// odebug << "no label for: " + currentStateName + "\n" << oendl;
+ currentLabel = "";
+ }
- return true;
- }
- }
+ return true;
+ }
+ }
- return false;
+ return false;
}
bool Keymap::removeState(const QString& name, bool force) {
- QMap<QString, State*>::Iterator it = states.find(name);
+ QMap<QString, State*>::Iterator it = states.find(name);
- if (it == states.end()) {
- return false;
- }
+ if (it == states.end()) {
+ return false;
+ }
- State* state = it.data();
- QList<Action> acts = findStateUsage(state);
+ State* state = it.data();
+ QList<Action> acts = findStateUsage(state);
- if (!acts.isEmpty()) {
- if (!force) {
- return false;
- } else {
- for(Action* a = acts.first(); a != 0; a = acts.next()) {
- a->setState(0);
- }
- }
- }
+ if (!acts.isEmpty()) {
+ if (!force) {
+ return false;
+ } else {
+ for(Action* a = acts.first(); a != 0; a = acts.next()) {
+ a->setState(0);
+ }
+ }
+ }
- if (state == currentState) {
- if (states.begin() != states.end()) {
- setCurrentState(states.begin().data());
- }
- }
+ if (state == currentState) {
+ if (states.begin() != states.end()) {
+ setCurrentState(states.begin().data());
+ }
+ }
- states.remove(it);
- delete state;
+ states.remove(it);
+ delete state;
- lsmapInSync = false;
+ lsmapInSync = false;
- return true;
+ return true;
}
void Keymap::autoRepeat() {
- if (autoRepeatAction != 0) {
- qDebug("filter:<<< unicode=%x, keycode=%x, modifiers=%x, "
- "ispressed=%x\n", autoRepeatAction->getUnicode(),
- autoRepeatAction->getKeycode(),
- autoRepeatAction->getModifiers(),
- autoRepeatAction->isPressed());
+ if (autoRepeatAction != 0) {
+ odebug << "filter:<<< unicode=" << autoRepeatAction->getUnicode()
+ << ", keycode=" << autoRepeatAction->getKeycode()
+ << ", modifiers=" << autoRepeatAction->getModifiers()
+ << "ispressed=" << autoRepeatAction->isPressed() << oendl;
- QWSServer::sendKeyEvent(autoRepeatAction->getUnicode(),
- autoRepeatAction->getKeycode(),
- autoRepeatAction->getModifiers(),
- autoRepeatAction->isPressed(), true);
- }
+ QWSServer::sendKeyEvent(autoRepeatAction->getUnicode(),
+ autoRepeatAction->getKeycode(),
+ autoRepeatAction->getModifiers(),
+ autoRepeatAction->isPressed(), true);
+ }
- repeater.start(repeatPeriod, TRUE);
+ repeater.start(repeatPeriod, TRUE);
}
bool Keymap::addLabel(const QString& label, const QString& state, int index) {
- if (labels.find(label) != labels.end()) {
- return false;
- }
+ if (labels.find(label) != labels.end()) {
+ return false;
+ }
- labels.insert(label, state);
- const QString& l = labels.find(label).key();
- if (index == -1) {
- labelList.append(l);
- } else {
- labelList.insert(labelList.at(index), l);
- }
+ labels.insert(label, state);
+ const QString& l = labels.find(label).key();
+ if (index == -1) {
+ labelList.append(l);
+ } else {
+ labelList.insert(labelList.at(index), l);
+ }
- lsmapInSync = false;
+ lsmapInSync = false;
- return true;
+ return true;
}
bool Keymap::removeLabel(const QString& label) {
- if (labels.find(label) == labels.end()) {
- return false;
- }
+ if (labels.find(label) == labels.end()) {
+ return false;
+ }
- labels.remove(label);
- labelList.remove(label);
- lsmapInSync = false;
+ labels.remove(label);
+ labelList.remove(label);
+ lsmapInSync = false;
- if (label == currentLabel) {
- currentLabel = "";
- }
+ if (label == currentLabel) {
+ currentLabel = "";
+ }
- return true;
+ return true;
}
int Keymap::getAutorepeatDelay() const {
- return repeatDelay;
+ return repeatDelay;
}
void Keymap::setAutorepeatDelay(int n) {
- repeatDelay = n;
+ repeatDelay = n;
}
int Keymap::getAutorepeatPeriod() const {
- return repeatPeriod;
+ return repeatPeriod;
}
void Keymap::setAutorepeatPeriod(int n) {
- repeatPeriod = n;
+ repeatPeriod = n;
}
QList<Action> Keymap::findStateUsage(State* s) {
- QList<Action> ret;
+ QList<Action> ret;
- QMap<QString, State*>::Iterator it;
- for(it = states.begin(); it != states.end(); ++it) {
- State* state = it.data();
+ QMap<QString, State*>::Iterator it;
+ for(it = states.begin(); it != states.end(); ++it) {
+ State* state = it.data();
- for(int i = 0; i < 0x1100; i++) {
- Action* action = state->get(i, false);
- if (action!=0 && action->getState()==s) {
- ret.append(action);
- }
+ for(int i = 0; i < 0x1100; i++) {
+ Action* action = state->get(i, false);
+ if (action!=0 && action->getState()==s) {
+ ret.append(action);
+ }
- action = state->get(i, true);
- if (action!=0 && action->getState()==s) {
- ret.append(action);
- }
- }
- }
+ action = state->get(i, true);
+ if (action!=0 && action->getState()==s) {
+ ret.append(action);
+ }
+ }
+ }
- return ret;
+ return ret;
}
void Keymap::generateLabelStateMaps() {
- stateLabelMap.clear();
-
- QMap<QString, QString>::Iterator lit;
- for(lit = labels.begin(); lit != labels.end(); ++lit) {
- QString label = lit.key();
- QString name = lit.data();
-
- bool wc = false;
- int n = name.find("*");
- if (n>=0 && n==(int)(name.length()-1)) {
- name=name.left(name.length() - 1);
- wc = true;
- }
-
- QMap<QString, State*>::Iterator sit;
- for(sit = states.begin(); sit != states.end(); ++sit) {
- QString sname = sit.key();
- State* state = sit.data();
-
- if (sname.length() < name.length()) {
- continue;
- }
-
- if (sname.left(name.length()) == name) {
- if (wc || sname.length()==name.length()) {
- stateLabelMap.insert(state, label);
- }
-
- }
- }
- }
-
- lsmapInSync = true;
+ stateLabelMap.clear();
+
+ QMap<QString, QString>::Iterator lit;
+ for(lit = labels.begin(); lit != labels.end(); ++lit) {
+ QString label = lit.key();
+ QString name = lit.data();
+
+ bool wc = false;
+ int n = name.find("*");
+ if (n>=0 && n==(int)(name.length()-1)) {
+ name=name.left(name.length() - 1);
+ wc = true;
+ }
+
+ QMap<QString, State*>::Iterator sit;
+ for(sit = states.begin(); sit != states.end(); ++sit) {
+ QString sname = sit.key();
+ State* state = sit.data();
+
+ if (sname.length() < name.length()) {
+ continue;
+ }
+
+ if (sname.left(name.length()) == name) {
+ if (wc || sname.length()==name.length()) {
+ stateLabelMap.insert(state, label);
+ }
+
+ }
+ }
+ }
+
+ lsmapInSync = true;
}