Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonique Dewanchand <m.dewanchand@atmind.nl>2014-01-18 21:20:21 +0400
committerMonique Dewanchand <m.dewanchand@atmind.nl>2014-01-18 21:20:21 +0400
commit7142b970853f209f6c43319b7f862bcbdbea3728 (patch)
treec52a4e1d569d86f98dc0f27f493da1338b58d346
parent90283843e3eebdc651bd7f74f1f0dded8dfa3238 (diff)
Make it possible to hide/unhide a node during node transform operations.
During drag the H key can be used to toggle the hide flag of the selected nodes. This makes it easier to 'attach' nodes to available links in narrow places.
-rw-r--r--source/blender/editors/transform/transform.c7
-rw-r--r--source/blender/editors/transform/transform.h2
-rw-r--r--source/blender/editors/transform/transform_conversions.c17
3 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 68fe1c42414..59cb050a335 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1438,6 +1438,13 @@ int transformEvent(TransInfo *t, const wmEvent *event)
handled = true;
}
break;
+ case HKEY:
+ if (t->spacetype == SPACE_NODE) {
+ t->flag ^= T_TOGGLE_HIDDEN;
+ t->redraw |= TREDRAW_HARD;
+ handled = true;
+ }
+ break;
default:
break;
}
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 1e7052926b3..5df69529b45 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -424,6 +424,7 @@ typedef struct TransInfo {
/* alternative transformation. used to add offset to tracking markers */
#define T_ALT_TRANSFORM (1 << 24)
+#define T_TOGGLE_HIDDEN (1 << 25) /* node editor: toggle state of the hidden flags */
/* TransInfo->modifiers */
#define MOD_CONSTRAINT_SELECT 0x01
@@ -472,6 +473,7 @@ typedef struct TransInfo {
#define TD_MOVEHANDLE2 (1 << 18)
#define TD_PBONE_LOCAL_MTX_P (1 << 19) /* exceptional case with pose bone rotating when a parent bone has 'Local Location' option enabled and rotating also transforms it. */
#define TD_PBONE_LOCAL_MTX_C (1 << 20) /* same as above but for a child bone */
+#define TD_HIDDEN (1 << 21) /* for hide toggling node editor */
/* transsnap->status */
#define SNAP_FORCED 1
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 8c3fa775bca..0eddb68d8a4 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -2375,6 +2375,7 @@ cleanup:
void flushTransNodes(TransInfo *t)
{
const float dpi_fac = UI_DPI_FAC;
+ bool hidden_state;
int a;
TransData *td;
TransData2D *td2d;
@@ -2393,6 +2394,17 @@ void flushTransNodes(TransInfo *t)
node->locx = td2d->loc[0] / dpi_fac;
node->locy = td2d->loc[1] / dpi_fac;
#endif
+ /* update node hidden state with transform data TD_HIDDEN + transformInfo T_TOGGLE_HIDDEN */
+ hidden_state = (td->flag & TD_HIDDEN) > 0;
+ if (t->state != TRANS_CANCEL) {
+ hidden_state ^= (t->flag & T_TOGGLE_HIDDEN) > 0;
+ }
+
+ if (hidden_state) {
+ node->flag |= NODE_HIDDEN;
+ } else {
+ node->flag &= ~NODE_HIDDEN;
+ }
}
/* handle intersection with noodles */
@@ -5987,6 +5999,9 @@ static void NodeToTransData(TransData *td, TransData2D *td2d, bNode *node, const
td->ext = NULL; td->val = NULL;
td->flag |= TD_SELECTED;
+ if(node->flag & NODE_HIDDEN){
+ td->flag |= TD_HIDDEN;
+ }
td->dist = 0.0;
unit_m3(td->mtx);
@@ -6021,6 +6036,8 @@ static void createTransNodeData(bContext *UNUSED(C), TransInfo *t)
/* nodes dont support PET and probably never will */
t->flag &= ~T_PROP_EDIT_ALL;
+ /* initial: do not toggle hidden */
+ t->flag &= ~T_TOGGLE_HIDDEN;
/* set transform flags on nodes */
for (node = snode->edittree->nodes.first; node; node = node->next) {