bool QTextEditProto::find(const QString &exp, int options) { QTextEdit *item = qscriptvalue_cast<QTextEdit*>(thisObject()); if (item) return item->find(exp, (QTextDocument::FindFlag)options); return false; }
void SourceViewer::onClickedSearchNext() { QTextEdit *logTextEdit = getCurrentSourceEdit(); if(logTextEdit != NULL) { QTextDocument::FindFlags flags = 0x0; if(ui.caseSensitiveCheck->isChecked()) flags |= QTextDocument::FindCaseSensitively; bool find = logTextEdit->find(ui.searchText->text(), flags); if(find == false) { logTextEdit->moveCursor(QTextCursor::Start); logTextEdit->find(ui.searchText->text(), flags); } } }
void SourceViewer::onClickedSearchPrev() { QTextEdit *logTextEdit = getCurrentSourceEdit(); if(logTextEdit != NULL) { QTextDocument::FindFlags flags = QTextDocument::FindBackward; if(ui.caseSensitiveCheck->isChecked()) flags |= QTextDocument::FindCaseSensitively; bool find = logTextEdit->find(ui.searchText->text(), flags); if(find == false) { logTextEdit->moveCursor(QTextCursor::End); logTextEdit->horizontalScrollBar()->setValue(0); logTextEdit->find(ui.searchText->text(), flags); } } }
void SourceViewer::setSourceText(const QString &key, const QString &name, const QString &searchText, const QByteArray &sourceTextBuffer) { QTextEdit *logTextEdit = NULL; QTextEditorContextMap::const_iterator i = logTextWidgetMap_.find(key); if(i == logTextWidgetMap_.end()) { // New tab created.. logTextEdit = new QTextEdit(); QObject::connect(logTextEdit, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged())); logTextEdit->setReadOnly(true); SourceViewContext* ctx = new SourceViewContext(); ctx->logTextEdit = logTextEdit; logTextWidgetMap_.insert(key, ctx); ui.tabWidget->insertTab(0, logTextEdit, name); ui.tabWidget->setCurrentIndex(0); } else { // Already the tab exists. logTextEdit = i.value()->logTextEdit; int index = ui.tabWidget->indexOf(logTextEdit); if(index >= 0) { ui.tabWidget->setCurrentIndex(index); } } workingHighlightText_ = true; ui.searchText->setText(searchText); logTextEdit->setText(sourceTextBuffer); logTextEdit->setFocus(); if(searchText.isEmpty() == false) { doHighlightText(searchText, ui.caseSensitiveCheck->isChecked()); QTextDocument::FindFlags flags = 0x0; if(ui.caseSensitiveCheck->isChecked()) flags |= QTextDocument::FindCaseSensitively; logTextEdit->moveCursor(QTextCursor::Start); while(logTextEdit->find(searchText, flags)) { break; } } workingHighlightText_ = false; }
/*! */ void DebugMessageWindow::findString( const QString & expr ) { // case insentive && no whole word QTextDocument::FindFlags flags( M_find_forward_rb->isChecked() ? 0 : QTextDocument::FindBackward ); QTextEdit * edit = M_message[ M_tab_widget->currentIndex() ]; if ( ! edit->find( expr, flags ) ) { if ( M_find_forward_rb->isChecked() ) { edit->moveCursor( QTextCursor::Start ); } else { edit->moveCursor( QTextCursor::End ); } edit->find( expr, flags ); } }
int TextEdit::find(lua_State * L) // ( const QString & exp, QTextDocument::FindFlags options = 0 ) : bool { QTextEdit* obj = ObjectHelper<QTextEdit>::check( L, 1); QTextDocument::FindFlags f; int fInt = Util::toInt( L, 3 ); if( (fInt >= 0 && fInt <= 17) ) { f = (QTextDocument::FindFlags) fInt; Lua::Util::push( L, obj->find(Lua::Util::toStr( L, 2 ), f ) ); } else Lua::Util::error( L, "expecting a valid QTextDocument::FindFlags" ); return 1; }
void SourceViewer::doHighlightText(const QString &text, bool caseSensitive) { qDebug() << "doHighlightText : text=" << text; workingHighlightText_ = true; do { QTextEdit *logTextEdit = getCurrentSourceEdit(); if(logTextEdit == NULL) break; int orgValueVert = logTextEdit->verticalScrollBar()->value(); int orgValueHor = logTextEdit->horizontalScrollBar()->value(); QTextCursor orgCursor = logTextEdit->textCursor(); QTextDocument::FindFlags flags = 0x0; if(caseSensitive) flags |= QTextDocument::FindCaseSensitively; QList<QTextEdit::ExtraSelection> extraSelections; logTextEdit->moveCursor(QTextCursor::Start); QColor fgColor = QColor("white"); QColor bgColor = QColor("#C32438"); while(logTextEdit->find(text, flags)) { QTextEdit::ExtraSelection extra; extra.format.setForeground(fgColor); extra.format.setBackground(bgColor); extra.cursor = logTextEdit->textCursor(); extraSelections.append(extra); } logTextEdit->setExtraSelections(extraSelections); logTextEdit->setTextCursor(orgCursor); logTextEdit->verticalScrollBar()->setValue(orgValueVert); logTextEdit->horizontalScrollBar()->setValue(orgValueHor); } while(false); workingHighlightText_ = false; }