summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/shared/language.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-11-01 11:11:12 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-04-05 08:28:56 +0000
commit89120c4a76fed3c62c019514c12e7fb7c063b4b7 (patch)
treee3b301df1529ac9cd382441a7a27889dcab355c3 /src/tools/uic/shared/language.h
parented485243b594a730cebee4d76847e0f556d369f4 (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.h31
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