- // Mark URLs
- _clickables = ClickableList::fromString(sstr.plainText);
- foreach(Clickable click, _clickables) {
- if(click.type() == Clickable::Url) {
- QTextLayout::FormatRange range;
- range.start = click.start();
- range.length = click.length();
- range.format.setForeground(palette().link());
- layoutList << range;
+void StyledLabel::setText(const QString &text)
+{
+ UiStyle *style = GraphicalUi::uiStyle();
+
+ UiStyle::StyledString sstr = style->styleString(style->mircToInternal(text), UiStyle::PlainMsg);
+ QList<QTextLayout::FormatRange> layoutList = style->toTextLayoutList(sstr.formatList, sstr.plainText.length(), 0);
+
+ // Use default font rather than the style's
+ QTextLayout::FormatRange fmtRange;
+ fmtRange.format.setFont(font());
+ fmtRange.start = 0;
+ fmtRange.length = sstr.plainText.length();
+ layoutList << fmtRange;
+
+ // Mark URLs
+ _clickables = ClickableList::fromString(sstr.plainText);
+ foreach(Clickable click, _clickables) {
+ if (click.type() == Clickable::Url) {
+ QTextLayout::FormatRange range;
+ range.start = click.start();
+ range.length = click.length();
+ range.format.setForeground(palette().link());
+ layoutList << range;
+ }