void EditorCompletion::updateCompletionMap( Q3TextDocument *doc ) { bool strict = true; if ( doc != lastDoc ) strict = false; lastDoc = doc; Q3TextParagraph *s = doc->firstParagraph(); if ( !s->extraData() ) s->setExtraData( new ParagData ); while ( s ) { if ( s->length() == ( (ParagData*)s->extraData() )->lastLengthForCompletion ) { s = s->next(); continue; } QChar c; QString buffer; for ( int i = 0; i < s->length(); ++i ) { c = s->at( i )->c; if ( c.isLetter() || c.isNumber() || c == '_' || c == '#' ) { buffer += c; } else { addCompletionEntry( buffer, doc, strict ); buffer = QString::null; } } if ( !buffer.isEmpty() ) addCompletionEntry( buffer, doc, strict ); ( (ParagData*)s->extraData() )->lastLengthForCompletion = s->length(); s = s->next(); } }
bool QCompletionEdit::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: setCompletionList((const QStringList&)*((const QStringList*)static_QUType_ptr.get(_o+1))); break; case 1: setAutoAdd((bool)static_QUType_bool.get(_o+1)); break; case 2: clear(); break; case 3: addCompletionEntry((const QString&)static_QUType_QString.get(_o+1)); break; case 4: removeCompletionEntry((const QString&)static_QUType_QString.get(_o+1)); break; case 5: setCaseSensitive((bool)static_QUType_bool.get(_o+1)); break; case 6: textDidChange((const QString&)static_QUType_QString.get(_o+1)); break; default: return QLineEdit::qt_invoke( _id, _o ); } return TRUE; }