* Renaming some Keying Sets API functions to make the terminology more consistent in the UI
* Fixed bug with hotkeys for adding properties to Keying Sets using the KKEY over the relevant buttons. Was calling the remove callback instead.
This commit is contained in:
@@ -70,11 +70,11 @@ void BKE_animdata_make_local(struct AnimData *adt);
|
|||||||
/* Used to create a new 'custom' KeyingSet for the user, that will be automatically added to the stack */
|
/* Used to create a new 'custom' KeyingSet for the user, that will be automatically added to the stack */
|
||||||
struct KeyingSet *BKE_keyingset_add(struct ListBase *list, const char name[], short flag, short keyingflag);
|
struct KeyingSet *BKE_keyingset_add(struct ListBase *list, const char name[], short flag, short keyingflag);
|
||||||
|
|
||||||
/* Add a destination to a KeyingSet */
|
/* Add a path to a KeyingSet */
|
||||||
void BKE_keyingset_add_destination(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode);
|
void BKE_keyingset_add_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode);
|
||||||
|
|
||||||
/* Find the destination matching the criteria given */
|
/* Find the destination matching the criteria given */
|
||||||
struct KS_Path *BKE_keyingset_find_destination(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode);
|
struct KS_Path *BKE_keyingset_find_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode);
|
||||||
|
|
||||||
/* Copy all KeyingSets in the given list */
|
/* Copy all KeyingSets in the given list */
|
||||||
void BKE_keyingsets_copy(struct ListBase *newlist, struct ListBase *list);
|
void BKE_keyingsets_copy(struct ListBase *newlist, struct ListBase *list);
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa
|
|||||||
|
|
||||||
/* Find the first path that matches the given criteria */
|
/* Find the first path that matches the given criteria */
|
||||||
// TODO: do we want some method to perform partial matches too?
|
// TODO: do we want some method to perform partial matches too?
|
||||||
KS_Path *BKE_keyingset_find_destination (KeyingSet *ks, ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode)
|
KS_Path *BKE_keyingset_find_path (KeyingSet *ks, ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode)
|
||||||
{
|
{
|
||||||
KS_Path *ksp;
|
KS_Path *ksp;
|
||||||
|
|
||||||
@@ -624,7 +624,7 @@ KeyingSet *BKE_keyingset_add (ListBase *list, const char name[], short flag, sho
|
|||||||
/* Add a destination to a KeyingSet. Nothing is returned for now...
|
/* Add a destination to a KeyingSet. Nothing is returned for now...
|
||||||
* Checks are performed to ensure that destination is appropriate for the KeyingSet in question
|
* Checks are performed to ensure that destination is appropriate for the KeyingSet in question
|
||||||
*/
|
*/
|
||||||
void BKE_keyingset_add_destination (KeyingSet *ks, ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode)
|
void BKE_keyingset_add_path (KeyingSet *ks, ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode)
|
||||||
{
|
{
|
||||||
KS_Path *ksp;
|
KS_Path *ksp;
|
||||||
|
|
||||||
@@ -643,7 +643,7 @@ void BKE_keyingset_add_destination (KeyingSet *ks, ID *id, const char group_name
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* don't add if there is already a matching KS_Path in the KeyingSet */
|
/* don't add if there is already a matching KS_Path in the KeyingSet */
|
||||||
if (BKE_keyingset_find_destination(ks, id, group_name, rna_path, array_index, groupmode)) {
|
if (BKE_keyingset_find_path(ks, id, group_name, rna_path, array_index, groupmode)) {
|
||||||
if (G.f & G_DEBUG)
|
if (G.f & G_DEBUG)
|
||||||
printf("ERROR: destination already exists in Keying Set \n");
|
printf("ERROR: destination already exists in Keying Set \n");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -831,7 +831,7 @@ static float dtar_get_prop_val (ChannelDriver *driver, DriverTarget *dtar)
|
|||||||
driver->flag |= DRIVER_FLAG_INVALID;
|
driver->flag |= DRIVER_FLAG_INVALID;
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get RNA-pointer for the ID-block given in target */
|
/* get RNA-pointer for the ID-block given in target */
|
||||||
RNA_id_pointer_create(id, &id_ptr);
|
RNA_id_pointer_create(id, &id_ptr);
|
||||||
|
|
||||||
@@ -887,7 +887,7 @@ static bPoseChannel *dtar_get_pchan_ptr (ChannelDriver *driver, DriverTarget *dt
|
|||||||
/* check if the ID here is a valid object */
|
/* check if the ID here is a valid object */
|
||||||
if (id && GS(id->name)) {
|
if (id && GS(id->name)) {
|
||||||
Object *ob= (Object *)id;
|
Object *ob= (Object *)id;
|
||||||
|
|
||||||
/* get pose, and subsequently, posechannel */
|
/* get pose, and subsequently, posechannel */
|
||||||
return get_pose_channel(ob->pose, dtar->pchan_name);
|
return get_pose_channel(ob->pose, dtar->pchan_name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* add path to this setting */
|
/* add path to this setting */
|
||||||
BKE_keyingset_add_destination(ks, ptr.id.data, NULL, path, index, pflag, KSP_GROUP_KSNAME);
|
BKE_keyingset_add_path(ks, ptr.id.data, NULL, path, index, pflag, KSP_GROUP_KSNAME);
|
||||||
ks->active_path= BLI_countlist(&ks->paths);
|
ks->active_path= BLI_countlist(&ks->paths);
|
||||||
success= 1;
|
success= 1;
|
||||||
|
|
||||||
@@ -426,7 +426,7 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
|
|||||||
KS_Path *ksp;
|
KS_Path *ksp;
|
||||||
|
|
||||||
/* try to find a path matching this description */
|
/* try to find a path matching this description */
|
||||||
ksp= BKE_keyingset_find_destination(ks, ptr.id.data, ks->name, path, index, KSP_GROUP_KSNAME);
|
ksp= BKE_keyingset_find_path(ks, ptr.id.data, ks->name, path, index, KSP_GROUP_KSNAME);
|
||||||
|
|
||||||
if (ksp) {
|
if (ksp) {
|
||||||
/* just free it... */
|
/* just free it... */
|
||||||
@@ -1162,31 +1162,13 @@ static int keyingset_relative_get_templates (KeyingSet *ks)
|
|||||||
return templates;
|
return templates;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if context data is suitable for the given absolute Keying Set */
|
/* Check if context data is suitable for the given Keying Set */
|
||||||
short keyingset_context_ok_poll (bContext *C, KeyingSet *ks)
|
short keyingset_context_ok_poll (bContext *C, KeyingSet *ks)
|
||||||
{
|
{
|
||||||
ScrArea *sa= CTX_wm_area(C);
|
// TODO:
|
||||||
|
// For 'relative' keyingsets (i.e. py-keyingsets), add a call here
|
||||||
/* data retrieved from context depends on active editor */
|
// which basically gets a listing of all the paths to be used for this
|
||||||
if (sa == NULL) return 0;
|
// set.
|
||||||
|
|
||||||
switch (sa->spacetype) {
|
|
||||||
case SPACE_VIEW3D:
|
|
||||||
{
|
|
||||||
Object *obact= CTX_data_active_object(C);
|
|
||||||
|
|
||||||
/* if in posemode, check if 'pose-channels' requested for in KeyingSet */
|
|
||||||
if ((obact && obact->pose) && (obact->mode & OB_MODE_POSE)) {
|
|
||||||
/* check for posechannels */
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
/* check for selected object */
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -4015,7 +4015,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
|
|||||||
if(event->alt)
|
if(event->alt)
|
||||||
ui_but_anim_remove_keyingset(C);
|
ui_but_anim_remove_keyingset(C);
|
||||||
else
|
else
|
||||||
ui_but_anim_remove_keyingset(C);
|
ui_but_anim_add_keyingset(C);
|
||||||
|
|
||||||
ED_region_tag_redraw(CTX_wm_region(C));
|
ED_region_tag_redraw(CTX_wm_region(C));
|
||||||
|
|
||||||
|
|||||||
@@ -3977,14 +3977,14 @@ static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBa
|
|||||||
{
|
{
|
||||||
/* add a new path with the information obtained (only if valid) */
|
/* add a new path with the information obtained (only if valid) */
|
||||||
// TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name
|
// TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name
|
||||||
BKE_keyingset_add_destination(ks, id, NULL, path, array_index, flag, groupmode);
|
BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode);
|
||||||
ks->active_path= BLI_countlist(&ks->paths);
|
ks->active_path= BLI_countlist(&ks->paths);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEYINGSET_EDITMODE_REMOVE:
|
case KEYINGSET_EDITMODE_REMOVE:
|
||||||
{
|
{
|
||||||
/* find the relevant path, then remove it from the KeyingSet */
|
/* find the relevant path, then remove it from the KeyingSet */
|
||||||
KS_Path *ksp= BKE_keyingset_find_destination(ks, id, NULL, path, array_index, groupmode);
|
KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode);
|
||||||
|
|
||||||
if (ksp) {
|
if (ksp) {
|
||||||
/* free path's data */
|
/* free path's data */
|
||||||
|
|||||||
@@ -4718,7 +4718,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
|
|||||||
Object *ob;
|
Object *ob;
|
||||||
// short redrawipo=0, resetslowpar=1;
|
// short redrawipo=0, resetslowpar=1;
|
||||||
int cancelled= (t->state == TRANS_CANCEL);
|
int cancelled= (t->state == TRANS_CANCEL);
|
||||||
short duplicate= (t->undostr && strstr(t->undostr, "Duplicate")) ? 1 : 0;
|
short duplicate= (t->undostr && strstr(t->undostr, "Duplicate")) ? 1 : 0; /* see bugreport #21229 for reasons for this data */
|
||||||
|
|
||||||
/* early out when nothing happened */
|
/* early out when nothing happened */
|
||||||
if (t->total == 0 || t->mode == TFM_DUMMY)
|
if (t->total == 0 || t->mode == TFM_DUMMY)
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ static void rna_def_keyingset(BlenderRNA *brna)
|
|||||||
RNA_def_property_ui_text(prop, "Active Path Index", "Current Keying Set index");
|
RNA_def_property_ui_text(prop, "Active Path Index", "Current Keying Set index");
|
||||||
|
|
||||||
/* Flags */
|
/* Flags */
|
||||||
|
// XXX: depreceated
|
||||||
prop= RNA_def_property(srna, "builtin", PROP_BOOLEAN, PROP_NONE);
|
prop= RNA_def_property(srna, "builtin", PROP_BOOLEAN, PROP_NONE);
|
||||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYINGSET_BUILTIN);
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYINGSET_BUILTIN);
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
#include "BKE_animsys.h"
|
#include "BKE_animsys.h"
|
||||||
|
|
||||||
static void rna_KeyingSet_add_destination(KeyingSet *keyingset, ReportList *reports,
|
static void rna_KeyingSet_add_path(KeyingSet *keyingset, ReportList *reports,
|
||||||
ID *id, char rna_path[], int array_index, int entire_array,
|
ID *id, char rna_path[], int array_index, int entire_array,
|
||||||
int grouping_method, char group_name[])
|
int grouping_method, char group_name[])
|
||||||
{
|
{
|
||||||
@@ -53,11 +53,11 @@ static void rna_KeyingSet_add_destination(KeyingSet *keyingset, ReportList *repo
|
|||||||
|
|
||||||
/* if data is valid, call the API function for this */
|
/* if data is valid, call the API function for this */
|
||||||
if (keyingset) {
|
if (keyingset) {
|
||||||
BKE_keyingset_add_destination(keyingset, id, group_name, rna_path, array_index, flag, grouping_method);
|
BKE_keyingset_add_path(keyingset, id, group_name, rna_path, array_index, flag, grouping_method);
|
||||||
keyingset->active_path= BLI_countlist(&keyingset->paths);
|
keyingset->active_path= BLI_countlist(&keyingset->paths);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BKE_report(reports, RPT_ERROR, "Keying Set Destination could not be added.");
|
BKE_report(reports, RPT_ERROR, "Keying Set Path could not be added.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ void RNA_api_keyingset(StructRNA *srna)
|
|||||||
PropertyRNA *parm;
|
PropertyRNA *parm;
|
||||||
|
|
||||||
/* Add Destination */
|
/* Add Destination */
|
||||||
func= RNA_def_function(srna, "add_destination", "rna_KeyingSet_add_destination");
|
func= RNA_def_function(srna, "add_destination", "rna_KeyingSet_add_path");
|
||||||
RNA_def_function_ui_description(func, "Add a new destination for the Keying Set.");
|
RNA_def_function_ui_description(func, "Add a new destination for the Keying Set.");
|
||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
/* ID-block for target */
|
/* ID-block for target */
|
||||||
|
|||||||
Reference in New Issue
Block a user