Big Commit.
Now time-markers work in all time-related spaces (i.e. Ipo, Action Editor, NLA editor, TimeLine, Sound). The hotkeys and functionality set should be the same for each of these modes (with a few exceptions still). I've had to change a few hotkeys here and there, so hopefully they aren't too bad. Marker Operations: MKEY - Add Marker SHIFT MKEY - Rename marker (was CTRL MKEY) XKEY - Delete Marker PAGE UP - Jump to next marker PAGE DOWN - Jump to previous marker CTRL A - Select all markers SHIFT G - Transform markers (NLA, IPO, Action) G - Transform markers (Sound, Timeline) CTRL SHIFT D - Duplicate markers (NLA, IPO, Action) SHIFT D - Duplicate markers (Sound, Timeline) BKEY - select markers and other keyframes (if any) I've also made a few little tool additions to NLA and Action editors: * NLA editor - Snap To Frame. Now with the option to offset strip so that it starts at the current frame. Added menus for this. * Action editor - Snap To Frame A few new menus for this too
This commit is contained in:
@@ -135,6 +135,7 @@
|
||||
#include "BSE_filesel.h"
|
||||
#include "BSE_headerbuttons.h"
|
||||
#include "BSE_editnla_types.h"
|
||||
#include "BSE_time.h"
|
||||
|
||||
#include "BDR_vpaint.h"
|
||||
#include "BDR_editmball.h"
|
||||
@@ -1871,9 +1872,14 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
selectrow_nurb();
|
||||
}
|
||||
else if(G.qual==LR_CTRLKEY) {
|
||||
if (G.obedit->type==OB_MESH)
|
||||
if (G.obedit->type==OB_MESH) {
|
||||
CutEdgeloop(1);
|
||||
BIF_undo_push("Cut Edgeloop");
|
||||
}
|
||||
//else if (G.obedit->type==OB_ARMATURE) {
|
||||
// initTransform(TFM_BONE_ROLL, CTX_NONE);
|
||||
// Transform();
|
||||
//}
|
||||
}
|
||||
else if((G.qual==0)) {
|
||||
initTransform(TFM_ROTATION, CTX_NONE);
|
||||
@@ -2342,8 +2348,11 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
break;
|
||||
case RIGHTMOUSE:
|
||||
mouse_select_ipo();
|
||||
allqueue (REDRAWACTION, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
break;
|
||||
case MIDDLEMOUSE:
|
||||
if(in_ipo_buttons()) {
|
||||
@@ -2364,16 +2373,20 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
doredraw= 1;
|
||||
break;
|
||||
case PAGEUPKEY:
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
if(G.qual & LR_CTRLKEY)
|
||||
movekey_ipo(1);
|
||||
else if((G.qual==0))
|
||||
else if(G.qual & LR_SHIFTKEY)
|
||||
nextkey_ipo(1);
|
||||
else
|
||||
nextprev_marker(1);
|
||||
break;
|
||||
case PAGEDOWNKEY:
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
if(G.qual & LR_CTRLKEY)
|
||||
movekey_ipo(-1);
|
||||
else if((G.qual==0))
|
||||
else if(G.qual & LR_SHIFTKEY)
|
||||
nextkey_ipo(-1);
|
||||
else
|
||||
nextprev_marker(-1);
|
||||
break;
|
||||
case HOMEKEY:
|
||||
if((G.qual==0))
|
||||
@@ -2381,7 +2394,15 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
break;
|
||||
|
||||
case AKEY:
|
||||
if((G.qual==0)) {
|
||||
if (G.qual & LR_CTRLKEY) {
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
}
|
||||
else if (G.qual==0) {
|
||||
if(in_ipo_buttons()) {
|
||||
swap_visible_editipo();
|
||||
}
|
||||
@@ -2392,37 +2413,42 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
allqueue (REDRAWNLA, 0);
|
||||
allqueue (REDRAWACTION, 0);
|
||||
}
|
||||
|
||||
break;
|
||||
case BKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==0)
|
||||
borderselect_ipo();
|
||||
break;
|
||||
case CKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==0)
|
||||
move_to_frame();
|
||||
break;
|
||||
case DKEY:
|
||||
if((G.qual==LR_SHIFTKEY))
|
||||
if (G.qual==LR_SHIFTKEY)
|
||||
add_duplicate_editipo();
|
||||
else if (G.qual == (LR_CTRLKEY|LR_SHIFTKEY))
|
||||
duplicate_marker();
|
||||
break;
|
||||
case GKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual & LR_SHIFTKEY)
|
||||
transform_markers('g', 0);
|
||||
else if (G.qual==0)
|
||||
transform_ipo('g');
|
||||
break;
|
||||
case HKEY:
|
||||
if(G.qual==LR_ALTKEY)
|
||||
if (G.qual==LR_ALTKEY)
|
||||
sethandles_ipo(HD_AUTO_ANIM);
|
||||
if(G.qual==LR_SHIFTKEY)
|
||||
if (G.qual==LR_SHIFTKEY)
|
||||
sethandles_ipo(HD_AUTO);
|
||||
else if(G.qual==0)
|
||||
else if (G.qual==0)
|
||||
sethandles_ipo(HD_ALIGN);
|
||||
break;
|
||||
case JKEY:
|
||||
if((G.qual==LR_CTRLKEY))
|
||||
if (G.qual==LR_CTRLKEY)
|
||||
join_ipo_menu();
|
||||
break;
|
||||
case KKEY:
|
||||
if((G.qual==0)) {
|
||||
if (G.qual==0) {
|
||||
ipo_toggle_showkey();
|
||||
scrarea_queue_headredraw(curarea);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
@@ -2430,40 +2456,64 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
break;
|
||||
case MKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==LR_CTRLKEY) {
|
||||
ipo_mirror_menu();
|
||||
break;
|
||||
}
|
||||
if (G.qual == 0)
|
||||
add_marker(CFRA);
|
||||
else if (G.qual == LR_SHIFTKEY)
|
||||
rename_marker();
|
||||
else
|
||||
break;
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
break;
|
||||
case NKEY:
|
||||
toggle_blockhandler(sa, IPO_HANDLER_PROPERTIES, UI_PNL_TO_MOUSE);
|
||||
doredraw= 1;
|
||||
break;
|
||||
case OKEY:
|
||||
if(G.qual==LR_SHIFTKEY)
|
||||
if (G.qual==LR_SHIFTKEY)
|
||||
smooth_ipo();
|
||||
else
|
||||
clean_ipo(sipo->ipo, 1);
|
||||
break;
|
||||
case RKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==0)
|
||||
ipo_record();
|
||||
break;
|
||||
case SKEY:
|
||||
if((G.qual==LR_SHIFTKEY)) {
|
||||
if (G.qual==LR_SHIFTKEY) {
|
||||
ipo_snap_menu();
|
||||
} else if((G.qual==0))
|
||||
}
|
||||
else if (G.qual==0)
|
||||
transform_ipo('s');
|
||||
break;
|
||||
case TKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==0)
|
||||
set_ipotype();
|
||||
break;
|
||||
case VKEY:
|
||||
if((G.qual==0))
|
||||
if (G.qual==0)
|
||||
sethandles_ipo(HD_VECT);
|
||||
break;
|
||||
case XKEY:
|
||||
case DELKEY:
|
||||
del_ipo();
|
||||
val= pupmenu("Erase selected%t|Keys %x1|Markers %x2");
|
||||
if (val == 1)
|
||||
del_ipo(0);
|
||||
else if (val == 2) {
|
||||
remove_marker();
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user