Page MenuHome

action.groups.show_expanded datablock is broken
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 419.67

Blender Version
Broken: version: 2.80 (sub 57), branch: master, commit date: 2019-04-16 01:41, hash: rBdb80d5c560f5
Also broken in 2.79b (release)

Short description of error
Checking or unchecking the "Expanded" checkbox for groups of f-curves in the data-blocks view of the outliner does not change whether or not that group is expanded in the graph editor.

This is printed in info when change the checkbox:
bpy.data.actions["CubeAction"].(null) = True

Setting bpy.data.actions.groups.show_expanded using the console/a script also does not work.

Exact steps for others to reproduce the error

  1. Press I twice to add a group of keyframe to the default cube.
  2. In the data-blocks view of the outliner, navigate to:

actions.groups

  1. Note that checking or unchecking the Expanded checkbox will not expand or minimise the group of f-curves created in Step #1 in the graph editor. (see image)

Event Timeline

Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.Apr 16 2019, 1:33 PM

@Sebastian Parborg (zeddb), are you sure we have a bug here?

It seems to work as expected.

Looks like the setting @Trent Stanley (TrentStanley) is looking for (to expand the Action), is not available in the API.

Right, my bad.

My bad for not expanding the action in the f-curve editor in the screenshot. However I've just downloaded the latest version of 2.8 available on builder.blender.org and it is still not working. Same for latest version of 2.79.

@Jacques Lucke (JacquesLucke) The second time over, we looked at the dope sheet. This is for the f-curve editor

Ah, found the reason:

case ACHANNEL_SETTING_EXPAND: /* expanded */
    {
      /* NOTE: Graph Editor uses a different flag to everywhere else for this,
       * allowing different collapsing of groups there, since sharing the flag
       * proved to be a hazard for workflows...
       */
      return (ac->spacetype == SPACE_GRAPH) ? AGRP_EXPANDED_G : /* Graph Editor case */
                 AGRP_EXPANDED;                                 /* DopeSheet and elsewhere */
    }

There are two separate flags for expansion. This is to make it possible to expand different groups in the graph editor and dopesheet.
However, only the one for the dopesheet is defined in rna_action.c. We could easily add the flag for the graph editor as well, I'm just not sure about the naming. Ideas?

You mean that we should rename AGRP_EXPANDED_G to something else?

Currently there is

prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_flag(prop, PROP_NO_DEG_UPDATE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", AGRP_EXPANDED);
RNA_def_property_ui_text(prop, "Expanded", "Action group is expanded");
RNA_def_property_update(prop, NC_ANIMATION | ND_ANIMCHAN | NA_EDITED, NULL);

in rna_action.c.
To expose the AGRP_EXPANDED_G we need some other name like show_expanded_g. But that looks quite ugly.

Eh, I think that it would be ok for now just to stick with the bad naming so we are consistent with the code in place.

I do agree though that perhaps we could do something in the future about this.

There is no need to be consistent with obscure internal names, the Python API should have readable names.

The simple solution would be to rename show_expanded to show_expanded_dopesheet and add show_expanded_graph.