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:
authorCampbell Barton <ideasman42@gmail.com>2010-06-09 18:04:34 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-06-09 18:04:34 +0400
commit6cc6f8495f0dbf69afea98cbcde94ebb453b0783 (patch)
tree4f3352bdd590d352b7fb36903ea69d50935a2b99 /source/blender/editors/object/object_modifier.c
parent0ef243122032307f225033bc5454b6fe20fe09ad (diff)
- added a flag argument to WM_operator_properties_filesel() currently only used for relative path option.
- added relative option to saving external multires data - renamed multires external functiosn to have save / pack as suffix. - added TODO's for file select operators that should support relative paths but dont. - also disable openmp on linux cross compile, mingw currently isnt linking -lgomp
Diffstat (limited to 'source/blender/editors/object/object_modifier.c')
-rw-r--r--source/blender/editors/object/object_modifier.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 697373ea923..c5c7d49d0a4 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -1009,11 +1009,12 @@ void OBJECT_OT_multires_reshape(wmOperatorType *ot)
/****************** multires save external operator *********************/
-static int multires_save_external_exec(bContext *C, wmOperator *op)
+static int multires_external_save_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
Mesh *me= (ob)? ob->data: op->customdata;
char path[FILE_MAX];
+ int relative= RNA_boolean_get(op->ptr, "relative_path");
if(!me)
return OPERATOR_CANCELLED;
@@ -1023,7 +1024,8 @@ static int multires_save_external_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "path", path);
- /* BLI_path_rel(path, G.sce); */ /* TODO, relative path operator option */
+ if(relative)
+ BLI_path_rel(path, G.sce);
CustomData_external_add(&me->fdata, &me->id, CD_MDISPS, me->totface, path);
CustomData_external_write(&me->fdata, &me->id, CD_MASK_MESH, me->totface, 0);
@@ -1031,7 +1033,7 @@ static int multires_save_external_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int multires_save_external_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
Object *ob = ED_object_active_context(C);
MultiresModifierData *mmd;
@@ -1049,8 +1051,11 @@ static int multires_save_external_invoke(bContext *C, wmOperator *op, wmEvent *e
if(CustomData_external_test(&me->fdata, CD_MDISPS))
return OPERATOR_CANCELLED;
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
if(RNA_property_is_set(op->ptr, "path"))
- return multires_save_external_exec(C, op);
+ return multires_external_save_exec(C, op);
op->customdata= me;
@@ -1062,27 +1067,27 @@ static int multires_save_external_invoke(bContext *C, wmOperator *op, wmEvent *e
return OPERATOR_RUNNING_MODAL;
}
-void OBJECT_OT_multires_save_external(wmOperatorType *ot)
+void OBJECT_OT_multires_external_save(wmOperatorType *ot)
{
ot->name= "Multires Save External";
ot->description= "Save displacements to an external file";
- ot->idname= "OBJECT_OT_multires_save_external";
+ ot->idname= "OBJECT_OT_multires_external_save";
// XXX modifier no longer in context after file browser .. ot->poll= multires_poll;
- ot->exec= multires_save_external_exec;
- ot->invoke= multires_save_external_invoke;
+ ot->exec= multires_external_save_exec;
+ ot->invoke= multires_external_save_invoke;
ot->poll= multires_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL, FILE_SAVE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL, FILE_SAVE, FILE_RELPATH);
edit_modifier_properties(ot);
}
/****************** multires pack operator *********************/
-static int multires_pack_external_exec(bContext *C, wmOperator *op)
+static int multires_external_pack_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
Mesh *me= ob->data;
@@ -1096,14 +1101,14 @@ static int multires_pack_external_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void OBJECT_OT_multires_pack_external(wmOperatorType *ot)
+void OBJECT_OT_multires_external_pack(wmOperatorType *ot)
{
ot->name= "Multires Pack External";
ot->description= "Pack displacements from an external file";
- ot->idname= "OBJECT_OT_multires_pack_external";
+ ot->idname= "OBJECT_OT_multires_external_pack";
ot->poll= multires_poll;
- ot->exec= multires_pack_external_exec;
+ ot->exec= multires_external_pack_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;