From af0fe61c868140d2f711708434dba026676af0ea Mon Sep 17 00:00:00 2001 From: guishe Date: Wed, 12 Apr 2023 10:46:08 -0600 Subject: [PATCH 01/12] UI: Import obj files by drag and drop The patch allows users to quickly import obj files by drag and drop. For quick setup of the import, a popup dialog is displayed allowing the user to configure the import or use a operator preset. --- source/blender/editors/io/CMakeLists.txt | 2 + source/blender/editors/io/io_obj.c | 31 ++++++-- source/blender/editors/io/io_obj.h | 1 + source/blender/editors/io/io_ops.c | 7 ++ source/blender/editors/io/io_utils.cc | 95 ++++++++++++++++++++++++ source/blender/editors/io/io_utils.hh | 31 ++++++++ 6 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 source/blender/editors/io/io_utils.cc create mode 100644 source/blender/editors/io/io_utils.hh diff --git a/source/blender/editors/io/CMakeLists.txt b/source/blender/editors/io/CMakeLists.txt index ede0818e948..e954bd0d3d8 100644 --- a/source/blender/editors/io/CMakeLists.txt +++ b/source/blender/editors/io/CMakeLists.txt @@ -28,6 +28,7 @@ set(INC_SYS ) set(SRC + io_utils.cc io_alembic.c io_cache.c io_collada.c @@ -40,6 +41,7 @@ set(SRC io_stl_ops.c io_usd.c + io_utils.hh io_alembic.h io_cache.h io_collada.h diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index 884243a276a..cbc8e007689 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -40,6 +40,7 @@ # include "IO_path_util_types.h" # include "IO_wavefront_obj.h" # include "io_obj.h" +# include "io_utils.hh" static const EnumPropertyItem io_obj_export_evaluation_mode[] = { {DAG_EVAL_RENDER, "DAG_EVAL_RENDER", 0, "Render", "Export objects as they appear in render"}, @@ -372,12 +373,6 @@ void WM_OT_obj_export(struct wmOperatorType *ot) RNA_def_property_flag(prop, PROP_HIDDEN); } -static int wm_obj_import_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) -{ - WM_event_add_fileselect(C, op); - return OPERATOR_RUNNING_MODAL; -} - static int wm_obj_import_exec(bContext *C, wmOperator *op) { struct OBJImportParams import_params; @@ -459,6 +454,7 @@ static void wm_obj_import_draw(bContext *C, wmOperator *op) PointerRNA ptr; wmWindowManager *wm = CTX_wm_manager(C); RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); + files_drop_info_draw(C, op, ICON_FILE_3D); ui_obj_import_settings(op->layout, &ptr); } @@ -469,9 +465,9 @@ void WM_OT_obj_import(struct wmOperatorType *ot) ot->name = "Import Wavefront OBJ"; ot->description = "Load a Wavefront OBJ scene"; ot->idname = "WM_OT_obj_import"; - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET; + ot->flag = OPTYPE_UNDO | OPTYPE_PRESET; - ot->invoke = wm_obj_import_invoke; + ot->invoke = wm_io_import_invoke; ot->exec = wm_obj_import_exec; ot->poll = WM_operator_winactive; ot->ui = wm_obj_import_draw; @@ -484,6 +480,7 @@ void WM_OT_obj_import(struct wmOperatorType *ot) WM_FILESEL_DIRECTORY | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY, FILE_SORT_DEFAULT); + skip_save_import_paths_props(ot, WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILES); RNA_def_float( ot->srna, "global_scale", @@ -535,4 +532,22 @@ void WM_OT_obj_import(struct wmOperatorType *ot) RNA_def_property_flag(prop, PROP_HIDDEN); } +bool obj_file_drop_poll(bContext *UNUSED(C), wmDrag *drag, const wmEvent *UNUSED(event)) +{ + if (drag->type == WM_DRAG_PATH) { + const eFileSel_File_Types file_type = WM_drag_get_path_file_type(drag); + if (file_type == FILE_TYPE_OBJECT_IO && + BLI_path_extension_check(WM_drag_get_path(drag), ".obj")) { + return true; + } + } + return false; +} + +void WM_obj_dropbox_add() +{ + ListBase *lb = WM_dropboxmap_find("Window", 0, 0); + WM_dropbox_add(lb, "WM_OT_obj_import", obj_file_drop_poll, files_drop_copy, NULL, NULL); +} + #endif /* WITH_IO_WAVEFRONT_OBJ */ diff --git a/source/blender/editors/io/io_obj.h b/source/blender/editors/io/io_obj.h index 61c26963f3b..5c157506a10 100644 --- a/source/blender/editors/io/io_obj.h +++ b/source/blender/editors/io/io_obj.h @@ -12,3 +12,4 @@ struct wmOperatorType; void WM_OT_obj_export(struct wmOperatorType *ot); void WM_OT_obj_import(struct wmOperatorType *ot); +void WM_obj_dropbox_add(); diff --git a/source/blender/editors/io/io_ops.c b/source/blender/editors/io/io_ops.c index 1cbea162ea2..a787264fe54 100644 --- a/source/blender/editors/io/io_ops.c +++ b/source/blender/editors/io/io_ops.c @@ -34,18 +34,22 @@ void ED_operatortypes_io(void) /* Collada operators: */ WM_operatortype_append(WM_OT_collada_export); WM_operatortype_append(WM_OT_collada_import); + // WM_collada_dropbox_add(); #endif #ifdef WITH_ALEMBIC WM_operatortype_append(WM_OT_alembic_import); WM_operatortype_append(WM_OT_alembic_export); + // WM_alembic_dropbox_add(); #endif #ifdef WITH_USD WM_operatortype_append(WM_OT_usd_import); WM_operatortype_append(WM_OT_usd_export); + // WM_usd_dropbox_add(); #endif #ifdef WITH_IO_GPENCIL WM_operatortype_append(WM_OT_gpencil_import_svg); + // WM_gpencil_dropbox_add(); # ifdef WITH_PUGIXML WM_operatortype_append(WM_OT_gpencil_export_svg); # endif @@ -64,14 +68,17 @@ void ED_operatortypes_io(void) #ifdef WITH_IO_WAVEFRONT_OBJ WM_operatortype_append(WM_OT_obj_export); WM_operatortype_append(WM_OT_obj_import); + WM_obj_dropbox_add(); #endif #ifdef WITH_IO_PLY WM_operatortype_append(WM_OT_ply_export); WM_operatortype_append(WM_OT_ply_import); + // WM_ply_dropbox_add(); #endif #ifdef WITH_IO_STL WM_operatortype_append(WM_OT_stl_import); + // WM_stl_dropbox_add(); #endif } diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc new file mode 100644 index 00000000000..add79c3ffdb --- /dev/null +++ b/source/blender/editors/io/io_utils.cc @@ -0,0 +1,95 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#if defined(WITH_COLLADA) || defined(WITH_IO_GPENCIL) || defined(WITH_IO_WAVEFRONT_OBJ) || \ + defined(WITH_IO_PLY) || defined(WITH_IO_STL) || defined(WITH_USD) + +# include "DNA_space_types.h" + +# include "BKE_context.h" + +# include "BLI_path_util.h" +# include "BLI_string.h" +# include "BLI_utildefines.h" +# include "BLT_translation.h" + +# include "ED_fileselect.h" + +# include "RNA_access.h" +# include "RNA_define.h" + +# include "UI_interface.h" + +# include "WM_api.h" +# include "io_utils.hh" + +int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent * /* event */) +{ + char filepath[FILE_MAX]; + RNA_string_get(op->ptr, "filepath", filepath); + if (filepath[0]) { + return WM_operator_props_dialog_popup(C, op, 300); + } + WM_event_add_fileselect(C, op); + return OPERATOR_RUNNING_MODAL; +} + +void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag) +{ + if (flag & WM_FILESEL_FILEPATH) { + RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "filepath"), PROP_SKIP_SAVE); + } + if (flag & WM_FILESEL_FILENAME) { + RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "filename"), PROP_SKIP_SAVE); + } + if (flag & WM_FILESEL_DIRECTORY) { + RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "directory"), PROP_SKIP_SAVE); + } + if (flag & WM_FILESEL_FILES) { + RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "files"), PROP_SKIP_SAVE); + } + if (flag & WM_FILESEL_RELPATH) { + RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "relative_path"), + PROP_SKIP_SAVE); + } +} + +void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) +{ + RNA_string_set(drop->ptr, "filepath", WM_drag_get_path(drag)); + if (!RNA_struct_find_property(drop->ptr, "directory")) { + return; + } + + // TODO(@guishe): Add support for multiple drag&drop files import + char dir[FILE_MAX], file[FILE_MAX]; + BLI_path_split_dir_file(WM_drag_get_path(drag), dir, sizeof(dir), file, sizeof(file)); + + RNA_string_set(drop->ptr, "directory", dir); + + RNA_collection_clear(drop->ptr, "files"); + PointerRNA itemptr; + RNA_collection_add(drop->ptr, "files", &itemptr); + RNA_string_set(&itemptr, "name", file); +} + +void files_drop_info_draw(bContext *C, wmOperator *op, int icon) +{ + ScrArea *area = CTX_wm_area(C); + if (area->spacetype == SPACE_FILE) { + return; + } + char label[FILE_MAX]; + RNA_string_get(op->ptr, "filepath", label); + + if (RNA_struct_find_property(op->ptr, "directory") && + RNA_collection_length(op->ptr, "files") > 1) + { + char ext[FILE_MAX]; + BLI_strncpy(ext, BLI_path_extension(label), sizeof(ext)); + sprintf(label, "%d %s files dropped.", RNA_collection_length(op->ptr, "files"), ext); + } + uiLayout *box = uiLayoutBox(op->layout); + uiItemL(box, label, icon); +} + +#endif diff --git a/source/blender/editors/io/io_utils.hh b/source/blender/editors/io/io_utils.hh new file mode 100644 index 00000000000..77a98ed827e --- /dev/null +++ b/source/blender/editors/io/io_utils.hh @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#if defined(WITH_COLLADA) || defined(WITH_IO_GPENCIL) || defined(WITH_IO_WAVEFRONT_OBJ) || \ + defined(WITH_IO_PLY) || defined(WITH_IO_STL) || defined(WITH_USD) + +# include "WM_types.h" + +# ifdef __cplusplus +extern "C" { +# endif + +struct wmOperator; +struct wmOperatorType; +struct wmDrag; +struct wmDropBox; + +int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent *event); + +void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag); + +void files_drop_copy(bContext *C, wmDrag *drag, wmDropBox *drop); + +void files_drop_info_draw(bContext *C, wmOperator *op, int icon); + +# ifdef __cplusplus +} +# endif + +#endif -- 2.30.2 From 0b2aef0052b417914d1cbb4886995410fee43c77 Mon Sep 17 00:00:00 2001 From: guishe Date: Fri, 2 Jun 2023 15:34:40 -0600 Subject: [PATCH 02/12] add io dropbox by template --- source/blender/editors/io/CMakeLists.txt | 2 + source/blender/editors/io/io_obj.c | 18 --------- source/blender/editors/io/io_obj.h | 1 - source/blender/editors/io/io_ops.c | 7 ---- source/blender/editors/io/io_ops_dropbox.cc | 39 +++++++++++++++++++ source/blender/editors/io/io_ops_dropbox.h | 11 ++++++ source/blender/editors/space_api/spacetypes.c | 3 ++ 7 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 source/blender/editors/io/io_ops_dropbox.cc create mode 100644 source/blender/editors/io/io_ops_dropbox.h diff --git a/source/blender/editors/io/CMakeLists.txt b/source/blender/editors/io/CMakeLists.txt index e954bd0d3d8..93f242be131 100644 --- a/source/blender/editors/io/CMakeLists.txt +++ b/source/blender/editors/io/CMakeLists.txt @@ -40,6 +40,7 @@ set(SRC io_ply_ops.c io_stl_ops.c io_usd.c + io_ops_dropbox.cc io_utils.hh io_alembic.h @@ -51,6 +52,7 @@ set(SRC io_ply_ops.h io_stl_ops.h io_usd.h + io_ops_dropbox.h ) set(LIB diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index cbc8e007689..93fde9f27b9 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -532,22 +532,4 @@ void WM_OT_obj_import(struct wmOperatorType *ot) RNA_def_property_flag(prop, PROP_HIDDEN); } -bool obj_file_drop_poll(bContext *UNUSED(C), wmDrag *drag, const wmEvent *UNUSED(event)) -{ - if (drag->type == WM_DRAG_PATH) { - const eFileSel_File_Types file_type = WM_drag_get_path_file_type(drag); - if (file_type == FILE_TYPE_OBJECT_IO && - BLI_path_extension_check(WM_drag_get_path(drag), ".obj")) { - return true; - } - } - return false; -} - -void WM_obj_dropbox_add() -{ - ListBase *lb = WM_dropboxmap_find("Window", 0, 0); - WM_dropbox_add(lb, "WM_OT_obj_import", obj_file_drop_poll, files_drop_copy, NULL, NULL); -} - #endif /* WITH_IO_WAVEFRONT_OBJ */ diff --git a/source/blender/editors/io/io_obj.h b/source/blender/editors/io/io_obj.h index 5c157506a10..61c26963f3b 100644 --- a/source/blender/editors/io/io_obj.h +++ b/source/blender/editors/io/io_obj.h @@ -12,4 +12,3 @@ struct wmOperatorType; void WM_OT_obj_export(struct wmOperatorType *ot); void WM_OT_obj_import(struct wmOperatorType *ot); -void WM_obj_dropbox_add(); diff --git a/source/blender/editors/io/io_ops.c b/source/blender/editors/io/io_ops.c index a787264fe54..1cbea162ea2 100644 --- a/source/blender/editors/io/io_ops.c +++ b/source/blender/editors/io/io_ops.c @@ -34,22 +34,18 @@ void ED_operatortypes_io(void) /* Collada operators: */ WM_operatortype_append(WM_OT_collada_export); WM_operatortype_append(WM_OT_collada_import); - // WM_collada_dropbox_add(); #endif #ifdef WITH_ALEMBIC WM_operatortype_append(WM_OT_alembic_import); WM_operatortype_append(WM_OT_alembic_export); - // WM_alembic_dropbox_add(); #endif #ifdef WITH_USD WM_operatortype_append(WM_OT_usd_import); WM_operatortype_append(WM_OT_usd_export); - // WM_usd_dropbox_add(); #endif #ifdef WITH_IO_GPENCIL WM_operatortype_append(WM_OT_gpencil_import_svg); - // WM_gpencil_dropbox_add(); # ifdef WITH_PUGIXML WM_operatortype_append(WM_OT_gpencil_export_svg); # endif @@ -68,17 +64,14 @@ void ED_operatortypes_io(void) #ifdef WITH_IO_WAVEFRONT_OBJ WM_operatortype_append(WM_OT_obj_export); WM_operatortype_append(WM_OT_obj_import); - WM_obj_dropbox_add(); #endif #ifdef WITH_IO_PLY WM_operatortype_append(WM_OT_ply_export); WM_operatortype_append(WM_OT_ply_import); - // WM_ply_dropbox_add(); #endif #ifdef WITH_IO_STL WM_operatortype_append(WM_OT_stl_import); - // WM_stl_dropbox_add(); #endif } diff --git a/source/blender/editors/io/io_ops_dropbox.cc b/source/blender/editors/io/io_ops_dropbox.cc new file mode 100644 index 00000000000..ad34b2f1c7b --- /dev/null +++ b/source/blender/editors/io/io_ops_dropbox.cc @@ -0,0 +1,39 @@ + + +#include "BLI_listbase.h" +#include "BLI_path_util.h" + +#include "DNA_space_types.h" + +#include "WM_api.h" + +#include "io_utils.hh" + +#include "io_ops_dropbox.h" + +template +void add_drag_path_dropbox(ListBase *lb, const char *operator_name) +{ + auto poll = [](bContext * /*C*/, wmDrag *drag, const wmEvent * /*event*/) { + if (drag->type == WM_DRAG_PATH) { + const eFileSel_File_Types file_type = eFileSel_File_Types(WM_drag_get_path_file_type(drag)); + if (file_type == file_t && BLI_path_extension_check(WM_drag_get_path(drag), ext_t)) { + return true; + } + } + return false; + }; + + WM_dropbox_add(lb, operator_name, poll, files_drop_copy, NULL, NULL); +} + +char const obj_ext[] = ".obj"; + +void ED_dropboxes_io(void) +{ + ListBase *lb = WM_dropboxmap_find("Window", 0, 0); + +#ifdef WITH_IO_WAVEFRONT_OBJ + add_drag_path_dropbox(lb, "WM_OT_obj_import"); +#endif +} diff --git a/source/blender/editors/io/io_ops_dropbox.h b/source/blender/editors/io/io_ops_dropbox.h new file mode 100644 index 00000000000..9be000adc82 --- /dev/null +++ b/source/blender/editors/io/io_ops_dropbox.h @@ -0,0 +1,11 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +void ED_dropboxes_io(void); + +#ifdef __cplusplus +} +#endif diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c index dede6f47d93..d2f24539f6d 100644 --- a/source/blender/editors/space_api/spacetypes.c +++ b/source/blender/editors/space_api/spacetypes.c @@ -58,6 +58,8 @@ #include "ED_uvedit.h" #include "io_ops.h" +#include "io_ops_dropbox.h" + void ED_spacetypes_init(void) { @@ -113,6 +115,7 @@ void ED_spacetypes_init(void) ED_operatortypes_render(); ED_operatortypes_mask(); ED_operatortypes_io(); + ED_dropboxes_io(); ED_operatortypes_edutils(); ED_operatortypes_view2d(); -- 2.30.2 From 9d14acb76a96904eb4f8198d05a566f87585794c Mon Sep 17 00:00:00 2001 From: guishe Date: Fri, 2 Jun 2023 20:13:34 -0600 Subject: [PATCH 03/12] re-organize code --- source/blender/editors/io/io_obj.c | 4 ++- source/blender/editors/io/io_ops_dropbox.cc | 28 ++++++++++++++++++--- source/blender/editors/io/io_utils.cc | 26 +++---------------- source/blender/editors/io/io_utils.hh | 6 +---- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index 93fde9f27b9..b45f2186da6 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -454,7 +454,7 @@ static void wm_obj_import_draw(bContext *C, wmOperator *op) PointerRNA ptr; wmWindowManager *wm = CTX_wm_manager(C); RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - files_drop_info_draw(C, op, ICON_FILE_3D); + files_drop_label_draw(C, op, ICON_FILE_3D); ui_obj_import_settings(op->layout, &ptr); } @@ -480,7 +480,9 @@ void WM_OT_obj_import(struct wmOperatorType *ot) WM_FILESEL_DIRECTORY | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY, FILE_SORT_DEFAULT); + skip_save_import_paths_props(ot, WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILES); + RNA_def_float( ot->srna, "global_scale", diff --git a/source/blender/editors/io/io_ops_dropbox.cc b/source/blender/editors/io/io_ops_dropbox.cc index ad34b2f1c7b..6bd38738770 100644 --- a/source/blender/editors/io/io_ops_dropbox.cc +++ b/source/blender/editors/io/io_ops_dropbox.cc @@ -5,12 +5,33 @@ #include "DNA_space_types.h" + +#include "RNA_access.h" +#include "RNA_define.h" + #include "WM_api.h" -#include "io_utils.hh" - #include "io_ops_dropbox.h" +void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) +{ + RNA_string_set(drop->ptr, "filepath", WM_drag_get_path(drag)); + if (!RNA_struct_find_property(drop->ptr, "directory")) { + return; + } + + // TODO(@guishe): Add support for multiple drag&drop files import + char dir[FILE_MAX], file[FILE_MAX]; + BLI_path_split_dir_file(WM_drag_get_path(drag), dir, sizeof(dir), file, sizeof(file)); + + RNA_string_set(drop->ptr, "directory", dir); + + RNA_collection_clear(drop->ptr, "files"); + PointerRNA itemptr{}; + RNA_collection_add(drop->ptr, "files", &itemptr); + RNA_string_set(&itemptr, "name", file); +} + template void add_drag_path_dropbox(ListBase *lb, const char *operator_name) { @@ -27,13 +48,12 @@ void add_drag_path_dropbox(ListBase *lb, const char *operator_name) WM_dropbox_add(lb, operator_name, poll, files_drop_copy, NULL, NULL); } -char const obj_ext[] = ".obj"; - void ED_dropboxes_io(void) { ListBase *lb = WM_dropboxmap_find("Window", 0, 0); #ifdef WITH_IO_WAVEFRONT_OBJ + static const char obj_ext[] = ".obj"; add_drag_path_dropbox(lb, "WM_OT_obj_import"); #endif } diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc index add79c3ffdb..7e615337190 100644 --- a/source/blender/editors/io/io_utils.cc +++ b/source/blender/editors/io/io_utils.cc @@ -3,8 +3,6 @@ #if defined(WITH_COLLADA) || defined(WITH_IO_GPENCIL) || defined(WITH_IO_WAVEFRONT_OBJ) || \ defined(WITH_IO_PLY) || defined(WITH_IO_STL) || defined(WITH_USD) -# include "DNA_space_types.h" - # include "BKE_context.h" # include "BLI_path_util.h" @@ -12,6 +10,8 @@ # include "BLI_utildefines.h" # include "BLT_translation.h" +# include "DNA_space_types.h" + # include "ED_fileselect.h" # include "RNA_access.h" @@ -20,6 +20,7 @@ # include "UI_interface.h" # include "WM_api.h" + # include "io_utils.hh" int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent * /* event */) @@ -53,26 +54,7 @@ void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag) } } -void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) -{ - RNA_string_set(drop->ptr, "filepath", WM_drag_get_path(drag)); - if (!RNA_struct_find_property(drop->ptr, "directory")) { - return; - } - - // TODO(@guishe): Add support for multiple drag&drop files import - char dir[FILE_MAX], file[FILE_MAX]; - BLI_path_split_dir_file(WM_drag_get_path(drag), dir, sizeof(dir), file, sizeof(file)); - - RNA_string_set(drop->ptr, "directory", dir); - - RNA_collection_clear(drop->ptr, "files"); - PointerRNA itemptr; - RNA_collection_add(drop->ptr, "files", &itemptr); - RNA_string_set(&itemptr, "name", file); -} - -void files_drop_info_draw(bContext *C, wmOperator *op, int icon) +void files_drop_label_draw(bContext *C, wmOperator *op, int icon) { ScrArea *area = CTX_wm_area(C); if (area->spacetype == SPACE_FILE) { diff --git a/source/blender/editors/io/io_utils.hh b/source/blender/editors/io/io_utils.hh index 77a98ed827e..f48ab581b11 100644 --- a/source/blender/editors/io/io_utils.hh +++ b/source/blender/editors/io/io_utils.hh @@ -17,12 +17,8 @@ struct wmDrag; struct wmDropBox; int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent *event); - void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag); - -void files_drop_copy(bContext *C, wmDrag *drag, wmDropBox *drop); - -void files_drop_info_draw(bContext *C, wmOperator *op, int icon); +void files_drop_label_draw(bContext *C, wmOperator *op, int icon); # ifdef __cplusplus } -- 2.30.2 From 9c330141d61d9a0a4738f835eedb259230cc9f0d Mon Sep 17 00:00:00 2001 From: guishe Date: Fri, 2 Jun 2023 20:30:23 -0600 Subject: [PATCH 04/12] add liscense header --- source/blender/editors/io/io_ops_dropbox.cc | 2 +- source/blender/editors/io/io_ops_dropbox.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/io/io_ops_dropbox.cc b/source/blender/editors/io/io_ops_dropbox.cc index 6bd38738770..c3c9d8f6fd4 100644 --- a/source/blender/editors/io/io_ops_dropbox.cc +++ b/source/blender/editors/io/io_ops_dropbox.cc @@ -1,4 +1,4 @@ - +/* SPDX-License-Identifier: GPL-2.0-or-later */ #include "BLI_listbase.h" #include "BLI_path_util.h" diff --git a/source/blender/editors/io/io_ops_dropbox.h b/source/blender/editors/io/io_ops_dropbox.h index 9be000adc82..cc4de72a50f 100644 --- a/source/blender/editors/io/io_ops_dropbox.h +++ b/source/blender/editors/io/io_ops_dropbox.h @@ -1,3 +1,5 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + #pragma once #ifdef __cplusplus -- 2.30.2 From 4bdc8f9fda473ef4d04c8f1e42de7663bd8b6119 Mon Sep 17 00:00:00 2001 From: guishe Date: Fri, 2 Jun 2023 20:32:35 -0600 Subject: [PATCH 05/12] cleanup --- source/blender/editors/io/io_ops_dropbox.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/io/io_ops_dropbox.cc b/source/blender/editors/io/io_ops_dropbox.cc index c3c9d8f6fd4..e10cb8ce75e 100644 --- a/source/blender/editors/io/io_ops_dropbox.cc +++ b/source/blender/editors/io/io_ops_dropbox.cc @@ -16,6 +16,7 @@ void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) { RNA_string_set(drop->ptr, "filepath", WM_drag_get_path(drag)); + if (!RNA_struct_find_property(drop->ptr, "directory")) { return; } @@ -23,11 +24,11 @@ void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) // TODO(@guishe): Add support for multiple drag&drop files import char dir[FILE_MAX], file[FILE_MAX]; BLI_path_split_dir_file(WM_drag_get_path(drag), dir, sizeof(dir), file, sizeof(file)); - + RNA_string_set(drop->ptr, "directory", dir); - RNA_collection_clear(drop->ptr, "files"); PointerRNA itemptr{}; + RNA_collection_clear(drop->ptr, "files"); RNA_collection_add(drop->ptr, "files", &itemptr); RNA_string_set(&itemptr, "name", file); } @@ -45,7 +46,7 @@ void add_drag_path_dropbox(ListBase *lb, const char *operator_name) return false; }; - WM_dropbox_add(lb, operator_name, poll, files_drop_copy, NULL, NULL); + WM_dropbox_add(lb, operator_name, poll, files_drop_copy, nullptr,nullptr); } void ED_dropboxes_io(void) -- 2.30.2 From d3571a5e9db05d3be90403d0dbb1ca543a82184d Mon Sep 17 00:00:00 2001 From: guishe Date: Tue, 6 Jun 2023 19:32:44 -0600 Subject: [PATCH 06/12] resolve conflicts --- source/blender/editors/io/CMakeLists.txt | 4 ---- source/blender/editors/io/io_obj.c | 15 +++++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/source/blender/editors/io/CMakeLists.txt b/source/blender/editors/io/CMakeLists.txt index 93f242be131..ede0818e948 100644 --- a/source/blender/editors/io/CMakeLists.txt +++ b/source/blender/editors/io/CMakeLists.txt @@ -28,7 +28,6 @@ set(INC_SYS ) set(SRC - io_utils.cc io_alembic.c io_cache.c io_collada.c @@ -40,9 +39,7 @@ set(SRC io_ply_ops.c io_stl_ops.c io_usd.c - io_ops_dropbox.cc - io_utils.hh io_alembic.h io_cache.h io_collada.h @@ -52,7 +49,6 @@ set(SRC io_ply_ops.h io_stl_ops.h io_usd.h - io_ops_dropbox.h ) set(LIB diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index 3273627b4ee..20d5912a5b7 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -40,7 +40,6 @@ # include "IO_path_util_types.h" # include "IO_wavefront_obj.h" # include "io_obj.h" -# include "io_utils.hh" static const EnumPropertyItem io_obj_export_evaluation_mode[] = { {DAG_EVAL_RENDER, "DAG_EVAL_RENDER", 0, "Render", "Export objects as they appear in render"}, @@ -373,6 +372,13 @@ void WM_OT_obj_export(wmOperatorType *ot) RNA_def_property_flag(prop, PROP_HIDDEN); } +static int wm_obj_import_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) +{ + WM_event_add_fileselect(C, op); + return OPERATOR_RUNNING_MODAL; +} + + static int wm_obj_import_exec(bContext *C, wmOperator *op) { struct OBJImportParams import_params; @@ -454,7 +460,6 @@ static void wm_obj_import_draw(bContext *C, wmOperator *op) PointerRNA ptr; wmWindowManager *wm = CTX_wm_manager(C); RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - files_drop_label_draw(C, op, ICON_FILE_3D); ui_obj_import_settings(op->layout, &ptr); } @@ -467,10 +472,10 @@ void WM_OT_obj_import(wmOperatorType *ot) ot->idname = "WM_OT_obj_import"; ot->flag = OPTYPE_UNDO | OPTYPE_PRESET; - ot->invoke = wm_io_import_invoke; + ot->invoke = wm_obj_import_invoke; ot->exec = wm_obj_import_exec; ot->poll = WM_operator_winactive; - ot->ui = wm_obj_import_draw; + ot->ui = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET;; WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER, @@ -481,8 +486,6 @@ void WM_OT_obj_import(wmOperatorType *ot) FILE_DEFAULTDISPLAY, FILE_SORT_DEFAULT); - skip_save_import_paths_props(ot, WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILES); - RNA_def_float( ot->srna, "global_scale", -- 2.30.2 From 3887b7097cf99245bc02d9481751adcca88b5cf6 Mon Sep 17 00:00:00 2001 From: guishe Date: Tue, 6 Jun 2023 19:35:13 -0600 Subject: [PATCH 07/12] resolve conflicts --- source/blender/editors/io/io_obj.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index 20d5912a5b7..cfe6f5ba30a 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -378,7 +378,6 @@ static int wm_obj_import_invoke(bContext *C, wmOperator *op, const wmEvent *UNUS return OPERATOR_RUNNING_MODAL; } - static int wm_obj_import_exec(bContext *C, wmOperator *op) { struct OBJImportParams import_params; @@ -470,12 +469,12 @@ void WM_OT_obj_import(wmOperatorType *ot) ot->name = "Import Wavefront OBJ"; ot->description = "Load a Wavefront OBJ scene"; ot->idname = "WM_OT_obj_import"; - ot->flag = OPTYPE_UNDO | OPTYPE_PRESET; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET; ot->invoke = wm_obj_import_invoke; ot->exec = wm_obj_import_exec; ot->poll = WM_operator_winactive; - ot->ui = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET;; + ot->ui = wm_obj_import_draw; WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER, -- 2.30.2 From 61fcef1ba5af53a5bd09f82d06843d3d88ecbcd4 Mon Sep 17 00:00:00 2001 From: guishe Date: Tue, 6 Jun 2023 19:36:14 -0600 Subject: [PATCH 08/12] resolve conflicts --- source/blender/editors/io/io_obj.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/blender/editors/io/io_obj.c b/source/blender/editors/io/io_obj.c index cfe6f5ba30a..9b22a83ac8f 100644 --- a/source/blender/editors/io/io_obj.c +++ b/source/blender/editors/io/io_obj.c @@ -484,7 +484,6 @@ void WM_OT_obj_import(wmOperatorType *ot) WM_FILESEL_DIRECTORY | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY, FILE_SORT_DEFAULT); - RNA_def_float( ot->srna, "global_scale", -- 2.30.2 From 0f7a32db0df9350dc751280bcc5390e000697cd8 Mon Sep 17 00:00:00 2001 From: guishe Date: Tue, 6 Jun 2023 19:53:08 -0600 Subject: [PATCH 09/12] redo changes --- source/blender/editors/io/CMakeLists.txt | 4 ++++ source/blender/editors/io/io_obj.cc | 15 +++++++-------- source/blender/editors/io/io_utils.cc | 1 + source/blender/editors/io/io_utils.hh | 8 -------- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/source/blender/editors/io/CMakeLists.txt b/source/blender/editors/io/CMakeLists.txt index 217e57452e2..e98be6c35fc 100644 --- a/source/blender/editors/io/CMakeLists.txt +++ b/source/blender/editors/io/CMakeLists.txt @@ -36,9 +36,11 @@ set(SRC io_gpencil_utils.cc io_obj.cc io_ops.cc + io_ops_dropbox.cc io_ply_ops.cc io_stl_ops.cc io_usd.cc + io_utils.cc io_alembic.hh io_cache.hh @@ -46,9 +48,11 @@ set(SRC io_gpencil.hh io_obj.hh io_ops.h + io_ops_dropbox.h io_ply_ops.hh io_stl_ops.hh io_usd.hh + io_utils.hh ) set(LIB diff --git a/source/blender/editors/io/io_obj.cc b/source/blender/editors/io/io_obj.cc index 5b7b0f5c1b7..12ac2ea058e 100644 --- a/source/blender/editors/io/io_obj.cc +++ b/source/blender/editors/io/io_obj.cc @@ -40,6 +40,8 @@ # include "IO_path_util_types.h" # include "IO_wavefront_obj.h" +# include "io_utils.hh" + # include "io_obj.hh" static const EnumPropertyItem io_obj_export_evaluation_mode[] = { @@ -373,12 +375,6 @@ void WM_OT_obj_export(wmOperatorType *ot) RNA_def_property_flag(prop, PROP_HIDDEN); } -static int wm_obj_import_invoke(bContext *C, wmOperator *op, const wmEvent * /*event*/) -{ - WM_event_add_fileselect(C, op); - return OPERATOR_RUNNING_MODAL; -} - static int wm_obj_import_exec(bContext *C, wmOperator *op) { OBJImportParams import_params{}; @@ -460,6 +456,7 @@ static void wm_obj_import_draw(bContext *C, wmOperator *op) PointerRNA ptr; wmWindowManager *wm = CTX_wm_manager(C); RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); + files_drop_label_draw(C, op, ICON_FILE_3D); ui_obj_import_settings(op->layout, &ptr); } @@ -470,9 +467,9 @@ void WM_OT_obj_import(wmOperatorType *ot) ot->name = "Import Wavefront OBJ"; ot->description = "Load a Wavefront OBJ scene"; ot->idname = "WM_OT_obj_import"; - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET; + ot->flag = OPTYPE_UNDO | OPTYPE_PRESET; - ot->invoke = wm_obj_import_invoke; + ot->invoke = wm_io_import_invoke; ot->exec = wm_obj_import_exec; ot->poll = WM_operator_winactive; ot->ui = wm_obj_import_draw; @@ -486,6 +483,8 @@ void WM_OT_obj_import(wmOperatorType *ot) FILE_DEFAULTDISPLAY, FILE_SORT_DEFAULT); + skip_save_import_paths_props(ot, WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILES); + RNA_def_float( ot->srna, "global_scale", diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc index 7e615337190..a44205b7c44 100644 --- a/source/blender/editors/io/io_utils.cc +++ b/source/blender/editors/io/io_utils.cc @@ -8,6 +8,7 @@ # include "BLI_path_util.h" # include "BLI_string.h" # include "BLI_utildefines.h" + # include "BLT_translation.h" # include "DNA_space_types.h" diff --git a/source/blender/editors/io/io_utils.hh b/source/blender/editors/io/io_utils.hh index f48ab581b11..d6fca60c078 100644 --- a/source/blender/editors/io/io_utils.hh +++ b/source/blender/editors/io/io_utils.hh @@ -7,10 +7,6 @@ # include "WM_types.h" -# ifdef __cplusplus -extern "C" { -# endif - struct wmOperator; struct wmOperatorType; struct wmDrag; @@ -20,8 +16,4 @@ int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent *event); void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag); void files_drop_label_draw(bContext *C, wmOperator *op, int icon); -# ifdef __cplusplus -} -# endif - #endif -- 2.30.2 From 40598b63d91f5835636e09951b8eb1d6c3316be7 Mon Sep 17 00:00:00 2001 From: guishe Date: Tue, 6 Jun 2023 19:59:27 -0600 Subject: [PATCH 10/12] cleanup --- source/blender/editors/io/io_obj.cc | 2 +- source/blender/editors/io/io_utils.cc | 28 +++++++++++++++++---------- source/blender/editors/io/io_utils.hh | 2 +- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/source/blender/editors/io/io_obj.cc b/source/blender/editors/io/io_obj.cc index 12ac2ea058e..247857d4a2a 100644 --- a/source/blender/editors/io/io_obj.cc +++ b/source/blender/editors/io/io_obj.cc @@ -456,7 +456,7 @@ static void wm_obj_import_draw(bContext *C, wmOperator *op) PointerRNA ptr; wmWindowManager *wm = CTX_wm_manager(C); RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - files_drop_label_draw(C, op, ICON_FILE_3D); + files_drop_label_draw(C, op, ICON_FILE_3D, ".obj"); ui_obj_import_settings(op->layout, &ptr); } diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc index a44205b7c44..1a0783de4d8 100644 --- a/source/blender/editors/io/io_utils.cc +++ b/source/blender/editors/io/io_utils.cc @@ -28,49 +28,57 @@ int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent * /* event */ { char filepath[FILE_MAX]; RNA_string_get(op->ptr, "filepath", filepath); + if (filepath[0]) { return WM_operator_props_dialog_popup(C, op, 300); } + WM_event_add_fileselect(C, op); return OPERATOR_RUNNING_MODAL; } void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag) { + PropertyRNA *prop; if (flag & WM_FILESEL_FILEPATH) { - RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "filepath"), PROP_SKIP_SAVE); + prop = RNA_struct_type_find_property(ot->srna, "filepath"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); } if (flag & WM_FILESEL_FILENAME) { - RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "filename"), PROP_SKIP_SAVE); + prop = RNA_struct_type_find_property(ot->srna, "filename"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); } if (flag & WM_FILESEL_DIRECTORY) { - RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "directory"), PROP_SKIP_SAVE); + prop = RNA_struct_type_find_property(ot->srna, "directory"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); } if (flag & WM_FILESEL_FILES) { - RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "files"), PROP_SKIP_SAVE); + prop = RNA_struct_type_find_property(ot->srna, "files"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); } if (flag & WM_FILESEL_RELPATH) { - RNA_def_property_flag(RNA_struct_type_find_property(ot->srna, "relative_path"), - PROP_SKIP_SAVE); + prop = RNA_struct_type_find_property(ot->srna, "relative_path"); + RNA_def_property_flag(prop, PROP_SKIP_SAVE); } } -void files_drop_label_draw(bContext *C, wmOperator *op, int icon) +void files_drop_label_draw(bContext *C, wmOperator *op, int icon, char *extension) { ScrArea *area = CTX_wm_area(C); + if (area->spacetype == SPACE_FILE) { return; } + char label[FILE_MAX]; RNA_string_get(op->ptr, "filepath", label); if (RNA_struct_find_property(op->ptr, "directory") && RNA_collection_length(op->ptr, "files") > 1) { - char ext[FILE_MAX]; - BLI_strncpy(ext, BLI_path_extension(label), sizeof(ext)); - sprintf(label, "%d %s files dropped.", RNA_collection_length(op->ptr, "files"), ext); + sprintf(label, "%d %s files dropped.", RNA_collection_length(op->ptr, "files"), extension); } + uiLayout *box = uiLayoutBox(op->layout); uiItemL(box, label, icon); } diff --git a/source/blender/editors/io/io_utils.hh b/source/blender/editors/io/io_utils.hh index d6fca60c078..feb71749892 100644 --- a/source/blender/editors/io/io_utils.hh +++ b/source/blender/editors/io/io_utils.hh @@ -14,6 +14,6 @@ struct wmDropBox; int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent *event); void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag); -void files_drop_label_draw(bContext *C, wmOperator *op, int icon); +void files_drop_label_draw(bContext *C, wmOperator *op, int icon, char *extension); #endif -- 2.30.2 From f9578090b66ab862f35afa77d6eee7a4b4e3ffc6 Mon Sep 17 00:00:00 2001 From: guishe Date: Wed, 7 Jun 2023 13:26:16 -0600 Subject: [PATCH 11/12] fix paramether error --- source/blender/editors/io/io_ops_dropbox.cc | 5 ++--- source/blender/editors/io/io_utils.cc | 2 +- source/blender/editors/io/io_utils.hh | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/source/blender/editors/io/io_ops_dropbox.cc b/source/blender/editors/io/io_ops_dropbox.cc index e10cb8ce75e..dc01602c196 100644 --- a/source/blender/editors/io/io_ops_dropbox.cc +++ b/source/blender/editors/io/io_ops_dropbox.cc @@ -5,7 +5,6 @@ #include "DNA_space_types.h" - #include "RNA_access.h" #include "RNA_define.h" @@ -24,7 +23,7 @@ void files_drop_copy(bContext * /* C */, wmDrag *drag, wmDropBox *drop) // TODO(@guishe): Add support for multiple drag&drop files import char dir[FILE_MAX], file[FILE_MAX]; BLI_path_split_dir_file(WM_drag_get_path(drag), dir, sizeof(dir), file, sizeof(file)); - + RNA_string_set(drop->ptr, "directory", dir); PointerRNA itemptr{}; @@ -46,7 +45,7 @@ void add_drag_path_dropbox(ListBase *lb, const char *operator_name) return false; }; - WM_dropbox_add(lb, operator_name, poll, files_drop_copy, nullptr,nullptr); + WM_dropbox_add(lb, operator_name, poll, files_drop_copy, nullptr, nullptr); } void ED_dropboxes_io(void) diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc index 1a0783de4d8..79b2641c2e4 100644 --- a/source/blender/editors/io/io_utils.cc +++ b/source/blender/editors/io/io_utils.cc @@ -62,7 +62,7 @@ void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag) } } -void files_drop_label_draw(bContext *C, wmOperator *op, int icon, char *extension) +void files_drop_label_draw(bContext *C, wmOperator *op, int icon, const char *extension) { ScrArea *area = CTX_wm_area(C); diff --git a/source/blender/editors/io/io_utils.hh b/source/blender/editors/io/io_utils.hh index feb71749892..a516e02f36e 100644 --- a/source/blender/editors/io/io_utils.hh +++ b/source/blender/editors/io/io_utils.hh @@ -14,6 +14,6 @@ struct wmDropBox; int wm_io_import_invoke(bContext *C, wmOperator *op, const wmEvent *event); void skip_save_import_paths_props(wmOperatorType *ot, const eFileSel_Flag flag); -void files_drop_label_draw(bContext *C, wmOperator *op, int icon, char *extension); +void files_drop_label_draw(bContext *C, wmOperator *op, int icon, const char *extension); #endif -- 2.30.2 From ff4a6c6a219061be2621868c66cbb9f3cc353376 Mon Sep 17 00:00:00 2001 From: guishe Date: Wed, 7 Jun 2023 21:36:41 -0600 Subject: [PATCH 12/12] Cleanup: format --- source/blender/editors/io/io_utils.cc | 3 +-- source/blender/editors/space_api/spacetypes.c | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/source/blender/editors/io/io_utils.cc b/source/blender/editors/io/io_utils.cc index 79b2641c2e4..c2b27eb85c3 100644 --- a/source/blender/editors/io/io_utils.cc +++ b/source/blender/editors/io/io_utils.cc @@ -74,8 +74,7 @@ void files_drop_label_draw(bContext *C, wmOperator *op, int icon, const char *ex RNA_string_get(op->ptr, "filepath", label); if (RNA_struct_find_property(op->ptr, "directory") && - RNA_collection_length(op->ptr, "files") > 1) - { + RNA_collection_length(op->ptr, "files") > 1) { sprintf(label, "%d %s files dropped.", RNA_collection_length(op->ptr, "files"), extension); } diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c index 42aef77be1e..773ef9950ff 100644 --- a/source/blender/editors/space_api/spacetypes.c +++ b/source/blender/editors/space_api/spacetypes.c @@ -61,7 +61,6 @@ #include "io_ops.h" #include "io_ops_dropbox.h" - void ED_spacetypes_init(void) { /* UI unit is a variable, may be used in some space type initialization. */ -- 2.30.2