本文整理汇总了C++中QDocumentCursor::selectionStart方法的典型用法代码示例。如果您正苦于以下问题:C++ QDocumentCursor::selectionStart方法的具体用法?C++ QDocumentCursor::selectionStart怎么用?C++ QDocumentCursor::selectionStart使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDocumentCursor
的用法示例。
在下文中一共展示了QDocumentCursor::selectionStart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: alignTableCols
void LatexTables::alignTableCols(QDocumentCursor &cur){
QString text = getTableText(cur);
if (!cur.hasSelection()) return;
QString indentation = cur.selectionStart().line().indentation();
// split off \begin and \end parts
int index = text.indexOf("\\begin{")+6;
int cellsStart;
QList<CommandArgument> args = getCommandOptions(text, index, &cellsStart);
if (args.count() < 2) return;
QString tableType = args.at(0).value;
// assume alignment in second arg except for the following environments (which have it in the third one)
QString alignment;
if (tabularNames.contains(tableType)) {
alignment = args.at(1).value;
} else if (tabularNamesWithOneOption.contains(tableType)) {
if (args.count()<3) alignment = ""; // incomplete definition -> fall back to defaults
else alignment = args.at(2).value;
} else return; // not a registered table environment
int cellsEnd = text.indexOf("\\end{"+tableType);
if (cellsEnd<0) return;
QString beginPart = text.left(cellsStart);
QString endPart = text.mid(cellsEnd);
LatexTableModel ltm;
ltm.setContent(text.mid(cellsStart, cellsEnd-cellsStart));
QStringList l_defs=splitColDef(alignment);
simplifyColDefs(l_defs);
QStringList content(ltm.getAlignedLines(l_defs));
QString result = beginPart + '\n';
for (int i=0; i<content.count(); i++) {
result.append(indentation + content.at(i));
}
result.append(indentation + endPart);
cur.replaceSelectedText(result);
}