static QAccelItem *find_key( QAccelList &list, int key, QChar ch ) { register QAccelItem *item = list.first(); while ( item ) { int k = item->key; int km = k & Qt::MODIFIER_MASK; QChar kc = QChar(k & 0xffff); if ( k & Qt::UNICODE_ACCEL ) { if ( km ) { // Modifiers must match... QChar c; if ( (key & Qt::CTRL) && (ch < ' ') ) c = ch.unicode()+'@'+' '; // Ctrl-A is ASCII 001, etc. else c = ch; if ( kc.lower() == c.lower() && (key & Qt::MODIFIER_MASK) == km ) break; else if ( kc.lower() == c.lower() && (key & (Qt::MODIFIER_MASK^Qt::SHIFT)) == km ) break; } else { // No modifiers requested, ignore Shift but require others... if ( kc == ch && (key & (Qt::MODIFIER_MASK^Qt::SHIFT)) == km ) break; } } else if ( k == key ) { break; } item = list.next(); } return item; }
QChar toLower(QChar c) { #if QT_VERSION>=0x040000 // QT4 code return c.toLower(); #else // QT3 code return c.lower(); #endif }
void AIMLParser::normalizeString(QString &str) { QString newStr; for (int i = 0; i < str.length(); i++) { QChar c = str.at(i); if (c.isLetterOrNumber() || (c == '*') || (c == '_') || (c == ' ')) newStr += c.lower(); } str = newStr; }
static QString processLocaleString(const QString &s) { QString res; uint pos = 0; while(pos < s.length()) { QChar c = s[pos++]; if(c == '<') { bool flag = false; uint hc = 0; while(pos < s.length()) { QChar cc = s[pos++]; uint _hc = 0; if(cc == '>') break; else if(cc.isDigit()) _hc = cc.digitValue(); else _hc = cc.lower().latin1() - 'a' + 10; if(flag) { hc |= _hc; res.append(QChar(hc)); hc = 0; } else hc = (_hc << 4); flag = !flag; } } else { res.append(c); } } return res; }
void KeyGrabDialog::setKeyStr() { QString keystr = QString::null; int keyval = pressed_keyval; ButtonState mod = pressed_keystate; /* * Ignore Shift modifier for printable char keys for * easy-to-recognize key configuration. uim-custom performs * implicit shift key encoding/decoding appropriately. */ if( ((keyval >= 256) || !isgraph(keyval)) && (mod & Qt::ShiftButton) ) keystr += "<Shift>"; if( mod & Qt::ControlButton ) keystr += "<Control>"; if( mod & Qt::AltButton ) keystr += "<Alt>"; if( mod & Qt::MetaButton ) keystr += "<Meta>"; switch( keyval ) { case Qt::Key_Space: keystr += "space"; break; case Qt::Key_BackSpace: keystr += "backspace"; break; case Qt::Key_Delete: keystr += "delete"; break; case Qt::Key_Insert: keystr += "insert"; break; case Qt::Key_Escape: keystr += "escape"; break; case Qt::Key_Tab: keystr += "tab"; break; case Qt::Key_Return: keystr += "return"; break; case Qt::Key_Left: keystr += "left"; break; case Qt::Key_Up: keystr += "up"; break; case Qt::Key_Right: keystr += "right"; break; case Qt::Key_Down: keystr += "down"; break; case Qt::Key_Prior: keystr += "prior"; break; case Qt::Key_Next: keystr += "next"; break; case Qt::Key_Home: keystr += "home"; break; case Qt::Key_End: keystr += "end"; break; #ifdef QT_IMMODULE case Qt::Key_Multi_key: keystr += "Multi_key"; break; case Qt::Key_Codeinput: keystr += "codeinput"; break; case Qt::Key_SingleCandidate: keystr += "single-candidate"; break; case Qt::Key_MultipleCandidate: keystr += "multiple-candidate"; break; case Qt::Key_PreviousCandidate: keystr += "previous-candidate"; break; case Qt::Key_Mode_switch: keystr += "Mode_switch"; break; case Qt::Key_Kanji: keystr += "Kanji"; break; case Qt::Key_Muhenkan: keystr += "Muhenkan"; break; case Qt::Key_Henkan: keystr += "Henkan_Mode"; break; case Qt::Key_Romaji: keystr += "romaji"; break; case Qt::Key_Hiragana: keystr += "hiragana"; break; case Qt::Key_Katakana: keystr += "katakana"; break; case Qt::Key_Hiragana_Katakana: keystr += "hiragana-katakana"; break; case Qt::Key_Zenkaku: keystr += "zenkaku"; break; case Qt::Key_Hankaku: keystr += "hankaku"; break; case Qt::Key_Zenkaku_Hankaku: keystr += "zenkaku-hankaku"; break; case Qt::Key_Touroku: keystr += "touroku"; break; case Qt::Key_Massyo: keystr += "massyo"; break; case Qt::Key_Kana_Lock: keystr += "kana-lock"; break; case Qt::Key_Kana_Shift: keystr += "kana-shift"; break; case Qt::Key_Eisu_Shift: keystr += "eisu-shift"; break; case Qt::Key_Eisu_toggle: keystr += "eisu-toggle"; break; case Qt::Key_Hangul: keystr += "hangul"; break; case Qt::Key_Hangul_Start: keystr += "hangul-start"; break; case Qt::Key_Hangul_End: keystr += "hangul-end"; break; case Qt::Key_Hangul_Hanja: keystr += "hangul-hanja"; break; case Qt::Key_Hangul_Jamo: keystr += "hangul-jamo"; break; case Qt::Key_Hangul_Romaja: keystr += "hangul-romaja"; break; case Qt::Key_Hangul_Jeonja: keystr += "hangul-jeonja"; break; case Qt::Key_Hangul_Banja: keystr += "hangul-banja"; break; case Qt::Key_Hangul_PreHanja: keystr += "hangul-prehanja"; break; case Qt::Key_Hangul_PostHanja: keystr += "hangul-prosthanja"; break; case Qt::Key_Hangul_Special: keystr += "hangul-special"; break; case Qt::Key_Dead_Grave: keystr += "dead-grave"; break; case Qt::Key_Dead_Acute: keystr += "dead-acute"; break; case Qt::Key_Dead_Circumflex: keystr += "dead-circumflex"; break; case Qt::Key_Dead_Tilde: keystr += "dead-tilde"; break; case Qt::Key_Dead_Macron: keystr += "dead-macron"; break; case Qt::Key_Dead_Breve: keystr += "dead-breve"; break; case Qt::Key_Dead_Abovedot: keystr += "dead-abovedot"; break; case Qt::Key_Dead_Diaeresis: keystr += "dead-diaeresis"; break; case Qt::Key_Dead_Abovering: keystr += "dead-abovering"; break; case Qt::Key_Dead_Doubleacute: keystr += "dead-doubleacute"; break; case Qt::Key_Dead_Caron: keystr += "dead-caron"; break; case Qt::Key_Dead_Cedilla: keystr += "dead-cedilla"; break; case Qt::Key_Dead_Ogonek: keystr += "dead-ogonek"; break; case Qt::Key_Dead_Iota: keystr += "dead-iota"; break; case Qt::Key_Dead_Voiced_Sound: keystr += "dead-voiced-sound"; break; case Qt::Key_Dead_Semivoiced_Sound: keystr += "dead-semivoiced-sound"; break; case Qt::Key_Dead_Belowdot: keystr += "dead-belowdot"; break; case Qt::Key_Dead_Hook: keystr += "dead-hook"; break; case Qt::Key_Dead_Horn: keystr += "dead-horn"; break; #endif /* Def: QT_IMMODULE */ case Qt::Key_Shift: keystr += "Shift_key"; break; case Qt::Key_Control: keystr += "Control_key"; break; case Qt::Key_Alt: keystr += "Alt_key"; break; case Qt::Key_Meta: keystr += "Meta_key"; break; case Qt::Key_Super_L: case Qt::Key_Super_R: keystr += "Super_key"; break; case Qt::Key_Hyper_L: case Qt::Key_Hyper_R: keystr += "Hyper_key"; break; case Qt::Key_CapsLock: keystr += "caps-lock"; break; case Qt::Key_NumLock: keystr += "num-lock"; break; case Qt::Key_ScrollLock: keystr += "scroll-lock"; break; case Qt::Key_unknown: keystr += unicodeKeyToSymStr ( pressed_unichar ); break; default: if( keyval >= Qt::Key_F1 && keyval <= Qt::Key_F35 ) { keystr += "F" + QString::number( keyval - Qt::Key_F1 + 1 ); break; } else if( keyval < 256 ) { QChar ch = QChar( keyval ); if( mod & Qt::ShiftButton ) ch = ch.upper(); else ch = ch.lower(); keystr += ch; } } m_keystr = keystr; }