[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37557] trunk/blender/source/blender/ editors: use directory selector for properties defined as PROP_DIRPATH, user preferences 'File' buttons for eg.
Campbell Barton
ideasman42 at gmail.com
Thu Jun 16 17:28:39 CEST 2011
Revision: 37557
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37557
Author: campbellbarton
Date: 2011-06-16 15:28:39 +0000 (Thu, 16 Jun 2011)
Log Message:
-----------
use directory selector for properties defined as PROP_DIRPATH, user preferences 'File' buttons for eg.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface_layout.c
trunk/blender/source/blender/editors/space_buttons/buttons_intern.h
trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
trunk/blender/source/blender/editors/space_buttons/space_buttons.c
Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c 2011-06-16 15:20:05 UTC (rev 37556)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c 2011-06-16 15:28:39 UTC (rev 37557)
@@ -534,7 +534,10 @@
uiDefAutoButR(block, ptr, prop, index, "", icon, x, y, w-UI_UNIT_X, h);
/* BUTTONS_OT_file_browse calls uiFileBrowseContextProperty */
- but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL);
+ but= uiDefIconButO(block, BUT, subtype==PROP_DIRPATH ?
+ "BUTTONS_OT_directory_browse" :
+ "BUTTONS_OT_file_browse",
+ WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL);
}
else if(flag & UI_ITEM_R_EVENT) {
uiDefButR(block, KEYEVT, 0, name, x, y, w, h, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL);
Modified: trunk/blender/source/blender/editors/space_buttons/buttons_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/buttons_intern.h 2011-06-16 15:20:05 UTC (rev 37556)
+++ trunk/blender/source/blender/editors/space_buttons/buttons_intern.h 2011-06-16 15:28:39 UTC (rev 37557)
@@ -71,6 +71,7 @@
/* buttons_ops.c */
void BUTTONS_OT_file_browse(struct wmOperatorType *ot);
+void BUTTONS_OT_directory_browse(struct wmOperatorType *ot);
void BUTTONS_OT_toolbox(struct wmOperatorType *ot);
#endif /* ED_BUTTONS_INTERN_H */
Modified: trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/buttons_ops.c 2011-06-16 15:20:05 UTC (rev 37556)
+++ trunk/blender/source/blender/editors/space_buttons/buttons_ops.c 2011-06-16 15:28:39 UTC (rev 37557)
@@ -191,12 +191,13 @@
return OPERATOR_CANCELLED;
}
else {
+ const char *path_prop= RNA_struct_find_property(op->ptr, "directory") ? "directory" : "filepath";
fbo= MEM_callocN(sizeof(FileBrowseOp), "FileBrowseOp");
fbo->ptr= ptr;
fbo->prop= prop;
op->customdata= fbo;
- RNA_string_set(op->ptr, "filepath", str);
+ RNA_string_set(op->ptr, path_prop, str);
MEM_freeN(str);
if(RNA_struct_find_property(op->ptr, "relative_path")) {
@@ -227,3 +228,19 @@
WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
+/* second operator, only difference from BUTTONS_OT_file_browse is WM_FILESEL_DIRECTORY */
+void BUTTONS_OT_directory_browse(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Accept";
+ ot->description="Open a directory browser, Hold Shift to open the file, Alt to browse containing directory";
+ ot->idname= "BUTTONS_OT_directory_browse";
+
+ /* api callbacks */
+ ot->invoke= file_browse_invoke;
+ ot->exec= file_browse_exec;
+ ot->cancel= file_browse_cancel;
+
+ /* properties */
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH);
+}
Modified: trunk/blender/source/blender/editors/space_buttons/space_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/space_buttons.c 2011-06-16 15:20:05 UTC (rev 37556)
+++ trunk/blender/source/blender/editors/space_buttons/space_buttons.c 2011-06-16 15:28:39 UTC (rev 37557)
@@ -187,6 +187,7 @@
{
WM_operatortype_append(BUTTONS_OT_toolbox);
WM_operatortype_append(BUTTONS_OT_file_browse);
+ WM_operatortype_append(BUTTONS_OT_directory_browse);
}
static void buttons_keymap(struct wmKeyConfig *keyconf)
More information about the Bf-blender-cvs
mailing list