diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-11-01 11:11:12 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-04-05 08:28:56 +0000 |
commit | 89120c4a76fed3c62c019514c12e7fb7c063b4b7 (patch) | |
tree | e3b301df1529ac9cd382441a7a27889dcab355c3 /src/tools/uic/shared/language.h | |
parent | ed485243b594a730cebee4d76847e0f556d369f4 (diff) |
uic: Refactor string constant formatting
Refactor the fixString() helper, moving the code into a streamable
class using a helper which can be used for different encodings.
Task-number: PYSIDE-797
Change-Id: I0f82945b6b334da8524882dda2f104327eba79d4
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'src/tools/uic/shared/language.h')
-rw-r--r-- | src/tools/uic/shared/language.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/tools/uic/shared/language.h b/src/tools/uic/shared/language.h index e7201b6529..04a3763e54 100644 --- a/src/tools/uic/shared/language.h +++ b/src/tools/uic/shared/language.h @@ -29,6 +29,7 @@ #ifndef LANGUAGE_H #define LANGUAGE_H +#include <QtCore/qstring.h> #include <QtCore/qstringview.h> QT_FORWARD_DECLARE_CLASS(QTextStream) @@ -76,6 +77,36 @@ const char *sizePolicy(int v); const char *dockWidgetArea(int v); const char *paletteColorRole(int v); +enum class Encoding { Utf8, Unicode }; + +void _formatString(QTextStream &str, const QString &value, const QString &indent, + bool qString); + +template <bool AsQString> +class _string +{ +public: + explicit _string(const QString &value, const QString &indent = QString()) + : m_value(value), m_indent(indent) {} + + void format(QTextStream &str) const + { _formatString(str, m_value, m_indent, AsQString); } + +private: + const QString &m_value; + const QString &m_indent; +}; + +template <bool AsQString> +inline QTextStream &operator<<(QTextStream &str, const language::_string<AsQString> &s) +{ + s.format(str); + return str; +} + +using charliteral = _string<false>; +using qstring = _string<true>; + } // namespace language #endif // LANGUAGE_H |