[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, ¶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");
More information about the Bf-blender-cvs
mailing list