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, &params);
+               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, &params);
-                       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

Reply via email to