Przeglądaj źródła

Add property type check. Model should not be a qproperty.

Tatyana Borisova 6 lat temu
rodzic
commit
be15f9c19d

+ 11 - 1
src/generator/classgeneratorbase.cpp

@@ -147,7 +147,8 @@ void ClassGeneratorBase::printProperties(const Descriptor *message)
     //private section
     Indent();
     for (int i = 0; i < message->field_count(); i++) {
-        printField(message->field(i), PropertyTemplate);
+        if (!isListType(message->field(i)))
+            printField(message->field(i), PropertyTemplate);
     }
     for (int i = 0; i < message->field_count(); i++) {
         printField(message->field(i), MemberTemplate);
@@ -266,6 +267,15 @@ void ClassGeneratorBase::printCopyFunctionality(const ::google::protobuf::Descri
 
 }
 
+bool ClassGeneratorBase::isListType(const ::google::protobuf::FieldDescriptor *field)
+{
+    if (field && field->is_repeated()
+            && field->type() == FieldDescriptor::TYPE_MESSAGE) {
+        return true;
+    }
+    return  false;
+}
+
 bool ClassGeneratorBase::isComplexType(const FieldDescriptor *field)
 {
     if (field == nullptr)

+ 1 - 0
src/generator/classgeneratorbase.h

@@ -111,6 +111,7 @@ protected:
     }
 
     bool isComplexType(const ::google::protobuf::FieldDescriptor *field);
+    bool isListType(const ::google::protobuf::FieldDescriptor *field);
 };
 
 }