+// For backwards compatibility with Qt 5.5, the setFormats method was introduced
+// in Qt 5.6, but the old setAdditionalFormats was deprecated in 5.6 as well.
+//
+// So we use the old one on Qt 5.5, and the new one everywhere else.
+#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
+ using FormatContainer = QVector<QTextLayout::FormatRange>;
+ static inline void setTextLayoutFormats(QTextLayout& layout, const FormatContainer& formats) {
+ layout.setFormats(formats);
+ }
+ static inline QVector<QTextLayout::FormatRange> containerToVector(const FormatContainer& container) {
+ return container;
+ }
+#else
+ using FormatContainer = QList<QTextLayout::FormatRange>;
+ static inline void setTextLayoutFormats(QTextLayout& layout, const FormatContainer& formats) {
+ layout.setAdditionalFormats(formats);
+ }
+ static inline QVector<QTextLayout::FormatRange> containerToVector(const FormatContainer& container) {
+ return container.toVector();
+ }
+#endif
+