#include "keys.h" #include "keys.moc" #include #include #include KeyData::KeyData(uint maxNb, uint nbActions, const ActionData *data, TQObject *parent) : TQObject(parent), _maxNb(maxNb) { _data.duplicate(data, nbActions); for (uint n=0; nsetEnabled(false); if ( slot==0 ) { SpecialData data; data.enabled = false; data.pressed = new TQSignal(this); data.pressed->connect(receiver, _data[k].slot); data.released = new TQSignal(this); data.released->connect(receiver, _data[k].slotRelease); _specActions[a] = data; } } _cols[index]->readShortcutSettings(group()); } void KeyData::setEnabled(uint index, bool enabled) { for (uint k=0; k<_cols[index]->count(); k++) { TQMap::Iterator it = _specActions.find(_cols[index]->action(k)); if ( it==_specActions.end() ) _cols[index]->action(k)->setEnabled(enabled); else (*it).enabled = enabled; } } void KeyData::addKeys(KKeyDialog &d) { for (uint i=0; i<_cols.size(); i++) d.insert(_cols[i], i18n("Shortcuts for player #%1/%2").arg(i+1) .arg(_cols.size())); } void KeyData::save() { for (uint i=0; i<_cols.size(); i++) _cols[i]->writeShortcutSettings(group()); } void KeyData::keyEvent(TQKeyEvent *e, bool pressed) { if ( e->isAutoRepeat() ) return; KKey key(e); TQMap::Iterator it = _specActions.begin(); for(; it!=_specActions.end(); ++it) { if ( !it.data().enabled ) continue; if ( !it.key()->shortcut().contains(key) ) continue; if (pressed) it.data().pressed->activate(); else it.data().released->activate(); } e->ignore(); }