forked from bartvdbraak/blender
2.5 / Nodes
* XKey for deleting selected nodes.
This commit is contained in:
parent
85c4e8fd2a
commit
6dc63e054f
@ -100,9 +100,19 @@
|
||||
#include "winlay.h"
|
||||
*/
|
||||
|
||||
#include "ED_space_api.h"
|
||||
#include "ED_screen.h"
|
||||
#include "ED_types.h"
|
||||
|
||||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "UI_view2d.h"
|
||||
|
||||
#include "node_intern.h"
|
||||
|
||||
// XXX XXX XXX
|
||||
static void BIF_undo_push(char *s) {}
|
||||
@ -1876,7 +1886,6 @@ void node_adduplicate(SpaceNode *snode)
|
||||
transform_nodes(snode->edittree, 'g', "Duplicate");
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void node_insert_convertor(SpaceNode *snode, bNodeLink *link)
|
||||
{
|
||||
bNode *newnode= NULL;
|
||||
@ -1910,8 +1919,6 @@ static void node_insert_convertor(SpaceNode *snode, bNodeLink *link)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeLink *link)
|
||||
{
|
||||
bNodeLink *tlink;
|
||||
@ -2080,6 +2087,8 @@ static int node_add_link(SpaceNode *snode)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* 0 */
|
||||
|
||||
void node_delete(SpaceNode *snode)
|
||||
{
|
||||
bNode *node, *next;
|
||||
@ -2103,11 +2112,13 @@ void node_delete(SpaceNode *snode)
|
||||
}
|
||||
|
||||
snode_verify_groups(snode);
|
||||
snode_handle_recalc(snode);
|
||||
BIF_undo_push("Delete nodes");
|
||||
// NODE_FIX_ME
|
||||
// snode_handle_recalc(snode);
|
||||
// BIF_undo_push("Delete nodes");
|
||||
// allqueue(REDRAWNODE, 1);
|
||||
}
|
||||
|
||||
|
||||
void node_hide(SpaceNode *snode)
|
||||
{
|
||||
bNode *node;
|
||||
@ -2129,10 +2140,12 @@ void node_hide(SpaceNode *snode)
|
||||
node->flag &= ~NODE_HIDDEN;
|
||||
}
|
||||
}
|
||||
BIF_undo_push("Hide nodes");
|
||||
// BIF_undo_push("Hide nodes");
|
||||
// allqueue(REDRAWNODE, 1);
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
void node_insert_key(SpaceNode *snode)
|
||||
{
|
||||
bNode *node= editnode_get_active(snode->edittree);
|
||||
@ -2737,3 +2750,30 @@ void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int node_delete_selection_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
wmWindow *window= CTX_wm_window(C);
|
||||
SpaceNode *snode= (SpaceNode*)CTX_wm_space_data(C);
|
||||
ARegion *ar= CTX_wm_region(C);
|
||||
node_delete(snode);
|
||||
ED_region_tag_redraw(ar);
|
||||
WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
/* operators */
|
||||
|
||||
void NODE_OT_delete_selection(wmOperatorType *ot)
|
||||
{
|
||||
PropertyRNA *prop;
|
||||
|
||||
/* identifiers */
|
||||
ot->name= "Delete";
|
||||
ot->idname= "NODE_OT_delete_selection";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= node_delete_selection_exec;
|
||||
ot->poll= ED_operator_node_active;
|
||||
}
|
||||
|
||||
|
@ -59,6 +59,7 @@ void NODE_OT_extend_select(struct wmOperatorType *ot);
|
||||
void NODE_OT_toggle_visibility(struct wmOperatorType *ot);
|
||||
void NODE_OT_fit_all(struct wmOperatorType *ot);
|
||||
void NODE_OT_border_select(struct wmOperatorType *ot);
|
||||
void NODE_OT_delete_selection(struct wmOperatorType *ot);
|
||||
|
||||
/* drawnode.c */
|
||||
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link);
|
||||
|
@ -53,6 +53,7 @@ void node_operatortypes(void)
|
||||
WM_operatortype_append(NODE_OT_toggle_visibility);
|
||||
WM_operatortype_append(NODE_OT_fit_all);
|
||||
WM_operatortype_append(NODE_OT_border_select);
|
||||
WM_operatortype_append(NODE_OT_delete_selection);
|
||||
}
|
||||
|
||||
void node_keymap(struct wmWindowManager *wm)
|
||||
@ -64,6 +65,7 @@ void node_keymap(struct wmWindowManager *wm)
|
||||
WM_keymap_add_item(keymap, "NODE_OT_toggle_visibility", ACTIONMOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "NODE_OT_fit_all", HOMEKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "NODE_OT_border_select", BKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "NODE_OT_delete_selection", XKEY, KM_PRESS, 0, 0);
|
||||
|
||||
transform_keymap_for_space(wm, keymap, SPACE_NODE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user