QList<ChatLineModel::Word> wplist; // use a temp list which we'll later copy into a QVector for efficiency
QTextBoundaryFinder finder(QTextBoundaryFinder::Word, _contents.plainText);
- int idx, oldidx;
+ int idx;
+ int oldidx = 0;
bool wordStart = false; bool wordEnd = false;
Mode mode = SearchEnd;
ChatLineModel::Word word;
do {
idx = finder.toNextBoundary();
- if(idx < 0) idx = _contents.plainText.length();
- wordStart = finder.boundaryReasons().testFlag(QTextBoundaryFinder::StartWord);
- wordEnd = finder.boundaryReasons().testFlag(QTextBoundaryFinder::EndWord);
+ if(idx < 0) {
+ idx = _contents.plainText.length();
+ wordStart = false;
+ wordEnd = false;
+ mode = SearchStart;
+ } else {
+ wordStart = finder.boundaryReasons().testFlag(QTextBoundaryFinder::StartWord);
+ wordEnd = finder.boundaryReasons().testFlag(QTextBoundaryFinder::EndWord);
+ }
- //qDebug() << wordStart << wordEnd << _contents.plainText.left(idx) << _contents.plainText.mid(idx);
+ //if(flg) qDebug() << idx << mode << wordStart << wordEnd << _contents.plainText.left(idx) << _contents.plainText.mid(idx);
- if(mode == SearchEnd || !wordStart && wordEnd) {
+ if(mode == SearchEnd || (!wordStart && wordEnd)) {
if(wordStart || !wordEnd) continue;
oldidx = idx;
mode = SearchStart;