| 1721 | } |
| 1722 | |
| 1723 | void DiffTextWindow::recalcWordWrap(bool bWordWrap, size_t wrapLineVectorSize, qint32 visibleTextWidth) |
| 1724 | { |
| 1725 | if(d->getDiff3LineVector() == nullptr || !isVisible()) |
| 1726 | { |
| 1727 | d->m_bWordWrap = bWordWrap; |
| 1728 | if(!bWordWrap) d->m_diff3WrapLineVector.resize(0); |
| 1729 | return; |
| 1730 | } |
| 1731 | |
| 1732 | d->m_bWordWrap = bWordWrap; |
| 1733 | |
| 1734 | if(bWordWrap) |
| 1735 | { |
| 1736 | d->m_diff3WrapLineVector.resize(wrapLineVectorSize); |
| 1737 | |
| 1738 | if(wrapLineVectorSize == 0) |
| 1739 | { |
| 1740 | d->m_wrapLineCacheList.clear(); |
| 1741 | setUpdatesEnabled(false); |
| 1742 | for(size_t i = 0, j = 0; i < d->getDiff3LineVector()->size(); i += s_linesPerRunnable, ++j) |
| 1743 | { |
| 1744 | RecalcWordWrapRunner* p = new RecalcWordWrapRunner(this, visibleTextWidth, j); |
| 1745 | p->connect(); |
| 1746 | |
| 1747 | d->m_wrapLineCacheList.push_back(std::vector<WrapLineCacheData>()); |
| 1748 | s_runnables.push_back(p); |
| 1749 | } |
| 1750 | } |
| 1751 | else |
| 1752 | { |
| 1753 | recalcWordWrapHelper(wrapLineVectorSize, visibleTextWidth, 0); |
| 1754 | setUpdatesEnabled(true); |
| 1755 | } |
| 1756 | } |
| 1757 | else |
| 1758 | { |
| 1759 | if(wrapLineVectorSize == 0 && d->m_maxTextWidth.loadRelaxed() < 0) |
| 1760 | { |
| 1761 | d->m_diff3WrapLineVector.resize(0); |
| 1762 | d->m_wrapLineCacheList.clear(); |
| 1763 | setUpdatesEnabled(false); |
| 1764 | for(size_t i = 0, j = 0; i < d->getDiff3LineVector()->size(); i += s_linesPerRunnable, ++j) |
| 1765 | { |
| 1766 | RecalcWordWrapRunner* p = new RecalcWordWrapRunner(this, visibleTextWidth, j); |
| 1767 | p->connect(); |
| 1768 | |
| 1769 | s_runnables.push_back(p); |
| 1770 | } |
| 1771 | } |
| 1772 | else |
| 1773 | { |
| 1774 | setUpdatesEnabled(true); |
| 1775 | } |
| 1776 | } |
| 1777 | } |
| 1778 | |
| 1779 | void DiffTextWindow::recalcWordWrapHelper(size_t wrapLineVectorSize, qint32 visibleTextWidth, size_t cacheListIdx) |
| 1780 | { |
nothing calls this directly
no test coverage detected