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;
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to