Nodes: Hide the node preview button when the overlays are disabled
When the overlays are hidden or the previews overlays are hidden, it is more consistent to have the preview toggle button hidden than shown. This patch also removes the preview rendering when the previews are hidden. Pull Request: https://projects.blender.org/blender/blender/pulls/110949
This commit is contained in:
committed by
Brecht Van Lommel
parent
6afbb66a53
commit
c63bcbf906
@@ -2213,7 +2213,8 @@ static void node_draw_basis(const bContext &C,
|
||||
bNodeInstanceKey key)
|
||||
{
|
||||
const float iconbutw = NODE_HEADER_ICON_SIZE;
|
||||
const bool show_preview = (snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS) &&
|
||||
const bool show_preview = (snode.overlay.flag & SN_OVERLAY_SHOW_OVERLAYS) &&
|
||||
(snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS) &&
|
||||
(node.flag & NODE_PREVIEW) &&
|
||||
(U.experimental.use_shader_node_previews ||
|
||||
ntree.type != NTREE_SHADER);
|
||||
@@ -2302,7 +2303,7 @@ static void node_draw_basis(const bContext &C,
|
||||
float iconofs = rct.xmax - 0.35f * U.widget_unit;
|
||||
|
||||
/* Preview. */
|
||||
if (node_is_previewable(ntree, node)) {
|
||||
if (node_is_previewable(snode, ntree, node)) {
|
||||
iconofs -= iconbutw;
|
||||
UI_block_emboss_set(&block, UI_EMBOSS_NONE);
|
||||
uiBut *but = uiDefIconBut(&block,
|
||||
@@ -3511,7 +3512,8 @@ static void draw_nodetree(const bContext &C,
|
||||
}
|
||||
else if (ntree.type == NTREE_SHADER && U.experimental.use_shader_node_previews &&
|
||||
BKE_scene_uses_shader_previews(CTX_data_scene(&C)) &&
|
||||
U.experimental.use_shader_node_previews)
|
||||
snode->overlay.flag & SN_OVERLAY_SHOW_OVERLAYS &&
|
||||
snode->overlay.flag & SN_OVERLAY_SHOW_PREVIEWS)
|
||||
{
|
||||
tree_draw_ctx.nested_group_infos = get_nested_previews(C, *snode);
|
||||
}
|
||||
|
||||
@@ -1124,8 +1124,13 @@ void node_set_hidden_sockets(bNode *node, int set)
|
||||
}
|
||||
}
|
||||
|
||||
bool node_is_previewable(const bNodeTree &ntree, const bNode &node)
|
||||
bool node_is_previewable(const SpaceNode &snode, const bNodeTree &ntree, const bNode &node)
|
||||
{
|
||||
if (!(snode.overlay.flag & SN_OVERLAY_SHOW_OVERLAYS) ||
|
||||
!(snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (ntree.type == NTREE_SHADER) {
|
||||
return U.experimental.use_shader_node_previews &&
|
||||
!(node.is_frame() || node.is_group_input() || node.is_group_output() ||
|
||||
@@ -1578,7 +1583,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
|
||||
for (bNode *node : snode->edittree->all_nodes()) {
|
||||
if (node->flag & SELECT) {
|
||||
|
||||
if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode->edittree, *node)) {
|
||||
if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode, *snode->edittree, *node)) {
|
||||
continue;
|
||||
}
|
||||
if (toggle_flag == NODE_OPTIONS &&
|
||||
@@ -1598,7 +1603,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
|
||||
for (bNode *node : snode->edittree->all_nodes()) {
|
||||
if (node->flag & SELECT) {
|
||||
|
||||
if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode->edittree, *node)) {
|
||||
if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode, *snode->edittree, *node)) {
|
||||
continue;
|
||||
}
|
||||
if (toggle_flag == NODE_OPTIONS &&
|
||||
|
||||
@@ -339,7 +339,7 @@ bool composite_node_editable(bContext *C);
|
||||
|
||||
bool node_has_hidden_sockets(bNode *node);
|
||||
void node_set_hidden_sockets(bNode *node, int set);
|
||||
bool node_is_previewable(const bNodeTree &ntree, const bNode &node);
|
||||
bool node_is_previewable(const SpaceNode &snode, const bNodeTree &ntree, const bNode &node);
|
||||
int node_render_changed_exec(bContext *, wmOperator *);
|
||||
bNodeSocket *node_find_indicated_socket(SpaceNode &snode,
|
||||
const float2 &cursor,
|
||||
|
||||
Reference in New Issue
Block a user