[Bf-blender-cvs] [8db12b1f951] asset-browser: Fix issues with browsing repository .blend file
Julian Eisel
noreply at git.blender.org
Thu Oct 8 15:53:06 CEST 2020
Commit: 8db12b1f951852a4d2a556441c019520e90d5e0a
Author: Julian Eisel
Date: Thu Oct 8 15:49:46 2020 +0200
Branches: asset-browser
https://developer.blender.org/rB8db12b1f951852a4d2a556441c019520e90d5e0a
Fix issues with browsing repository .blend file
The file selection in the Preferences wasn't working well at all. Should
now work fine.
===================================================================
M source/blender/editors/interface/interface_handlers.c
M source/blender/editors/space_buttons/buttons_ops.c
M source/blender/editors/space_file/filesel.c
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_userdef.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 24ca50edfec..c0b4f5dfd40 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -630,7 +630,11 @@ static bool ui_rna_is_userdef(PointerRNA *ptr, PropertyRNA *prop)
if (base == NULL) {
base = ptr->type;
}
- if (ELEM(base, &RNA_AddonPreferences, &RNA_KeyConfigPreferences, &RNA_KeyMapItem)) {
+ if (ELEM(base,
+ &RNA_AddonPreferences,
+ &RNA_KeyConfigPreferences,
+ &RNA_KeyMapItem,
+ &RNA_UserAssetRepository)) {
tag = true;
}
}
diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c
index 87cf8507dd4..0c98d4de987 100644
--- a/source/blender/editors/space_buttons/buttons_ops.c
+++ b/source/blender/editors/space_buttons/buttons_ops.c
@@ -338,7 +338,7 @@ static int file_browse_invoke(bContext *C, wmOperator *op, const wmEvent *event)
is_relative = BLI_path_is_rel(str);
}
- if (UNLIKELY(ptr.data == &U)) {
+ if (UNLIKELY(ptr.data == &U || is_userdef)) {
is_relative = false;
}
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index 5aaea095051..492ac2a258d 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -78,9 +78,9 @@
#define VERTLIST_MAJORCOLUMN_WIDTH (25 * UI_UNIT_X)
-static eFileSelectType fileselect_type_from_params_get(const FileSelectParams *params)
+static eFileSelectType fileselect_type_from_asset_params_get(const FileSelectParams *params)
{
-
+ BLI_assert(ED_fileselect_is_asset_browser(params));
return (params->asset_repository.type == FILE_ASSET_REPO_LOCAL) ? FILE_MAIN_ASSET : FILE_LOADLIB;
}
@@ -99,13 +99,14 @@ static bool fileselect_needs_refresh(const SpaceFile *sfile)
(sfile->params->type != FILE_UNIX)) {
return true;
}
- if (sfile->files &&
- !filelist_matches_type(sfile->files, fileselect_type_from_params_get(sfile->params))) {
- return true;
- }
- if (sfile->files &&
- !filelist_matches_asset_repository(sfile->files, &sfile->params->asset_repository)) {
- return true;
+ if (sfile->files && ED_fileselect_is_asset_browser(sfile->params)) {
+ if (!filelist_matches_type(sfile->files,
+ fileselect_type_from_asset_params_get(sfile->params))) {
+ return true;
+ }
+ if (!filelist_matches_asset_repository(sfile->files, &sfile->params->asset_repository)) {
+ return true;
+ }
}
return false;
@@ -363,7 +364,7 @@ short ED_fileselect_set_params(SpaceFile *sfile)
params->file[0] = '\0';
params->asset_repository.type = repo_type;
- params->type = fileselect_type_from_params_get(params);
+ params->type = fileselect_type_from_asset_params_get(params);
/* TODO this way of using filters to realize categories is noticably slower than
* specifying a "group" to read. That's because all types are read and filtering is applied
* after the fact. */
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 385e31d3c80..78407e8f7ea 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -696,6 +696,7 @@ extern StructRNA RNA_UVProjector;
extern StructRNA RNA_UVWarpModifier;
extern StructRNA RNA_UnitSettings;
extern StructRNA RNA_UnknownType;
+extern StructRNA RNA_UserAssetRepository;
extern StructRNA RNA_UserSolidLight;
extern StructRNA RNA_VertexcolorGpencilModifier;
extern StructRNA RNA_VectorFont;
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 89335bb4293..18ebae508b4 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -5961,7 +5961,7 @@ static void rna_def_userdef_filepaths_asset_repository(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- srna = RNA_def_struct(brna, "PreferencesAssetRepository", NULL);
+ srna = RNA_def_struct(brna, "UserAssetRepository", NULL);
RNA_def_struct_sdna(srna, "bUserAssetRepository");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna,
@@ -6155,7 +6155,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
rna_def_userdef_filepaths_asset_repository(brna);
prop = RNA_def_property(srna, "asset_repositories", PROP_COLLECTION, PROP_NONE);
- RNA_def_property_struct_type(prop, "PreferencesAssetRepository");
+ RNA_def_property_struct_type(prop, "UserAssetRepository");
RNA_def_property_ui_text(prop, "Asset Repositories", "");
}
More information about the Bf-blender-cvs
mailing list