From 7e051ca7bf165df865b61fe07a80699e5ea0503e Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Mon, 7 Jul 2008 21:08:24 +0200 Subject: [PATCH] Add UiStyle::toTextLayoutList(), since we need that functionality in several places --- src/uisupport/uistyle.cpp | 16 +++++++++++++++- src/uisupport/uistyle.h | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/uisupport/uistyle.cpp b/src/uisupport/uistyle.cpp index b0a2a3ab..3b55d68b 100644 --- a/src/uisupport/uistyle.cpp +++ b/src/uisupport/uistyle.cpp @@ -40,7 +40,7 @@ UiStyle::UiStyle(const QString &settingsKey) : _settingsKey(settingsKey) { _defaultPlainFormat.font().setFixedPitch(true); _defaultPlainFormat.font().setStyleHint(QFont::TypeWriter); setFormat(None, _defaultPlainFormat, Settings::Default); - + // Load saved custom formats UiStyleSettings s(_settingsKey); foreach(FormatType type, s.availableFormats()) { @@ -166,6 +166,20 @@ QString UiStyle::formatCode(FormatType ftype) const { return _formatCodes.key(ftype); } +QList UiStyle::toTextLayoutList(const FormatList &formatList, int textLength) { + QList formatRanges; + QTextLayout::FormatRange range; + int i = 0; + for(i = 0; i < formatList.count(); i++) { + range.format = mergedFormat(formatList.at(i).second); + range.start = formatList.at(i).first; + if(i > 0) formatRanges.last().length = range.start - formatRanges.last().start; + formatRanges.append(range); + } + if(i > 0) formatRanges.last().length = textLength - formatRanges.last().start; + return formatRanges; +} + // This method expects a well-formatted string, there is no error checking! // Since we create those ourselves, we should be pretty safe that nobody does something crappy here. UiStyle::StyledString UiStyle::styleString(const QString &s_) { diff --git a/src/uisupport/uistyle.h b/src/uisupport/uistyle.h index cd6458e5..8745d117 100644 --- a/src/uisupport/uistyle.h +++ b/src/uisupport/uistyle.h @@ -141,6 +141,8 @@ class UiStyle { inline QFont defaultFont() const { return _defaultFont; } + QList toTextLayoutList(const FormatList &, int textLength); + protected: -- 2.20.1