Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_file/space_file.c
| Show All 35 Lines | |||||
| #include "ED_space_api.h" | #include "ED_space_api.h" | ||||
| #include "IMB_imbuf_types.h" | #include "IMB_imbuf_types.h" | ||||
| #include "IMB_thumbs.h" | #include "IMB_thumbs.h" | ||||
| #include "UI_resources.h" | #include "UI_resources.h" | ||||
| #include "UI_view2d.h" | #include "UI_view2d.h" | ||||
| #include "BLO_read_write.h" | |||||
| #include "GPU_framebuffer.h" | #include "GPU_framebuffer.h" | ||||
| #include "file_indexer.h" | #include "file_indexer.h" | ||||
| #include "file_intern.h" /* own include */ | #include "file_intern.h" /* own include */ | ||||
| #include "filelist.h" | #include "filelist.h" | ||||
| #include "fsmenu.h" | #include "fsmenu.h" | ||||
| static ARegion *file_ui_region_ensure(ScrArea *area, ARegion *region_prev) | static ARegion *file_ui_region_ensure(ScrArea *area, ARegion *region_prev) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 929 Lines • ▼ Show 20 Lines | static void file_id_remap(ScrArea *area, SpaceLink *sl, const struct IDRemapper *UNUSED(mappings)) | ||||
| /* If the file shows main data (IDs), tag it for reset. | /* If the file shows main data (IDs), tag it for reset. | ||||
| * Full reset of the file list if main data was changed, don't even attempt remap pointers. | * Full reset of the file list if main data was changed, don't even attempt remap pointers. | ||||
| * We could give file list types a id-remap callback, but it's probably not worth it. | * We could give file list types a id-remap callback, but it's probably not worth it. | ||||
| * Refreshing local file lists is relatively cheap. */ | * Refreshing local file lists is relatively cheap. */ | ||||
| file_reset_filelist_showing_main_data(area, sfile); | file_reset_filelist_showing_main_data(area, sfile); | ||||
| } | } | ||||
| static void file_blend_read_data(BlendDataReader *reader, SpaceLink *sl) | |||||
| { | |||||
| SpaceFile *sfile = (SpaceFile *)sl; | |||||
| /* this sort of info is probably irrelevant for reloading... | |||||
| * plus, it isn't saved to files yet! | |||||
| */ | |||||
| sfile->folders_prev = sfile->folders_next = NULL; | |||||
| BLI_listbase_clear(&sfile->folder_histories); | |||||
| sfile->files = NULL; | |||||
| sfile->layout = NULL; | |||||
| sfile->op = NULL; | |||||
| sfile->previews_timer = NULL; | |||||
| sfile->tags = 0; | |||||
| sfile->runtime = NULL; | |||||
| BLO_read_data_address(reader, &sfile->params); | |||||
| BLO_read_data_address(reader, &sfile->asset_params); | |||||
| if (sfile->params) { | |||||
| sfile->params->rename_id = NULL; | |||||
| } | |||||
| if (sfile->asset_params) { | |||||
| sfile->asset_params->base_params.rename_id = NULL; | |||||
| } | |||||
| } | |||||
| static void file_blend_read_lib(BlendLibReader *UNUSED(reader), | |||||
| ID *UNUSED(parent_id), | |||||
| SpaceLink *sl) | |||||
| { | |||||
| SpaceFile *sfile = (SpaceFile *)sl; | |||||
| sfile->tags |= FILE_TAG_REBUILD_MAIN_FILES; | |||||
| } | |||||
| static void file_blend_write(BlendWriter *writer, SpaceLink *sl) | |||||
| { | |||||
| SpaceFile *sfile = (SpaceFile *)sl; | |||||
| BLO_write_struct(writer, SpaceFile, sl); | |||||
| if (sfile->params) { | |||||
| BLO_write_struct(writer, FileSelectParams, sfile->params); | |||||
| } | |||||
| if (sfile->asset_params) { | |||||
| BLO_write_struct(writer, FileAssetSelectParams, sfile->asset_params); | |||||
| } | |||||
| } | |||||
| void ED_spacetype_file(void) | void ED_spacetype_file(void) | ||||
| { | { | ||||
| SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype file"); | SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype file"); | ||||
| ARegionType *art; | ARegionType *art; | ||||
| st->spaceid = SPACE_FILE; | st->spaceid = SPACE_FILE; | ||||
| STRNCPY(st->name, "File"); | STRNCPY(st->name, "File"); | ||||
| st->create = file_create; | st->create = file_create; | ||||
| st->free = file_free; | st->free = file_free; | ||||
| st->init = file_init; | st->init = file_init; | ||||
| st->exit = file_exit; | st->exit = file_exit; | ||||
| st->duplicate = file_duplicate; | st->duplicate = file_duplicate; | ||||
| st->refresh = file_refresh; | st->refresh = file_refresh; | ||||
| st->listener = file_listener; | st->listener = file_listener; | ||||
| st->operatortypes = file_operatortypes; | st->operatortypes = file_operatortypes; | ||||
| st->keymap = file_keymap; | st->keymap = file_keymap; | ||||
| st->dropboxes = file_dropboxes; | st->dropboxes = file_dropboxes; | ||||
| st->space_subtype_item_extend = file_space_subtype_item_extend; | st->space_subtype_item_extend = file_space_subtype_item_extend; | ||||
| st->space_subtype_get = file_space_subtype_get; | st->space_subtype_get = file_space_subtype_get; | ||||
| st->space_subtype_set = file_space_subtype_set; | st->space_subtype_set = file_space_subtype_set; | ||||
| st->context = file_context; | st->context = file_context; | ||||
| st->id_remap = file_id_remap; | st->id_remap = file_id_remap; | ||||
| st->blend_read_data = file_blend_read_data; | |||||
| st->blend_read_lib = file_blend_read_lib; | |||||
| st->blend_write = file_blend_write; | |||||
| /* regions: main window */ | /* regions: main window */ | ||||
| art = MEM_callocN(sizeof(ARegionType), "spacetype file region"); | art = MEM_callocN(sizeof(ARegionType), "spacetype file region"); | ||||
| art->regionid = RGN_TYPE_WINDOW; | art->regionid = RGN_TYPE_WINDOW; | ||||
| art->init = file_main_region_init; | art->init = file_main_region_init; | ||||
| art->draw = file_main_region_draw; | art->draw = file_main_region_draw; | ||||
| art->listener = file_main_region_listener; | art->listener = file_main_region_listener; | ||||
| art->message_subscribe = file_main_region_message_subscribe; | art->message_subscribe = file_main_region_message_subscribe; | ||||
| ▲ Show 20 Lines • Show All 93 Lines • Show Last 20 Lines | |||||