Fix expanding paths ignoring data-block libraries

- Image views.
- Sequencer text strip font.
- Text check for modified/reload.
- Collada image export.
- Brush icons.
This commit is contained in:
Campbell Barton 2019-10-04 07:03:53 +10:00
parent 8096190d11
commit fbc096cf07
Notes: blender-bot 2023-02-14 10:09:24 +01:00
Referenced by issue #70503, Changing active object with arrow keys in outliner changes selected object but leaves active object unchanged
Referenced by issue #70506, Multiple output nodes in a group produce "undefined behaviour"
Referenced by issue #70183, Noise Texture Fac output in Height bump node broken if Eevee rendering engine
5 changed files with 8 additions and 8 deletions

View File

@ -569,7 +569,7 @@ Image *BKE_image_load_exists_ex(Main *bmain, const char *filepath, bool *r_exist
char str[FILE_MAX], strtest[FILE_MAX];
STRNCPY(str, filepath);
BLI_path_abs(str, BKE_main_blendfile_path_from_global());
BLI_path_abs(str, bmain->name);
/* first search an identical filepath */
for (ima = bmain->images.first; ima; ima = ima->id.next) {
@ -5310,7 +5310,7 @@ static void image_update_views_format(Image *ima, ImageUser *iuser)
char str[FILE_MAX];
STRNCPY(str, iv->filepath);
BLI_path_abs(str, BKE_main_blendfile_path_from_global());
BLI_path_abs(str, ID_BLEND_PATH_FROM_GLOBAL(&ima->id));
/* exists? */
file = BLI_open(str, O_BINARY | O_RDONLY, 0);

View File

@ -3822,7 +3822,7 @@ void BKE_sequencer_text_font_load(TextVars *data, const bool do_id_user)
char path[FILE_MAX];
STRNCPY(path, data->text_font->name);
BLI_assert(BLI_thread_is_main());
BLI_path_abs(path, BKE_main_blendfile_path_from_global());
BLI_path_abs(path, ID_BLEND_PATH_FROM_GLOBAL(&data->text_font->id));
data->text_blf_id = BLF_load(path);
}

View File

@ -312,7 +312,7 @@ bool BKE_text_reload(Text *text)
}
BLI_strncpy(filepath_abs, text->name, FILE_MAX);
BLI_path_abs(filepath_abs, BKE_main_blendfile_path_from_global());
BLI_path_abs(filepath_abs, ID_BLEND_PATH_FROM_GLOBAL(&text->id));
buffer = BLI_file_read_text_as_mem(filepath_abs, 0, &buffer_len);
if (buffer == NULL) {
@ -477,7 +477,7 @@ int BKE_text_file_modified_check(Text *text)
}
BLI_strncpy(file, text->name, FILE_MAX);
BLI_path_abs(file, BKE_main_blendfile_path_from_global());
BLI_path_abs(file, ID_BLEND_PATH_FROM_GLOBAL(&text->id));
if (!BLI_exists(file)) {
return 2;
@ -511,7 +511,7 @@ void BKE_text_file_modified_ignore(Text *text)
}
BLI_strncpy(file, text->name, FILE_MAX);
BLI_path_abs(file, BKE_main_blendfile_path_from_global());
BLI_path_abs(file, ID_BLEND_PATH_FROM_GLOBAL(&text->id));
if (!BLI_exists(file)) {
return;

View File

@ -107,7 +107,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
/* make absolute source path */
BLI_strncpy(source_path, image->name, sizeof(source_path));
BLI_path_abs(source_path, BKE_main_blendfile_path_from_global());
BLI_path_abs(source_path, ID_BLEND_PATH_FROM_GLOBAL(&image->id));
BLI_cleanup_path(NULL, source_path);
if (use_copies) {

View File

@ -115,7 +115,7 @@ ImBuf *get_brush_icon(Brush *brush)
// first use the path directly to try and load the file
BLI_strncpy(path, brush->icon_filepath, sizeof(brush->icon_filepath));
BLI_path_abs(path, BKE_main_blendfile_path_from_global());
BLI_path_abs(path, ID_BLEND_PATH_FROM_GLOBAL(&brush->id));
/* use default colorspaces for brushes */
brush->icon_imbuf = IMB_loadiffname(path, flags, NULL);