Parse markup in Ui::Text::String::setMarkedText by default.

This commit is contained in:
John Preston 2022-02-27 17:48:43 +03:00
parent bd7c4ee06d
commit 5214f96bba
3 changed files with 16 additions and 7 deletions

View file

@ -147,14 +147,21 @@ bool IsBad(QChar ch) {
} // namespace Text
} // namespace Ui
const TextParseOptions _defaultOptions = {
const TextParseOptions kDefaultTextOptions = {
TextParseLinks | TextParseMultiline, // flags
0, // maxw
0, // maxh
Qt::LayoutDirectionAuto, // dir
};
const TextParseOptions _textPlainOptions = {
const TextParseOptions kMarkupTextOptions = {
TextParseLinks | TextParseMultiline | TextParseMarkdown, // flags
0, // maxw
0, // maxh
Qt::LayoutDirectionAuto, // dir
};
const TextParseOptions kPlainTextOptions = {
TextParseMultiline, // flags
0, // maxw
0, // maxh

View file

@ -29,7 +29,9 @@ struct TextParseOptions {
int32 maxh;
Qt::LayoutDirection dir;
};
extern const TextParseOptions _defaultOptions, _textPlainOptions;
extern const TextParseOptions kDefaultTextOptions;
extern const TextParseOptions kMarkupTextOptions;
extern const TextParseOptions kPlainTextOptions;
enum class TextSelectType {
Letters = 0x01,
@ -102,7 +104,7 @@ public:
String(
const style::TextStyle &st,
const QString &text,
const TextParseOptions &options = _defaultOptions,
const TextParseOptions &options = kDefaultTextOptions,
int32 minResizeWidth = QFIXED_MAX);
String(const String &other) = default;
String(String &&other) = default;
@ -113,8 +115,8 @@ public:
int countWidth(int width, bool breakEverywhere = false) const;
int countHeight(int width, bool breakEverywhere = false) const;
void countLineWidths(int width, QVector<int> *lineWidths, bool breakEverywhere = false) const;
void setText(const style::TextStyle &st, const QString &text, const TextParseOptions &options = _defaultOptions);
void setMarkedText(const style::TextStyle &st, const TextWithEntities &textWithEntities, const TextParseOptions &options = _defaultOptions, const std::any &context = {});
void setText(const style::TextStyle &st, const QString &text, const TextParseOptions &options = kDefaultTextOptions);
void setMarkedText(const style::TextStyle &st, const TextWithEntities &textWithEntities, const TextParseOptions &options = kMarkupTextOptions, const std::any &context = {});
void setLink(uint16 lnkIndex, const ClickHandlerPtr &lnk);
bool hasLinks() const;

View file

@ -85,7 +85,7 @@ void Tooltip::popup(const QPoint &m, const QString &text, const style::Tooltip *
_point = m;
_st = st;
_text = Text::String(_st->textStyle, text, _textPlainOptions, _st->widthMax);
_text = Text::String(_st->textStyle, text, kPlainTextOptions, _st->widthMax);
_useTransparency = Platform::TranslucentWindowsSupported(_point);
setAttribute(Qt::WA_OpaquePaintEvent, !_useTransparency);