MCPcopy Create free account
hub / github.com/IgKh/katvan / setTextBlockDirection

Method setTextBlockDirection

core/katvan_editor.cpp:438–468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

436}
437
438void Editor::setTextBlockDirection(Qt::LayoutDirection dir)
439{
440 QTextCursor cursor = textCursor();
441 cursor.beginEditBlock();
442 cursor.movePosition(QTextCursor::StartOfBlock);
443
444 QString blockText = cursor.block().text();
445
446 if (dir == Qt::RightToLeft) {
447 if (blockText.startsWith(utils::LRM_MARK)) {
448 cursor.deleteChar();
449 blockText = blockText.sliced(1);
450 }
451 if (!blockText.startsWith(utils::RLM_MARK)
452 && !blockText.startsWith(utils::ALM_MARK)
453 && utils::naturalTextDirection(blockText) != dir) {
454 cursor.insertText(utils::RLM_MARK);
455 }
456 }
457 else if (dir == Qt::LeftToRight) {
458 if (blockText.startsWith(utils::RLM_MARK) || blockText.startsWith(utils::ALM_MARK)) {
459 cursor.deleteChar();
460 blockText = blockText.sliced(1);
461 }
462 if (!blockText.startsWith(utils::LRM_MARK) && utils::naturalTextDirection(blockText) != dir) {
463 cursor.insertText(utils::LRM_MARK);
464 }
465 }
466
467 cursor.endEditBlock();
468}
469
470void Editor::forceRehighlighting()
471{

Callers

nothing calls this directly

Calls 2

naturalTextDirectionFunction · 0.85
textMethod · 0.80

Tested by

no test coverage detected