本文整理汇总了C++中QDocumentCursor::document方法的典型用法代码示例。如果您正苦于以下问题:C++ QDocumentCursor::document方法的具体用法?C++ QDocumentCursor::document怎么用?C++ QDocumentCursor::document使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDocumentCursor
的用法示例。
在下文中一共展示了QDocumentCursor::document方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findNextToken
int LatexTables::findNextToken(QDocumentCursor &cur,QStringList tokens,bool keepAnchor,bool backwards){
int pos=-1;
int nextToken=-1;
int offset=0;
QDocumentCursor::MoveOperation mvNextLine= backwards ? QDocumentCursor::PreviousLine : QDocumentCursor::NextLine;
QDocumentCursor::MoveOperation mvNextChar= backwards ? QDocumentCursor::Left : QDocumentCursor::Right;
QDocumentCursor::MoveOperation mvStartOfLine= backwards ? QDocumentCursor::EndOfLine : QDocumentCursor::StartOfLine;
QDocumentCursor::MoveFlag mvFlag= keepAnchor ? QDocumentCursor::KeepAnchor : QDocumentCursor::MoveAnchor;
do{
QString line=cur.line().text();
if(backwards){
offset=line.length();
}
line=LatexParser::cutComment(line);
if(backwards){
offset=offset-line.length();
QString help;
foreach(const QChar& elem,line)
help.prepend(elem);
line=help;
}
if(line.contains("\\end{")&&!backwards) {
nextToken=-2;
break;
}
if(line.contains("{nigeb\\")&&backwards) {
nextToken=-2;
break;
}
pos=-1;
for(int i=0;i<tokens.count();i++){
QString elem=tokens.at(i);
int colNumber= cur.columnNumber();
if(backwards) colNumber=line.length()+offset-colNumber ;
int zw=line.indexOf(elem,colNumber);
if(zw>-1) {
if(pos>zw || pos==-1){
pos=zw;
nextToken=i;
}
}
}
if(pos<0){
if(!backwards&&cur.lineNumber()>=cur.document()->lineCount()-1) break;
if(backwards&&cur.lineNumber()<=0) break;
cur.movePosition(1,mvNextLine,mvFlag);
cur.movePosition(1,mvStartOfLine,mvFlag);
}
}while(pos<0);
if(pos>-1) {
cur.movePosition(1,mvStartOfLine,mvFlag);
cur.movePosition(pos+tokens.at(nextToken).length()+offset,mvNextChar,mvFlag);
}
return nextToken;
}
示例2: on_leFind_textEdited
void QSearchReplacePanel::on_leFind_textEdited(const QString& text)
{
bool hadSearch = m_search;
QDocumentCursor cur = editor()->cursor();
if ( m_search )
{
cur = m_search->cursor();
m_search->setSearchText(text);
if ( cbCursor->isChecked() )
{
QDocumentCursor c = cur;
c.setColumnNumber(qMin(c.anchorColumnNumber(), c.columnNumber()));
m_search->setCursor(c);
}
} else {
// TODO : make incremental search optional
init();
}
if ( text.isEmpty() )
{
leFind->setStyleSheet(QString());
return;
}
m_search->setOption(QDocumentSearch::Silent, true);
find(0);
m_search->setOption(QDocumentSearch::Silent, false);
if ( m_search->cursor().isNull() )
{
leFind->setStyleSheet("QLineEdit { background: red; color : white; }");
if ( hadSearch )
{
m_search->setCursor(cur);
// figure out whether other matches are availables
QDocumentSearch::Options opts = m_search->options();
opts &= ~QDocumentSearch::HighlightAll;
opts |= QDocumentSearch::Silent;
QDocumentSearch temp(editor(), text, opts);
temp.setOrigin(QDocumentCursor());
temp.setScope(m_search->scope());
temp.next(true);
if ( temp.cursor().isValid() )
{
// other match found from doc start
leFind->setStyleSheet("QLineEdit { background: yellow; color : black; }");
m_search->setCursor(cur.document()->cursor(0,0));
find(0);
}
}
} else {
leFind->setStyleSheet(QString());
editor()->setCursor(m_search->cursor());
}
}