Преглед на файлове

Add QObject parent parameter for generated client classes

Alexey Edelev преди 5 години
родител
ревизия
24933f375f
променени са 4 файла, в които са добавени 6 реда и са изтрити 4 реда
  1. 1 1
      src/generator/clientgenerator.cpp
  2. 1 1
      src/generator/clientsourcegenerator.cpp
  3. 2 1
      src/generator/templates.cpp
  4. 2 1
      src/generator/templates.h

+ 1 - 1
src/generator/clientgenerator.cpp

@@ -55,7 +55,7 @@ void ClientGenerator::printClientClass()
 void ClientGenerator::printConstructor()
 {
     Indent();
-    mPrinter.Print({{"classname", mClassName}}, Templates::ConstructorTemplate);
+    mPrinter.Print({{"classname", mClassName}}, Templates::QObjectConstructorTemplate);
     Outdent();
 }
 

+ 1 - 1
src/generator/clientsourcegenerator.cpp

@@ -63,5 +63,5 @@ void ClientSourceGenerator::printConstructor()
 {
     mPrinter.Print({ {"classname", mClassName},
                      {"parent_class", "QAbstractGrpcClient"},
-                     {"service_name", mService->full_name()} }, Templates::ConstructorDefinitionSyncTemplate);
+                     {"service_name", mService->full_name()} }, Templates::ClientConstructorDefinitionTemplate);
 }

+ 2 - 1
src/generator/templates.cpp

@@ -86,6 +86,7 @@ const char *Templates::EnumFieldTemplate = "$enumvalue$ = $value$,\n";
 const char *Templates::ProtoConstructorTemplate = "$classname$($parameter_list$QObject *parent = nullptr);\n";
 const char *Templates::ProtoConstructorDefinitionTemplate = "$classname$::$classname$($parameter_list$QObject *parent) : QObject(parent)";
 const char *Templates::ConstructorTemplate = "$classname$();\n";
+const char *Templates::QObjectConstructorTemplate = "explicit $classname$(QObject *parent = nullptr);\n";
 const char *Templates::ConstructorHeaderTemplate = "$classname$() {}\n";
 const char *Templates::CopyConstructorTemplate = "$classname$(const $classname$ &other) : QObject() {\n";
 const char *Templates::MoveConstructorTemplate = "$classname$($classname$ &&other) : QObject() {\n";
@@ -189,7 +190,7 @@ const char *Templates::ClientMethodDeclarationAsync2Template = "Q_INVOKABLE void
 const char *Templates::ServerMethodDeclarationTemplate = "Q_INVOKABLE virtual $return_type$ $method_name$(const $param_type$ &$param_name$) = 0;\n";
 
 
-const char *Templates::ConstructorDefinitionSyncTemplate = "\n$classname$::$classname$() : $parent_class$(\"$service_name$\")\n"
+const char *Templates::ClientConstructorDefinitionTemplate = "\n$classname$::$classname$(QObject *parent) : $parent_class$(\"$service_name$\", parent)\n"
                                                            "{\n"
                                                            "}\n";
 const char *Templates::ClientMethodDefinitionSyncTemplate = "\nQtProtobuf::QGrpcStatus $classname$::$method_name$(const $param_type$ &$param_name$, const QPointer<$return_type$> &$return_name$)\n"

+ 2 - 1
src/generator/templates.h

@@ -69,6 +69,7 @@ public:
     static const char *ProtoConstructorTemplate;
     static const char *ProtoConstructorDefinitionTemplate;
     static const char *ConstructorTemplate;
+    static const char *QObjectConstructorTemplate;
     static const char *CopyConstructorTemplate;
     static const char *MoveConstructorTemplate;
     static const char *DeletedCopyConstructorTemplate;
@@ -115,7 +116,7 @@ public:
     static const char *QmlRegisterTypeTemplate;
     static const char *QmlRegisterTypeUncreatableTemplate;
     //Service templates
-    static const char *ConstructorDefinitionSyncTemplate;
+    static const char *ClientConstructorDefinitionTemplate;
 
     static const char *ClientMethodDeclarationSyncTemplate;
     static const char *ClientMethodDeclarationAsyncTemplate;