Search up/down using QsciScintilla
-
wrote on 2 Oct 2015, 10:31 last edited by Yatshan 10 Feb 2015, 10:53
Hi
I have written following code to find occurrences of a given text in whole text document. Following code will highlight all such occurrences. But when I click search down / search up buttons it doesn't move cursor to next occurrence. Can anyone please help to achieve this task.
bool bDown parameter is intended to be used to indicate whether to move cursor up/down. But Still I am clueless of how to use this parameter.QsciScintilla *m_pTextEdit;
void searchText( const QString& sText, bool bDown)
{
QString data = m_pTextEdit->text();
m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICATORCLEARRANGE, 0, data.length());if (sText.isEmpty()) { return; } int index = data.indexOf(sText, 0, Qt::CaseInsensitive); while (index >= 0) { int length = sText.length(); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICSETSTYLE,0 ,QsciScintilla::INDIC_ROUNDBOX); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICSETFORE, 0x007f00); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICATORFILLRANGE, index, length); index = data.indexOf(sText, index + length, Qt::CaseInsensitive); }
}
-
Hi
I have written following code to find occurrences of a given text in whole text document. Following code will highlight all such occurrences. But when I click search down / search up buttons it doesn't move cursor to next occurrence. Can anyone please help to achieve this task.
bool bDown parameter is intended to be used to indicate whether to move cursor up/down. But Still I am clueless of how to use this parameter.QsciScintilla *m_pTextEdit;
void searchText( const QString& sText, bool bDown)
{
QString data = m_pTextEdit->text();
m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICATORCLEARRANGE, 0, data.length());if (sText.isEmpty()) { return; } int index = data.indexOf(sText, 0, Qt::CaseInsensitive); while (index >= 0) { int length = sText.length(); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICSETSTYLE,0 ,QsciScintilla::INDIC_ROUNDBOX); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICSETFORE, 0x007f00); m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICATORFILLRANGE, index, length); index = data.indexOf(sText, index + length, Qt::CaseInsensitive); }
}
Hi @Yatshan, and welcome to the Qt Dev Net!
Sorry I don't have any experience with Scintilla, so I don't know how to solve your problem. Have you tried asking the person who created QsciScintilla?
-
wrote on 31 Dec 2019, 02:29 last edited by Peggyw
@Yatshan said in Search up/down using QsciScintilla:
m_pTextEdit->SendScintilla(QsciScintilla::SCI_INDICATORCLEARRANGE, 0, data.length());
This really helped me with clearing all the highlights!
I tried QsciScintilla::SCI_MARKERDELETEALL for many times but no luck.
Thanks!