rna: added lib.parent access and made filename editable.
authorCampbell Barton <ideasman42@gmail.com>
Thu, 22 Apr 2010 08:25:05 +0000 (08:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 22 Apr 2010 08:25:05 +0000 (08:25 +0000)
source/blender/blenkernel/intern/modifier.c
source/blender/editors/object/object_vgroup.c
source/blender/makesdna/DNA_ID.h
source/blender/makesrna/intern/rna_ID.c

index 0ecc8166d72144e807fa06e49de808bbbde0045b..e483ae0e6a8bc8a0f27f310abb010be6563ad454 100644 (file)
@@ -178,13 +178,7 @@ ModifierData *modifiers_findByType(Object *ob, ModifierType type)
 
 ModifierData *modifiers_findByName(Object *ob, const char *name)
 {
-       ModifierData *md = ob->modifiers.first;
-       
-       for (; md; md=md->next)
-               if (strcmp(md->name, name)==0)
-                       break;
-       
-       return md;
+       return BLI_findstring(&(ob->modifiers), name, offsetof(ModifierData, name));
 }
 
 void modifiers_clearErrors(Object *ob)
index f7847972df1b75dd26a676113b6fe208ed582017..246bc3875f118eb2b8565c65a0ccd0fccda95f91 100644 (file)
@@ -93,7 +93,7 @@ bDeformGroup *ED_vgroup_add_name(Object *ob, char *name)
        
        defgroup = MEM_callocN(sizeof(bDeformGroup), "add deformGroup");
 
-       BLI_strncpy(defgroup->name, name, 32);
+       BLI_strncpy(defgroup->name, name, sizeof(defgroup->name));
 
        BLI_addtail(&ob->defbase, defgroup);
        defgroup_unique_name(defgroup, ob);
index e9b1b655ad8bb02358d0e83890c8c6277b0ea249..1eddbb261680e51314041a0fe869859eb6032391 100644 (file)
@@ -116,10 +116,10 @@ typedef struct Library {
        ID id;
        ID *idblock;
        struct FileData *filedata;
-       char name[240];                 /* revealed in the UI, can store relative path */
-       char filename[240];             /* expanded name, not relative, used while reading */
+       char name[240];                 /* path name used for reading, can be relative and edited in the outliner */
+       char filename[240];             /* temp. absolute filepath, only used while reading */
        int tot, pad;                   /* tot, idblock and filedata are only fo read and write */
-       struct Library *parent; /* for outliner, showing dependency */
+       struct Library *parent; /* set for indirectly linked libs, used in the outliner and while reading */
 } Library;
 
 #define PREVIEW_MIPMAPS 2
index 3263d816ad0cceeb7d577c2c251d68a2a9b4c05a..50ab36bd4a4fc950e0b7958346842486af3b551f 100644 (file)
@@ -401,8 +401,12 @@ static void rna_def_library(BlenderRNA *brna)
 
        prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH);
        RNA_def_property_string_sdna(prop, NULL, "name");
-       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Filename", "Path to the library .blend file");
+       /* TODO - lib->filename isnt updated, however the outliner also skips this, probably only needed on read. */
+       
+       prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE);
+       RNA_def_property_struct_type(prop, "ID");
+       RNA_def_property_ui_text(prop, "Parent", "");   
 }
 void RNA_def_ID(BlenderRNA *brna)
 {