UI: Store collapse state of node interface panel
Every redraw to node interface tree view was resetting the collapsed state of panels. Added `NODE_INTERFACE_PANEL_IS_COLLAPSED` to store the collapse/expand state. Resolves #145153 Pull Request: https://projects.blender.org/blender/blender/pulls/145157
This commit is contained in:
committed by
Pratik Borhade
parent
0d3788ff00
commit
abfb359b6a
@@ -223,6 +223,20 @@ class NodePanelViewItem : public BasicTreeViewItem {
|
||||
return &panel_ == &other_item->panel_;
|
||||
}
|
||||
|
||||
std::optional<bool> should_be_collapsed() const override
|
||||
{
|
||||
return panel_.flag & NODE_INTERFACE_PANEL_IS_COLLAPSED;
|
||||
}
|
||||
|
||||
bool set_collapsed(const bool collapsed) override
|
||||
{
|
||||
if (!AbstractTreeViewItem::set_collapsed(collapsed)) {
|
||||
return false;
|
||||
}
|
||||
SET_FLAG_FROM_TEST(panel_.flag, collapsed, NODE_INTERFACE_PANEL_IS_COLLAPSED);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool supports_renaming() const override
|
||||
{
|
||||
return !ID_IS_LINKED(&nodetree_);
|
||||
|
||||
@@ -149,8 +149,10 @@ typedef enum NodeTreeInterfacePanelFlag {
|
||||
NODE_INTERFACE_PANEL_ALLOW_CHILD_PANELS_LEGACY = 1 << 1,
|
||||
/* Allow adding sockets after panels. */
|
||||
NODE_INTERFACE_PANEL_ALLOW_SOCKETS_AFTER_PANELS = 1 << 2,
|
||||
/* Whether the panel is collapsed in the node group interface tree view. */
|
||||
NODE_INTERFACE_PANEL_IS_COLLAPSED = 1 << 3,
|
||||
} NodeTreeInterfacePanelFlag;
|
||||
ENUM_OPERATORS(NodeTreeInterfacePanelFlag, NODE_INTERFACE_PANEL_DEFAULT_CLOSED);
|
||||
ENUM_OPERATORS(NodeTreeInterfacePanelFlag, NODE_INTERFACE_PANEL_IS_COLLAPSED);
|
||||
|
||||
typedef enum NodeDefaultInputType {
|
||||
NODE_DEFAULT_INPUT_VALUE = 0,
|
||||
|
||||
Reference in New Issue
Block a user