[Bf-blender-cvs] [f9fe755dba8] master: Nodes: add default value to string socket declaration

Erik Abrahamsson noreply at git.blender.org
Mon Oct 18 12:02:47 CEST 2021


Commit: f9fe755dba8e99d3b7ee1fb9b0a1197c5eb5c687
Author: Erik Abrahamsson
Date:   Mon Oct 18 11:59:49 2021 +0200
Branches: master
https://developer.blender.org/rBf9fe755dba8e99d3b7ee1fb9b0a1197c5eb5c687

Nodes: add default value to string socket declaration

Differential Revision: https://developer.blender.org/D12758

===================================================================

M	source/blender/nodes/NOD_socket_declarations.hh
M	source/blender/nodes/intern/node_socket_declarations.cc

===================================================================

diff --git a/source/blender/nodes/NOD_socket_declarations.hh b/source/blender/nodes/NOD_socket_declarations.hh
index e22b96cd1ff..d4958f433d6 100644
--- a/source/blender/nodes/NOD_socket_declarations.hh
+++ b/source/blender/nodes/NOD_socket_declarations.hh
@@ -145,14 +145,26 @@ class ColorBuilder : public SocketDeclarationBuilder<Color> {
   ColorBuilder &default_value(const ColorGeometry4f value);
 };
 
+class StringBuilder;
+
 class String : public SocketDeclaration {
+ private:
+  std::string default_value_;
+
+  friend StringBuilder;
+
  public:
-  using Builder = SocketDeclarationBuilder<String>;
+  using Builder = StringBuilder;
 
   bNodeSocket &build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out) const override;
   bool matches(const bNodeSocket &socket) const override;
 };
 
+class StringBuilder : public SocketDeclarationBuilder<String> {
+ public:
+  StringBuilder &default_value(const std::string value);
+};
+
 class IDSocketDeclaration : public SocketDeclaration {
  private:
   const char *idname_;
@@ -322,6 +334,18 @@ inline ColorBuilder &ColorBuilder::default_value(const ColorGeometry4f value)
 
 /** \} */
 
+/* -------------------------------------------------------------------- */
+/** \name #StringBuilder Inline Methods
+ * \{ */
+
+inline StringBuilder &StringBuilder::default_value(std::string value)
+{
+  decl_->default_value_ = std::move(value);
+  return *this;
+}
+
+/** \} */
+
 /* -------------------------------------------------------------------- */
 /** \name #IDSocketDeclaration and Children Inline Methods
  * \{ */
diff --git a/source/blender/nodes/intern/node_socket_declarations.cc b/source/blender/nodes/intern/node_socket_declarations.cc
index f910679d492..e823476f9e4 100644
--- a/source/blender/nodes/intern/node_socket_declarations.cc
+++ b/source/blender/nodes/intern/node_socket_declarations.cc
@@ -254,6 +254,7 @@ bNodeSocket &String::build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_ou
 {
   bNodeSocket &socket = *nodeAddStaticSocket(
       &ntree, &node, in_out, SOCK_STRING, PROP_NONE, identifier_.c_str(), name_.c_str());
+  STRNCPY(((bNodeSocketValueString *)socket.default_value)->value, default_value_.c_str());
   this->set_common_flags(socket);
   return socket;
 }



More information about the Bf-blender-cvs mailing list