void searchTargetFromScreen(QEditor *editor, const QChar &target) { m_targetPos.clear(); if (editor == NULL) { return; } m_currentGroup = 0; m_targetChar = target; QTextDocument *doc = editor->document(); int cursorPos = editor->textCursor().position(); QPair<int, int> visibleRange = getFirstAndLastVisiblePosition(editor); int firstPos = visibleRange.first; int lastPos = visibleRange.second; bool notCaseSensative = target.category() != QChar::Letter_Uppercase; for (int offset = 1; cursorPos - offset >= firstPos || cursorPos + offset <= lastPos; offset++) { if (cursorPos + offset <= lastPos) { QChar c = doc->characterAt(cursorPos + offset); if (notCaseSensative) { c = c.toLower(); } if (c == target) { m_targetPos << (cursorPos + offset); } } if (cursorPos - offset >= firstPos) { QChar c = doc->characterAt(cursorPos - offset); if (notCaseSensative) { c = c.toLower(); } if (c == target) { m_targetPos << (cursorPos - offset); } } } }
bool DOM::strcasecmp(const DOMStringImpl* a, const DOMStringImpl* b) { if (!(a && b)) return (a && a->l) || (b && b->l); if (a->l != b->l) return true; QChar* ai = a->s; QChar* bi = b->s; int l = a->l; while (l--) { if (*ai != *bi && ai->toLower() != bi->toLower()) return true; ++ai, ++bi; } return false; }
void QOpenKODEWindow::processKeyEvents(const KDEvent *event) { #ifdef KD_ATX_keyboard //KD_KEY_PRESS_ATX 1 QEvent::Type keyPressed = QEvent::KeyRelease; if (event->data.keyboardInputKey.flags) keyPressed = QEvent::KeyPress; //KD_KEY_LOCATION_LEFT_ATX // don't care for now //KD_KEY_LOCATION_RIGHT_ATX //KD_KEY_LOCATION_NUMPAD_ATX Qt::KeyboardModifiers mod = Qt::NoModifier; int openkodeMods = event->data.keyboardInputKey.flags; if (openkodeMods & KD_KEY_MODIFIER_SHIFT_ATX) mod |= Qt::ShiftModifier; if (openkodeMods & KD_KEY_MODIFIER_CTRL_ATX) mod |= Qt::ControlModifier; if (openkodeMods & KD_KEY_MODIFIER_ALT_ATX) mod |= Qt::AltModifier; if (openkodeMods & KD_KEY_MODIFIER_META_ATX) mod |= Qt::MetaModifier; Qt::Key qtKey; QChar keyText; int key = event->data.keyboardInputKey.keycode; if (key >= 0x20 && key <= 0x0ff){ // 8 bit printable Latin1 qtKey = Qt::Key(key); keyText = QChar(event->data.keyboardInputKeyChar.character); if (!(mod & Qt::ShiftModifier)) keyText = keyText.toLower(); } else { qtKey = keyTranslator(key); } QWindowSystemInterface::handleKeyEvent(0,event->timestamp,keyPressed,qtKey,mod,keyText); #endif }
bool CChinesePinyinTable::initTable() { bool value_ret = false; int num_records = sizeof(p2h)/sizeof(p2h[0]); int i=0; if(!openDatabase()) { value_ret = DataBaseNotOpen; } else { QSqlQuery query(db); QString strSqlDelete = "delete * from "+ m_TableName; query.exec(strSqlDelete); for(i=0;i<num_records;i++) { pyhz_tab tempRecord = p2h[i]; QChar firstAlphabet = tempRecord.py.at(0); QChar lowFirstAlphabet = firstAlphabet.toLower(); tempRecord.py.replace(0,1,lowFirstAlphabet); QString strSQL = "insert into " + m_TableName + " (pinyin,pinyin_shengdiao,shengdiao,ChineseCharactor,First_Alphabet) values (\'" + tempRecord.py + "\',\'" + tempRecord.py_shengdiao + "\'," + QString::number(tempRecord.shengdiao) + ",\'" + tempRecord.hz + "\',\'" + lowFirstAlphabet + "\')"; /*QString strSQL = "insert into " + m_TableName + " (pinyin,pinyin_shengdiao) values (\'" + tempRecord.py + "\',\'" + tempRecord.py_shengdiao + "\')";*/ // strSQL = "select * from " + m_TableName; //qDebug()<<strSQL; if(query.exec(strSQL)) { value_ret = true; } else { value_ret = false; } } } return value_ret; }
void SysmgrIMEModel::sendKeyEvent(QEvent::Type type, Qt::Key key, Qt::KeyboardModifiers modifiers) { QWidget* focusedWidget = QApplication::focusWidget(); if (focusedWidget && (type == QEvent::KeyPress || type == QEvent::KeyRelease)) { QChar qchar; switch(key) { case Qt::Key_Return: case Qt::Key_Enter: qchar = '\r'; break; case Qt::Key_Tab: qchar = '\t'; break; case Qt::Key_Backspace: qchar = '\b'; break; default: qchar = QChar(key); } // only lower case A to Z. Other keys are unicode characters with proper casing already... if (key >= Qt::Key_A && key <= Qt::Key_Z && !(modifiers & Qt::ShiftModifier)) qchar = qchar.toLower(); QApplication::postEvent(focusedWidget, new QKeyEvent(type, key, modifiers, qchar)); } }
NFA RE2NFA::parseSet() { QSet<InputType> set; bool negate = false; next(TOK_STRING); do { Q_ASSERT(symbol().lexem.length() == 1); // ### QChar ch = symbol().lexem.at(0); if (set.isEmpty() && ch == QLatin1Char('^')) { negate = true; continue; } // look ahead for ranges like a-z bool rangeFound = false; if (test(TOK_STRING)) { if (symbol().lexem.length() == 1 && symbol().lexem.at(0) == QLatin1Char('-')) { next(TOK_STRING); Q_ASSERT(symbol().lexem.length() == 1); QChar last = symbol().lexem.at(0); if (ch.unicode() > last.unicode()) qSwap(ch, last); for (ushort i = ch.unicode(); i <= last.unicode(); ++i) { if (caseSensitivity == Qt::CaseInsensitive) { set.insert(QChar(i).toLower().unicode()); } else { set.insert(i); } } rangeFound = true; } else { prev(); } } if (!rangeFound) { if (caseSensitivity == Qt::CaseInsensitive) { set.insert(ch.toLower().unicode()); } else { set.insert(ch.unicode()); } } } while (test(TOK_STRING)); if (negate) { QSet<InputType> negatedSet = maxInputSet; negatedSet.subtract(set); set = negatedSet; } return NFA::createSetNFA(set); }
void LineParser::expect(const QChar &c, Qt::CaseSensitivity cs) { if (_i < _line.length()) { QChar lhs = c; QChar rhs = _line.at(_i); if (cs == Qt::CaseInsensitive) { lhs = lhs.toLower(); rhs = rhs.toLower(); } if (lhs == rhs) { _i++; return; } } throw SegmentParseExpectedException(_line.atAsSegment(_i), QString(c)); }
NFA RE2NFA::parseSet2() { QSet<InputType> set; bool negate = false; QString str = symbol().lexem; // strip off brackets str.chop(1); str.remove(0, 1); int i = 0; while (i < str.length()) { // ### QChar ch = str.at(i++); if (set.isEmpty() && ch == QLatin1Char('^')) { negate = true; continue; } // look ahead for ranges like a-z bool rangeFound = false; if (i < str.length() - 1 && str.at(i) == QLatin1Char('-')) { ++i; QChar last = str.at(i++); if (ch.unicode() > last.unicode()) qSwap(ch, last); for (ushort i = ch.unicode(); i <= last.unicode(); ++i) { if (caseSensitivity == Qt::CaseInsensitive) { set.insert(QChar(i).toLower().unicode()); } else { set.insert(i); } } rangeFound = true; } if (!rangeFound) { if (caseSensitivity == Qt::CaseInsensitive) { set.insert(ch.toLower().unicode()); } else { set.insert(ch.unicode()); } } } if (negate) { QSet<InputType> negatedSet = maxInputSet; negatedSet.subtract(set); set = negatedSet; } return NFA::createSetNFA(set); }
// Function: TOGGLE Value func_toggle(valVector args, ValueCalc *calc, FuncExtra *) { QString str = calc->conv()->asString(args[0]).asString(); int i; int l = str.length(); for (i = 0; i < l; ++i) { QChar c = str[i]; QChar lc = c.toLower(); QChar uc = c.toUpper(); if (c == lc) // it is in lowercase str[i] = c.toUpper(); else if (c == uc) // it is in uppercase str[i] = c.toLower(); } return Value(str); }
QChar QPhoneNumberString::translatedToVanity(const QChar c) { if ( c.isNull() ) return QChar(); if ( c.isNumber() ) return c; if ( c.isSpace() ) return QChar('1'); QChar vanityChar = m_VanityChars[ c.toLower() ]; if ( vanityChar.isNull() ) kDebug() << " did not found char " << c << hex << c.unicode() << "\" to translate."; return( vanityChar ); }
QChar toLower(QChar c) { #if QT_VERSION>=0x040000 // QT4 code return c.toLower(); #else // QT3 code return c.lower(); #endif }
//------------------------------------------------------------------------------ QString StringMod::getPosAlphabet(const QChar word) { QString res = word; char alphabet[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n', 'o','p','q','r','s','t','u','v','w','x','y','z','0','1', '2','3','4','5','6','7','8','9','-'}; for (int i = 0; i < sizeof(alphabet); ++i) { if (word.toLower()==alphabet[i]) { res = QString::number(i+1); break; } } return res; }
static bool CharMatch(QChar ref, QChar test) // ---------------------------------------------------------------------------- // Character matching function used by incremental search // ---------------------------------------------------------------------------- // * Comparison is case-insensitive // * Space and underscore are equivalent // * Accent folding: a letter without accent matches itself and the same // letter with any accent; but an accented letter matches only itself. // For instance: CharMatch('e', 'é') => true // CharMatch('e', 'e') => true // CharMatch('é', 'e') => false { static QMap<QChar, QChar> fold; if (fold.empty()) { # define F(from, to) fold[QChar(from)] = QChar(to) F(0xE0, 'a'); F(0xE1, 'a'); F(0xE2, 'a'); F(0xE3, 'a'); F(0xE4, 'a'); F(0xE5, 'a'); F(0xE8, 'e'); F(0xE9, 'e'); F(0xEA, 'e'); F(0xEB, 'e'); F(0xEC, 'i'); F(0xED, 'i'); F(0xEE, 'i'); F(0xEF, 'i'); F(0xF2, 'o'); F(0xF3, 'o'); F(0xF4, 'o'); F(0xF5, 'o'); F(0xF6, 'o'); F(0xF8, 'o'); F(0xF9, 'u'); F(0xFA, 'u'); F(0xFB, 'u'); F(0xFC, 'u'); F(0xFD, 'y'); F(0xFF, 'y'); # undef F } if (test.toLower() == ref.toLower()) return true; if ((test.isSpace() || test == '_') && ( ref.isSpace() || ref == '_')) return true; if (fold.contains(test) && fold[test] == ref) return true; return false; }
void LetterButton::toggleCase() { if ( skip ) { // Don't toggle case the first time skip=false; return; } QChar ch = text()[0]; QChar nch = ch.toLower(); if ( ch == nch ) nch = ch.toUpper(); setText(QString(nch)); }
bool is_a_vowel(QChar single_letter) { // Make sure we are dealing with lowercase letters. single_letter = single_letter.toLower(); if (!single_letter.isLower()) return FALSE; if (single_letter == 'a') return TRUE; if (single_letter == 'e') return TRUE; if (single_letter == 'i') return TRUE; if (single_letter == 'o') return TRUE; if (single_letter == 'u') return TRUE; return (FALSE); }
const QString ctkLDAPExpr::fixupQString( const QString &s ) { QString sb; int len = s.length(); for(int i=0; i<len; i++) { QChar c = s.at(i); if (!c.isSpace()) { if (c.isUpper()) c = c.toLower(); sb.append(c); } } return sb; }
// There is probably a better way with QChar, but I can't find it. int letter_to_number (QChar let) { // Make sure we are dealing with lowercase letters. let = let.toLower(); if (!let.isLower()) return 0; for (int i = 0; i < 26; i++) { letters_and_numbers *ln_ptr =& lowercase_and_numbers[i]; if (ln_ptr->let == let) return (ln_ptr->num); } /* all else - just return zero*/ return 0; }
bool DateTime::hasAMPM(const QString &rToken) { bool in_literal = false; QChar c; int i; for (i = 0; i < rToken.length(); i++) { c = rToken.at(i); if (c == QLatin1Char('\'')) in_literal = !in_literal; else if (!in_literal && c.toLower() == QLatin1Char('a')) return true; } return false; }
Token Scanner::readNumber() { if (!m_src.isEnd()) { QChar ch = m_src.peek(); if (ch.toLower() == 'b') { m_src.move(); while (isBinaryDigit(m_src.peek())) m_src.move(); } else if (ch.toLower() == 'o') { m_src.move(); while (isOctalDigit(m_src.peek())) m_src.move(); } else if (ch.toLower() == 'x') { m_src.move(); while (isHexDigit(m_src.peek())) m_src.move(); } else { // either integer or float number return readFloatNumber(); } if (isValidIntegerSuffix(m_src.peek())) m_src.move(); } return Token(Token::Number, m_src.anchor(), m_src.length()); }
void Settings::loadSettings(const QString & fileName, QByteArray * windowGeometry, QByteArray * windowState) { QString path = fileName; if(fileName.isEmpty()) { path = iniDefaultPath(); } QSettings ini(path, QSettings::IniFormat); for(ParametersMap::const_iterator iter = defaultParameters_.begin(); iter!=defaultParameters_.end(); ++iter) { const QString & key = iter.key(); QVariant value = ini.value(key, QVariant()); if(value.isValid()) { QString str = value.toString(); if(str.contains(";") && str.size() != getParameter(key).toString().size()) { // If a string list is modified, update the value // (assuming that index < 10... one character for index) QChar index = str.at(0); str = getParameter(key).toString(); str[0] = index.toLower(); value = QVariant(str); printf("Updated list of parameter \"%s\"\n", key.toStdString().c_str()); } setParameter(key, value); } } if(windowGeometry) { QVariant value = ini.value("windowGeometry", QVariant()); if(value.isValid()) { *windowGeometry = value.toByteArray(); } } if(windowState) { QVariant value = ini.value("windowState", QVariant()); if(value.isValid()) { *windowState = value.toByteArray(); } } printf("Settings loaded from %s\n", path.toStdString().c_str()); }
void ExtractToken( QString & buffer, const QString & string, int & pos, bool & isNumber ) { buffer.clear(); if ( string.isNull() || pos >= string.length() ) return; isNumber = false; QChar curr = string[ pos ]; if ( curr == '-' || curr == '+' || curr.isDigit() ) { if ( curr == '-' || curr == '+' ) INCBUF(); if ( !curr.isNull() && curr.isDigit() ) { isNumber = true; while ( curr.isDigit() ) INCBUF(); if ( curr == '.' ) { INCBUF(); while ( curr.isDigit() ) INCBUF(); } if ( !curr.isNull() && curr.toLower() == 'e' ) { INCBUF(); if ( curr == '-' || curr == '+' ) INCBUF(); if ( curr.isNull() || !curr.isDigit() ) isNumber = false; else while ( curr.isDigit() ) INCBUF(); } } } if ( !isNumber ) { while ( curr != '-' && curr != '+' && !curr.isDigit() && pos < string.length() ) INCBUF(); } }
QString CodeMarker::typified(const QString &string) { QString result; QString pendingWord; for (int i = 0; i <= string.size(); ++i) { QChar ch; if (i != string.size()) ch = string.at(i); QChar lower = ch.toLower(); if ((lower >= QLatin1Char('a') && lower <= QLatin1Char('z')) || ch.digitValue() >= 0 || ch == QLatin1Char('_') || ch == QLatin1Char(':')) { pendingWord += ch; } else { if (!pendingWord.isEmpty()) { bool isProbablyType = (pendingWord != QLatin1String("const")); if (isProbablyType) result += QLatin1String("<@type>"); result += pendingWord; if (isProbablyType) result += QLatin1String("</@type>"); } pendingWord.clear(); switch (ch.unicode()) { case '\0': break; case '&': result += QLatin1String("&"); break; case '<': result += QLatin1String("<"); break; case '>': result += QLatin1String(">"); break; default: result += ch; } } } return result; }
bool isVowell(QChar v){ if ( v > 'A' || v < 'z') return false; v = v.toLower(); switch (v.toAscii()) { case 'a': case 'e': case 'i': case 'o': case 'u': case 'y': return true; default: break; } return false; }
void Autocorrect::fixTwoUppercaseChars() { if (! m_fixTwoUppercaseChars) return; if (m_word.length() <= 2) return; if (m_twoUpperLetterExceptions.contains(m_word.trimmed())) return; QChar firstChar = m_word.at(0); QChar secondChar = m_word.at(1); if (secondChar.isUpper()) { QChar thirdChar = m_word.at(2); if (firstChar.isUpper() && thirdChar.isLower()) m_word.replace(1, 1, secondChar.toLower()); } }
static QString comify(const QString &organization) { for (int i = organization.size() - 1; i >= 0; --i) { QChar ch = organization.at(i); if (ch == QLatin1Char('.') || ch == QChar(0x3002) || ch == QChar(0xff0e) || ch == QChar(0xff61)) { QString suffix = organization.mid(i + 1).toLower(); if (suffix.size() == 2 || suffix == QLatin1String("com") || suffix == QLatin1String("org") || suffix == QLatin1String("net") || suffix == QLatin1String("edu") || suffix == QLatin1String("gov") || suffix == QLatin1String("mil") || suffix == QLatin1String("biz") || suffix == QLatin1String("info") || suffix == QLatin1String("name") || suffix == QLatin1String("pro") || suffix == QLatin1String("aero") || suffix == QLatin1String("coop") || suffix == QLatin1String("museum")) { QString result = organization; result.replace(QLatin1Char('/'), QLatin1Char(' ')); return result; } break; } int uc = ch.unicode(); if ((uc < 'a' || uc > 'z') && (uc < 'A' || uc > 'Z')) break; } QString domain; for (int i = 0; i < organization.size(); ++i) { QChar ch = organization.at(i); int uc = ch.unicode(); if ((uc >= 'a' && uc <= 'z') || (uc >= '0' && uc <= '9')) { domain += ch; } else if (uc >= 'A' && uc <= 'Z') { domain += ch.toLower(); } else { domain += QLatin1Char(' '); } } domain = domain.simplified(); domain.replace(QLatin1Char(' '), QLatin1Char('-')); if (!domain.isEmpty()) domain.append(QLatin1String(".com")); return domain; }
void Menu::keyPressEvent (QKeyEvent* e) { // search for a button mnemonic QString str = QKeySequence(e->key()).toString(); if (str.length() != 1) { Window::keyPressEvent(e); return; } QChar upper = str.at(0), lower = upper.toLower(); foreach (Component* child, _children) { Button* button = qobject_cast<Button*>(child); if (button == 0) { continue; } const QString& label = button->label(); for (const QChar* ptr = label.constData(), *end = ptr + label.length(); ptr < end; ptr++) { QChar ch = *ptr; if (ch == '&' && ++ptr < end && (*ptr == upper || *ptr == lower)) { button->doPress(); return; } } }
/*! Extract a class name from the type \a string and return it. */ QString Node::extractClassName(const QString &string) const { QString result; for (int i=0; i<=string.size(); ++i) { QChar ch; if (i != string.size()) ch = string.at(i); QChar lower = ch.toLower(); if ((lower >= QLatin1Char('a') && lower <= QLatin1Char('z')) || ch.digitValue() >= 0 || ch == QLatin1Char('_') || ch == QLatin1Char(':')) { result += ch; } else if (!result.isEmpty()) { if (result != QLatin1String("const")) return result; result.clear(); } } return result; }
static int getToken() { const char tab[] = "bfnrt\"\'\\"; const char backTab[] = "\b\f\n\r\t\"\'\\"; yyIdent.clear(); yyComment.clear(); yyString.clear(); while ( yyCh != EOF ) { yyLineNo = yyCurLineNo; if ( yyCh.isLetter() || yyCh.toLatin1() == '_' ) { do { yyIdent.append(yyCh); yyCh = getChar(); } while ( yyCh.isLetterOrNumber() || yyCh.toLatin1() == '_' ); if (yyTok != Tok_Dot) { switch ( yyIdent.at(0).toLatin1() ) { case 'r': if ( yyIdent == QLatin1String("return") ) return Tok_return; break; case 'c': if ( yyIdent == QLatin1String("class") ) return Tok_class; break; case 'n': if ( yyIdent == QLatin1String("null") ) return Tok_null; break; } } switch ( yyIdent.at(0).toLatin1() ) { case 'T': // TR() for when all else fails if ( yyIdent == QLatin1String("TR") ) return Tok_tr; break; case 'p': if( yyIdent == QLatin1String("package") ) return Tok_Package; break; case 't': if ( yyIdent == QLatin1String("tr") ) return Tok_tr; if ( yyIdent == QLatin1String("translate") ) return Tok_translate; } return Tok_Ident; } else { switch ( yyCh.toLatin1() ) { case '/': yyCh = getChar(); if ( yyCh == QLatin1Char('/') ) { do { yyCh = getChar(); if (yyCh == EOF) break; yyComment.append(yyCh); } while (yyCh != QLatin1Char('\n')); return Tok_Comment; } else if ( yyCh == QLatin1Char('*') ) { bool metAster = false; bool metAsterSlash = false; while ( !metAsterSlash ) { yyCh = getChar(); if ( yyCh == EOF ) { yyMsg() << qPrintable(LU::tr("Unterminated Java comment.\n")); return Tok_Comment; } yyComment.append( yyCh ); if ( yyCh == QLatin1Char('*') ) metAster = true; else if ( metAster && yyCh == QLatin1Char('/') ) metAsterSlash = true; else metAster = false; } yyComment.chop(2); yyCh = getChar(); return Tok_Comment; } break; case '"': yyCh = getChar(); while ( yyCh != EOF && yyCh != QLatin1Char('\n') && yyCh != QLatin1Char('"') ) { if ( yyCh == QLatin1Char('\\') ) { yyCh = getChar(); if ( yyCh == QLatin1Char('u') ) { yyCh = getChar(); uint unicode(0); for (int i = 4; i > 0; --i) { unicode = unicode << 4; if( yyCh.isDigit() ) { unicode += yyCh.digitValue(); } else { int sub(yyCh.toLower().toLatin1() - 87); if( sub > 15 || sub < 10) { yyMsg() << qPrintable(LU::tr("Invalid Unicode value.\n")); break; } unicode += sub; } yyCh = getChar(); } yyString.append(QChar(unicode)); } else if ( yyCh == QLatin1Char('\n') ) { yyCh = getChar(); } else { yyString.append( QLatin1Char(backTab[strchr( tab, yyCh.toLatin1() ) - tab]) ); yyCh = getChar(); } } else { yyString.append(yyCh); yyCh = getChar(); } } if ( yyCh != QLatin1Char('"') ) yyMsg() << qPrintable(LU::tr("Unterminated string.\n")); yyCh = getChar(); return Tok_String; case ':': yyCh = getChar(); return Tok_Colon; case '\'': yyCh = getChar(); if ( yyCh == QLatin1Char('\\') ) yyCh = getChar(); do { yyCh = getChar(); } while ( yyCh != EOF && yyCh != QLatin1Char('\'') ); yyCh = getChar(); break; case '{': yyCh = getChar(); return Tok_LeftBrace; case '}': yyCh = getChar(); return Tok_RightBrace; case '(': if (yyParenDepth == 0) yyParenLineNo = yyCurLineNo; yyParenDepth++; yyCh = getChar(); return Tok_LeftParen; case ')': if (yyParenDepth == 0) yyParenLineNo = yyCurLineNo; yyParenDepth--; yyCh = getChar(); return Tok_RightParen; case ',': yyCh = getChar(); return Tok_Comma; case '.': yyCh = getChar(); return Tok_Dot; case ';': yyCh = getChar(); return Tok_Semicolon; case '+': yyCh = getChar(); if (yyCh == QLatin1Char('+')) { yyCh = getChar(); return Tok_PlusPlus; } if( yyCh == QLatin1Char('=') ) { yyCh = getChar(); return Tok_PlusEq; } return Tok_Plus; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { QByteArray ba; ba += yyCh.toLatin1(); yyCh = getChar(); bool hex = yyCh == QLatin1Char('x'); if ( hex ) { ba += yyCh.toLatin1(); yyCh = getChar(); } while ( hex ? isxdigit(yyCh.toLatin1()) : yyCh.isDigit() ) { ba += yyCh.toLatin1(); yyCh = getChar(); } bool ok; yyInteger = ba.toLongLong(&ok); if (ok) return Tok_Integer; break; } default: yyCh = getChar(); } } } return Tok_Eof; }
// method that seds pressed char to widget with focus void ChumbyVirtualKeyboard::sendChar ( int indexOfCharToSend ) { pressTimer->stop(); if ( verticalLayoutWidget2->isVisible() ) // when using "other" characters, leave method here { return; } QChar charToSend ( button[indexOfCharToSend]->text().at ( 0 ) ); if ( !buttonC1->isChecked() && buttonC3->text() == QString ( ".?123" ) ) { QApplication::sendEvent ( parentWidget->focusWidget(), new QKeyEvent ( QEvent::KeyPress, charToSend.toLower().unicode(), Qt::NoModifier, QString ( charToSend.toLower() ) ) ); } else { QApplication::sendEvent ( parentWidget->focusWidget(), new QKeyEvent ( QEvent::KeyPress, charToSend.unicode(), Qt::NoModifier, QString ( charToSend ) ) ); } labelDisplayChar->hide(); return; }
void LaunchyWidget::doTab() { if (inputData.count() > 0 && searchResults.count() > 0) { // If it's an incomplete file or directory, complete it QFileInfo info(searchResults[0].fullPath); if ((inputData.last().hasLabel(LABEL_FILE) || info.isDir()) )// && input->text().compare(QDir::toNativeSeparators(searchResults[0].fullPath), Qt::CaseInsensitive) != 0) { // If multiple paths exist, select the longest intersection (like the bash shell) if (!alternatives->isActiveWindow()) { QStringList paths; int minLength = -1; foreach(const CatItem& item, searchResults) { if (item.id == HASH_LAUNCHYFILE) { QString p = item.fullPath; paths += p; if (minLength == -1 || p.length() < minLength) minLength = p.length(); qDebug() << p; } } qDebug() << ""; if (paths.size() > 1) { // Find the longest prefix common to all of the paths QChar curChar; QString longestPrefix = ""; for(int i = 0; i < minLength; i++) { curChar = paths[0][i]; bool stop = false; foreach(QString path, paths) { #ifdef Q_WS_WIN if (path[i].toLower() != curChar.toLower()) { #else if (path[i] != curChar) { #endif stop = true; break; } } if (stop) break; longestPrefix += curChar; } input->selectAll(); input->insert(inputData.toString(true) + longestPrefix); return; } } QString path; if (info.isSymLink()) path = info.symLinkTarget(); else path = searchResults[0].fullPath; if (info.isDir() && !path.endsWith(QDir::separator())) path += QDir::separator(); input->selectAll(); input->insert(inputData.toString(true) + QDir::toNativeSeparators(path)); }