diff options
Diffstat (limited to 'application/widgets/Common.cpp')
-rw-r--r-- | application/widgets/Common.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/application/widgets/Common.cpp b/application/widgets/Common.cpp new file mode 100644 index 00000000..9b730d6c --- /dev/null +++ b/application/widgets/Common.cpp @@ -0,0 +1,27 @@ +#include "Common.h" + +// Origin: Qt +QStringList viewItemTextLayout(QTextLayout &textLayout, int lineWidth, qreal &height, + qreal &widthUsed) +{ + QStringList lines; + height = 0; + widthUsed = 0; + textLayout.beginLayout(); + QString str = textLayout.text(); + while (true) + { + QTextLine line = textLayout.createLine(); + if (!line.isValid()) + break; + if (line.textLength() == 0) + break; + line.setLineWidth(lineWidth); + line.setPosition(QPointF(0, height)); + height += line.height(); + lines.append(str.mid(line.textStart(), line.textLength())); + widthUsed = qMax(widthUsed, line.naturalTextWidth()); + } + textLayout.endLayout(); + return lines; +} |