[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59047] branches/asset-browser/source/ blender: == asset-browser ==

Andrea Weikert elubie at gmx.net
Sat Aug 10 14:16:00 CEST 2013


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");




More information about the Bf-blender-cvs mailing list