| 436 | } |
| 437 | |
| 438 | void 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 | |
| 470 | void Editor::forceRehighlighting() |
| 471 | { |
nothing calls this directly
no test coverage detected