Revision: 59047 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59047 Author: elubie Date: 2013-08-10 12:15:59 +0000 (Sat, 10 Aug 2013) Log Message: ----------- == asset-browser == Some small fixes: * initialization of contentlist wasn't done properly -> crash on loading file containing asset list * wrong event when updating the active collection * always showed the first asset collection, not the selected one
Modified Paths: -------------- branches/asset-browser/source/blender/editors/space_asset/assetlist.c branches/asset-browser/source/blender/editors/space_asset/space_asset.c branches/asset-browser/source/blender/makesrna/intern/rna_space.c Modified: branches/asset-browser/source/blender/editors/space_asset/assetlist.c =================================================================== --- branches/asset-browser/source/blender/editors/space_asset/assetlist.c 2013-08-10 11:25:55 UTC (rev 59046) +++ branches/asset-browser/source/blender/editors/space_asset/assetlist.c 2013-08-10 12:15:59 UTC (rev 59047) @@ -381,6 +381,7 @@ static void assetlist_read(struct ContentList *cl, struct bContext *C) { struct Main *main = CTX_data_main(C); + SpaceAsset *sasset = CTX_wm_space_asset(C); struct bAssetCollection *ac = (bAssetCollection *)main->asset_collection.first; bAssetFile *af; bAssetDir *ad; @@ -398,6 +399,8 @@ assetlist_free_entries(cl); + ac = BLI_findlink(&main->asset_collection, sasset->active_collection); + num_entries = 0; for (af = ac->asset_files.first; af; af= af->next) { for (asset = af->assets.first; asset; asset = asset->next) { Modified: branches/asset-browser/source/blender/editors/space_asset/space_asset.c =================================================================== --- branches/asset-browser/source/blender/editors/space_asset/space_asset.c 2013-08-10 11:25:55 UTC (rev 59046) +++ branches/asset-browser/source/blender/editors/space_asset/space_asset.c 2013-08-10 12:15:59 UTC (rev 59047) @@ -112,51 +112,58 @@ { } -/* spacetype; refresh callback */ -static void assetbrowser_refresh(const bContext *C, ScrArea *sa) +static void read_asset_list(const bContext *C, ARegion *ar) { - ARegion *ar; Main *main= CTX_data_main(C); SpaceAsset *sasset = CTX_wm_space_asset(C); bAssetCollection *ac= (bAssetCollection *)main->asset_collection.first; + ListViewLayout *layout; + struct ContentListFilterParams params; + struct ContentList *cl = ar->regiondata; + + /* by default, show Scenes, Groups and Objects */ + if (sasset->showflag == 0) { + sasset->showflag = ASC_SCHOWFLAG_SCENE | ASC_SCHOWFLAG_GROUP | ASC_SCHOWFLAG_OBJECT; + } + params.filter_setting = sasset->showflag; + params.flag = FILE_FILTER; + params.filter_string[0] = '\0'; + + if (!cl) { + cl = ar->regiondata = assetlist_new(); + } + + ac = BLI_findlink(&main->asset_collection, sasset->active_collection); + ac->changed = 1; + if (cl) { + if (ac) { + int do_update = asset_collection_update(main, ac) || contentlist_empty(cl); + if (do_update) { + contentlist_read(cl, C); + listview_layout_init(ar); + layout = contentlist_layout_get(cl); + layout->dirty = 1; + } + } + + contentlist_filters_clear(cl); + contentlist_filters_append(cl, ¶ms); + contentlist_filter(cl); + } +} + +/* spacetype; refresh callback */ +static void assetbrowser_refresh(const bContext *C, ScrArea *sa) +{ + ARegion *ar; + for (ar = sa->regionbase.first; ar; ar = ar->next) if (ar->regiontype == RGN_TYPE_WINDOW) break; if (ar) { - ListViewLayout *layout; - struct ContentListFilterParams params; - struct ContentList *cl = ar->regiondata; - - /* by default, show Scenes, Groups and Objects */ - if (sasset->showflag == 0) { - sasset->showflag = ASC_SCHOWFLAG_SCENE | ASC_SCHOWFLAG_GROUP | ASC_SCHOWFLAG_OBJECT; - } - - params.filter_setting = sasset->showflag; - params.flag = FILE_FILTER; - params.filter_string[0] = '\0'; - - if (!cl) { - cl = ar->regiondata = assetlist_new(); - } - - if (cl) { - if (ac) { - int do_update = asset_collection_update(main, ac) || contentlist_empty(cl); - if (do_update) { - contentlist_read(cl, C); - listview_layout_init(ar); - layout = contentlist_layout_get(cl); - layout->dirty = 1; - } - } - - contentlist_filters_clear(cl); - contentlist_filters_append(cl, ¶ms); - contentlist_filter(cl); - } + read_asset_list(C, ar); } } @@ -244,6 +251,11 @@ View2DScrollers *scrollers; float col[3]; + if (NULL == cl) { + read_asset_list(C, ar); + cl = ar->regiondata; + } + listview_layout_init(ar); layout = contentlist_layout_get(cl); sasset->active_asset = contentlist_get_active(cl); Modified: branches/asset-browser/source/blender/makesrna/intern/rna_space.c =================================================================== --- branches/asset-browser/source/blender/makesrna/intern/rna_space.c 2013-08-10 11:25:55 UTC (rev 59046) +++ branches/asset-browser/source/blender/makesrna/intern/rna_space.c 2013-08-10 12:15:59 UTC (rev 59047) @@ -3768,7 +3768,7 @@ prop= RNA_def_property(srna, "active_collection", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "active_collection"); RNA_def_property_ui_text(prop, "Active Collection", "Selected Collection"); - RNA_def_property_update(prop, NC_SPACE|NC_ASSETCOLLECTION, NULL); + RNA_def_property_update(prop, NC_ASSETCOLLECTION | ND_ASSETS_CHANGED, NULL); prop= RNA_def_property(srna, "active_asset", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "active_asset"); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs