|
@@ -28,41 +28,44 @@
|
|
|
using namespace qtprotobuf::generator;
|
|
|
|
|
|
const char *Templates::DefaultProtobufIncludesTemplate = "#include <QMetaType>\n"
|
|
|
- "#include <protobufobject.h>\n"
|
|
|
- "#include <unordered_map>\n\n";
|
|
|
+ "#include <protobufobject.h>\n"
|
|
|
+ "#include <unordered_map>\n\n";
|
|
|
|
|
|
const char *Templates::PreambleTemplate = "/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */\n\n"
|
|
|
- "#pragma once\n\n"
|
|
|
- "#include <QObject>\n"
|
|
|
- "#include <QMetaType>\n"
|
|
|
- "#include <protobufobject.h>\n"
|
|
|
- "#include <unordered_map>\n\n";
|
|
|
+ "#pragma once\n\n"
|
|
|
+ "#include <QObject>\n"
|
|
|
+ "#include <QMetaType>\n"
|
|
|
+ "#include <protobufobject.h>\n"
|
|
|
+ "#include <unordered_map>\n\n";
|
|
|
|
|
|
const char *Templates::InternalIncludeTemplate = "#include \"$type_lower$.h\"\n";
|
|
|
const char *Templates::ExternalIncludeTemplate = "#include <$type$>\n";
|
|
|
const char *Templates::ListModelsIncludeTemplate = "#include <QList>\n";
|
|
|
+const char *Templates::GlobalEnumIncludeTemplate = "#include <globalenums.h>\n";
|
|
|
|
|
|
const char *Templates::UsingQtProtobufNamespaceTemplate = "\nusing namespace qtprotobuf;\n";
|
|
|
-const char *Templates::ComplexTypeRegistrationMethodTemplate = "\nstatic void registerTypes();\n";
|
|
|
+const char *Templates::ComplexTypeRegistrationMethodTemplate = "\n static void registerTypes();\n";
|
|
|
const char *Templates::ComplexTypeRegistrationTemplate = "void $classname$::registerTypes()\n{\n"
|
|
|
- " static bool registationDone = false;\n"
|
|
|
- " if (!registationDone) {\n\n"
|
|
|
- " int metaTypeId = qRegisterMetaType<$classname$>(\"$classname$\");\n"
|
|
|
- " int listMetaTypeId = qRegisterMetaType<$classname$List>(\"$classname$List\");\n"
|
|
|
- " qRegisterMetaType<$namespaces$::$classname$>(\"$namespaces$::$classname$\");\n"
|
|
|
- " qRegisterMetaType<$namespaces$::$classname$List>(\"$namespaces$::$classname$List\");\n"
|
|
|
- " registerSerializers(metaTypeId, listMetaTypeId);\n"
|
|
|
- " }\n}\n";
|
|
|
+ " static bool registationDone = false;\n"
|
|
|
+ " if (!registationDone) {\n\n"
|
|
|
+ " int metaTypeId = qRegisterMetaType<$classname$>(\"$classname$\");\n"
|
|
|
+ " int listMetaTypeId = qRegisterMetaType<$classname$List>(\"$classname$List\");\n"
|
|
|
+ " qRegisterMetaType<$namespaces$::$classname$>(\"$namespaces$::$classname$\");\n"
|
|
|
+ " qRegisterMetaType<$namespaces$::$classname$List>(\"$namespaces$::$classname$List\");\n"
|
|
|
+ " registerSerializers(metaTypeId, listMetaTypeId);\n"
|
|
|
+ " }\n}\n";
|
|
|
const char *Templates::ComplexListTypeUsingTemplate = "using $classname$List = QList<$classname$>;\n";
|
|
|
|
|
|
+const char *Templates::EnumTypeUsingTemplate = "using $enum$List = QList<$enum$>;\n";
|
|
|
+
|
|
|
const char *Templates::NamespaceTemplate = "\nnamespace $namespace$ {\n";
|
|
|
|
|
|
const char *Templates::NonProtoClassDefinitionTemplate = "\nclass $classname$ : public QObject\n"
|
|
|
- "{\n"
|
|
|
- " Q_OBJECT\n";
|
|
|
+ "{\n"
|
|
|
+ " Q_OBJECT\n";
|
|
|
const char *Templates::ClassDefinitionTemplate = "\nclass $classname$ final : public qtprotobuf::ProtobufObject<$classname$>\n"
|
|
|
- "{\n"
|
|
|
- " Q_OBJECT\n";
|
|
|
+ "{\n"
|
|
|
+ " Q_OBJECT\n";
|
|
|
|
|
|
const char *Templates::PropertyTemplate = "Q_PROPERTY($type$ $property_name$ READ $property_name$ WRITE set$property_name_cap$ NOTIFY $property_name$Changed)\n";
|
|
|
const char *Templates::MessagePropertyTemplate = "Q_PROPERTY($type$ $property_name$ READ $property_name$ WRITE set$property_name_cap$ NOTIFY $property_name$Changed)\n";
|
|
@@ -76,33 +79,34 @@ const char *Templates::MoveConstructorTemplate = "$classname$($classname$ &&othe
|
|
|
const char *Templates::CopyFieldTemplate = "m_$property_name$ = other.m_$property_name$;\n";
|
|
|
const char *Templates::MoveComplexFieldTemplate = "m_$property_name$ = std::move(other.m_$property_name$);\n";
|
|
|
const char *Templates::MoveFieldTemplate = "m_$property_name$ = std::exchange(other.m_$property_name$, 0);\n";
|
|
|
+const char *Templates::EnumMoveFieldTemplate = "m_$property_name$ = other.m_$property_name$;\n";
|
|
|
const char *Templates::AssignmentOperatorTemplate = "$classname$ &operator =(const $classname$ &other) {\n";
|
|
|
const char *Templates::AssignmentOperatorReturnTemplate = "return *this;\n";
|
|
|
const char *Templates::MoveAssignmentOperatorTemplate = "$classname$ &operator =($classname$ &&other) {\n";
|
|
|
const char *Templates::EqualOperatorTemplate = "bool operator ==(const $type$ &other) const {\n"
|
|
|
- " return ";
|
|
|
+ " return ";
|
|
|
const char *Templates::EqualOperatorPropertyTemplate = "m_$property_name$ == other.m_$property_name$";
|
|
|
const char *Templates::NotEqualOperatorTemplate = "bool operator !=(const $type$ &other) const {\n"
|
|
|
- " return !this->operator ==(other);\n"
|
|
|
- "}\n\n";
|
|
|
+ " return !this->operator ==(other);\n"
|
|
|
+ "}\n\n";
|
|
|
|
|
|
const char *Templates::GetterTemplate = "$type$ $property_name$() const {\n"
|
|
|
- " return m_$property_name$;\n"
|
|
|
- "}\n\n";
|
|
|
+ " return m_$property_name$;\n"
|
|
|
+ "}\n\n";
|
|
|
|
|
|
const char *Templates::SetterTemplateSimpleType = "void set$property_name_cap$($type$ $property_name$) {\n"
|
|
|
- " if (m_$property_name$ != $property_name$) {\n"
|
|
|
- " m_$property_name$ = $property_name$;\n"
|
|
|
- " $property_name$Changed();\n"
|
|
|
- " }\n"
|
|
|
- "}\n\n";
|
|
|
+ " if (m_$property_name$ != $property_name$) {\n"
|
|
|
+ " m_$property_name$ = $property_name$;\n"
|
|
|
+ " $property_name$Changed();\n"
|
|
|
+ " }\n"
|
|
|
+ "}\n\n";
|
|
|
|
|
|
const char *Templates::SetterTemplateComplexType = "void set$property_name_cap$(const $type$ &$property_name$) {\n"
|
|
|
- " if (m_$property_name$ != $property_name$) {\n"
|
|
|
- " m_$property_name$ = $property_name$;\n"
|
|
|
- " $property_name$Changed();\n"
|
|
|
- " }\n"
|
|
|
- "}\n\n";
|
|
|
+ " if (m_$property_name$ != $property_name$) {\n"
|
|
|
+ " m_$property_name$ = $property_name$;\n"
|
|
|
+ " $property_name$Changed();\n"
|
|
|
+ " }\n"
|
|
|
+ "}\n\n";
|
|
|
|
|
|
const char *Templates::SignalsBlockTemplate = "\nsignals:\n";
|
|
|
const char *Templates::SignalTemplate = "void $property_name$Changed();\n";
|
|
@@ -139,7 +143,7 @@ const std::unordered_map<::google::protobuf::FieldDescriptor::Type, std::string>
|
|
|
// {FieldDescriptor::TYPE_MESSAGE, ""},//Custom typename
|
|
|
{::google::protobuf::FieldDescriptor::TYPE_BYTES, "QByteArray"},
|
|
|
{::google::protobuf::FieldDescriptor::TYPE_UINT32, "int"},//Limited usage see https://doc.qt.io/qt-5/qtqml-typesystem-basictypes.html
|
|
|
- // {FieldDescriptor::TYPE_ENUM, ""},//Custom typename
|
|
|
+ {::google::protobuf::FieldDescriptor::TYPE_ENUM, ""},//Custom typename
|
|
|
{::google::protobuf::FieldDescriptor::TYPE_SFIXED32, "int"},
|
|
|
// {FieldDescriptor::TYPE_SFIXED64, "int"},//Not supported see https://doc.qt.io/qt-5/qtqml-typesystem-basictypes.html
|
|
|
{::google::protobuf::FieldDescriptor::TYPE_SINT32, "int"},
|