diff options
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index c8a6955b9..fe686d4fe 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -25,6 +25,7 @@ #include <QGraphicsView> #include <QPixmapCache> #include <QStyleOption> +#include <QTextBoundaryFinder> #include <QVariantAnimation> // #define KSTANDARDITEMLISTWIDGET_DEBUG @@ -812,9 +813,19 @@ void KStandardItemListWidget::siblingsInformationChanged(const QBitArray ¤ m_dirtyLayout = true; } +int KStandardItemListWidget::numberOfUnicodeCharactersIn(const QString &text) +{ + int count = 0; + QTextBoundaryFinder boundaryFinder(QTextBoundaryFinder::Grapheme, text); + while (boundaryFinder.toNextBoundary() != -1) { + ++count; + } + return count; +} + int KStandardItemListWidget::selectionLength(const QString &text) const { - return text.length(); + return numberOfUnicodeCharactersIn(text); } void KStandardItemListWidget::editedRoleChanged(const QByteArray ¤t, const QByteArray &previous) |
