Geometry Nodes: use placeholder instead of label in some string sockets
This makes the input field much wider. I enabled this for most string sockets except for a few where it is important to see the label even if the user has inserted a string already (usually because there is more than one string input). Pull Request: https://projects.blender.org/blender/blender/pulls/127992
This commit is contained in:
@@ -1303,6 +1303,7 @@ static void std_node_socket_draw(
|
||||
return;
|
||||
}
|
||||
|
||||
const char *label = text;
|
||||
text = (sock->flag & SOCK_HIDE_LABEL) ? "" : text;
|
||||
|
||||
/* Some socket types draw the gizmo icon in a special way to look better. All others use a
|
||||
@@ -1368,7 +1369,7 @@ static void std_node_socket_draw(
|
||||
case SOCK_STRING: {
|
||||
if (socket_needs_attribute_search(*node, *sock)) {
|
||||
if (text[0] == '\0') {
|
||||
node_geometry_add_attribute_search_button(*C, *node, *ptr, *layout);
|
||||
node_geometry_add_attribute_search_button(*C, *node, *ptr, *layout, label);
|
||||
}
|
||||
else {
|
||||
uiLayout *row = uiLayoutSplit(layout, 0.4f, false);
|
||||
@@ -1378,7 +1379,15 @@ static void std_node_socket_draw(
|
||||
}
|
||||
else {
|
||||
if (text[0] == '\0') {
|
||||
uiItemR(layout, ptr, "default_value", DEFAULT_FLAGS, "", ICON_NONE);
|
||||
uiItemFullR(layout,
|
||||
ptr,
|
||||
RNA_struct_find_property(ptr, "default_value"),
|
||||
-1,
|
||||
0,
|
||||
UI_ITEM_NONE,
|
||||
"",
|
||||
ICON_NONE,
|
||||
label);
|
||||
}
|
||||
else {
|
||||
uiLayout *row = uiLayoutSplit(layout, 0.4f, false);
|
||||
|
||||
@@ -231,7 +231,8 @@ static void attribute_search_exec_fn(bContext *C, void *data_v, void *item_v)
|
||||
void node_geometry_add_attribute_search_button(const bContext & /*C*/,
|
||||
const bNode &node,
|
||||
PointerRNA &socket_ptr,
|
||||
uiLayout &layout)
|
||||
uiLayout &layout,
|
||||
const StringRefNull placeholder)
|
||||
{
|
||||
uiBlock *block = uiLayoutGetBlock(&layout);
|
||||
uiBut *but = uiDefIconTextButR(block,
|
||||
@@ -249,6 +250,7 @@ void node_geometry_add_attribute_search_button(const bContext & /*C*/,
|
||||
0.0f,
|
||||
0.0f,
|
||||
"");
|
||||
UI_but_placeholder_set(but, placeholder.c_str());
|
||||
|
||||
const bNodeSocket &socket = *static_cast<const bNodeSocket *>(socket_ptr.data);
|
||||
AttributeSearchData *data = MEM_cnew<AttributeSearchData>(__func__);
|
||||
|
||||
@@ -400,7 +400,8 @@ void NODE_GGT_backdrop_corner_pin(wmGizmoGroupType *gzgt);
|
||||
void node_geometry_add_attribute_search_button(const bContext &C,
|
||||
const bNode &node,
|
||||
PointerRNA &socket_ptr,
|
||||
uiLayout &layout);
|
||||
uiLayout &layout,
|
||||
StringRefNull placeholder = "");
|
||||
|
||||
/* `node_context_path.cc` */
|
||||
|
||||
|
||||
@@ -42,8 +42,12 @@ static void node_declare(NodeDeclarationBuilder &b)
|
||||
b.add_input<decl::Color>("A", "A_COL").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::Color>("B", "B_COL").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::String>("A", "A_STR").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::String>("B", "B_STR").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::String>("A", "A_STR")
|
||||
.translation_context(BLT_I18NCONTEXT_ID_NODETREE)
|
||||
.hide_label();
|
||||
b.add_input<decl::String>("B", "B_STR")
|
||||
.translation_context(BLT_I18NCONTEXT_ID_NODETREE)
|
||||
.hide_label();
|
||||
|
||||
b.add_input<decl::Float>("C").default_value(0.9f);
|
||||
b.add_input<decl::Float>("Angle").default_value(0.0872665f).subtype(PROP_ANGLE);
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace blender::nodes::node_fn_replace_string_cc {
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::String>("String");
|
||||
b.add_input<decl::String>("String").hide_label();
|
||||
b.add_input<decl::String>("Find").description("The string to find in the input string");
|
||||
b.add_input<decl::String>("Replace").description("The string to replace each match with");
|
||||
b.add_output<decl::String>("String");
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace blender::nodes::node_fn_slice_string_cc {
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::String>("String");
|
||||
b.add_input<decl::String>("String").hide_label();
|
||||
b.add_input<decl::Int>("Position");
|
||||
b.add_input<decl::Int>("Length").min(0).default_value(10);
|
||||
b.add_output<decl::String>("String");
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace blender::nodes::node_fn_string_length_cc {
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::String>("String");
|
||||
b.add_input<decl::String>("String").hide_label();
|
||||
b.add_output<decl::Int>("Length");
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace blender::nodes::node_geo_get_named_grid_cc {
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>("Volume");
|
||||
b.add_input<decl::String>("Name");
|
||||
b.add_input<decl::String>("Name").hide_label();
|
||||
b.add_input<decl::Bool>("Remove").default_value(true).translation_context(
|
||||
BLT_I18NCONTEXT_OPERATOR_DEFAULT);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
const bNode *node = b.node_or_null();
|
||||
|
||||
b.add_input<decl::String>("Name").is_attribute_name();
|
||||
b.add_input<decl::String>("Name").is_attribute_name().hide_label();
|
||||
|
||||
if (node != nullptr) {
|
||||
const NodeGeometryInputNamedAttribute &storage = node_storage(*node);
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace blender::nodes::node_geo_input_named_layer_selection__cc {
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::String>("Name");
|
||||
b.add_input<decl::String>("Name").hide_label();
|
||||
b.add_output<decl::Bool>("Selection").field_source_reference_all();
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ enum class PatternMode {
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>("Geometry");
|
||||
b.add_input<decl::String>("Name").is_attribute_name();
|
||||
b.add_input<decl::String>("Name").is_attribute_name().hide_label();
|
||||
b.add_output<decl::Geometry>("Geometry").propagate_all();
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace blender::nodes::node_geo_set_geometry_name {
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>("Geometry");
|
||||
b.add_input<decl::String>("Name");
|
||||
b.add_input<decl::String>("Name").hide_label();
|
||||
b.add_output<decl::Geometry>("Geometry").propagate_all();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ static void node_declare(NodeDeclarationBuilder &b)
|
||||
|
||||
b.add_input<decl::Geometry>("Geometry");
|
||||
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().field_on_all();
|
||||
b.add_input<decl::String>("Name").is_attribute_name();
|
||||
b.add_input<decl::String>("Name").is_attribute_name().hide_label();
|
||||
|
||||
if (node != nullptr) {
|
||||
const NodeGeometryStoreNamedAttribute &storage = node_storage(*node);
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace blender::nodes::node_geo_store_named_grid_cc {
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>("Volume");
|
||||
b.add_input<decl::String>("Name");
|
||||
b.add_input<decl::String>("Name").hide_label();
|
||||
b.add_output<decl::Geometry>("Volume");
|
||||
|
||||
const bNode *node = b.node_or_null();
|
||||
|
||||
@@ -28,7 +28,7 @@ NODE_STORAGE_FUNCS(NodeGeometryStringToCurves)
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::String>("String");
|
||||
b.add_input<decl::String>("String").hide_label();
|
||||
b.add_input<decl::Float>("Size").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
|
||||
b.add_input<decl::Float>("Character Spacing").default_value(1.0f).min(0.0f);
|
||||
b.add_input<decl::Float>("Word Spacing").default_value(1.0f).min(0.0f);
|
||||
|
||||
Reference in New Issue
Block a user