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

Andrea Weikert elubie at gmx.net
Sun Aug 12 10:48:33 CEST 2012


Revision: 49831
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49831
Author:   elubie
Date:     2012-08-12 08:48:32 +0000 (Sun, 12 Aug 2012)
Log Message:
-----------
== assetbrowser ==
WIP commit
* added selection operators

Modified Paths:
--------------
    branches/asset-browser/source/blender/editors/listview/contentlist.c
    branches/asset-browser/source/blender/editors/listview/listview_ops.c
    branches/asset-browser/source/blender/editors/listview/listview_ops.h
    branches/asset-browser/source/blender/editors/space_asset/space_asset.c
    branches/asset-browser/source/blender/windowmanager/WM_types.h
    branches/asset-browser/source/blender/windowmanager/intern/wm_operators.c

Modified: branches/asset-browser/source/blender/editors/listview/contentlist.c
===================================================================
--- branches/asset-browser/source/blender/editors/listview/contentlist.c	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/editors/listview/contentlist.c	2012-08-12 08:48:32 UTC (rev 49831)
@@ -97,6 +97,9 @@
 
 int contentlist_num_entries(struct ContentList *cl)
 {
+	if (NULL == cl) {
+		return 0;
+	}
 	return cl->num_entries_filtered;
 }
 
@@ -220,6 +223,10 @@
 
 void contentlist_select(struct ContentList *cl, ContentListSelection *sel, ContentListSelType select, unsigned int flag, ContentListCheckType check)
 {
+	if (NULL == cl) {
+		return;
+	}
+
 	/* select all valid files between first and last indicated */
 	if ( (sel->first >= 0) && (sel->first < cl->num_entries_filtered) && (sel->last >= 0) && (sel->last < cl->num_entries_filtered) ) {
 		int current_entry;
@@ -320,6 +327,9 @@
 
 ListViewLayout * contentlist_layout_get(struct ContentList *cl)
 {
+	if (NULL == cl) {
+		return NULL;
+	}
 	return cl->layout;
 }
 

Modified: branches/asset-browser/source/blender/editors/listview/listview_ops.c
===================================================================
--- branches/asset-browser/source/blender/editors/listview/listview_ops.c	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/editors/listview/listview_ops.c	2012-08-12 08:48:32 UTC (rev 49831)
@@ -158,6 +158,8 @@
 static int listview_border_select_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
 	ARegion *ar = CTX_wm_region(C);
+	ScrArea *sa = CTX_wm_area(C);
+
 	ContentListSelection sel;
 	struct ContentList *cl = ar->regiondata;
 	rcti rect;
@@ -179,7 +181,7 @@
 			listview_deselect_all(cl, HILITED_FILE);
 			contentlist_select(cl, &sel, CL_SEL_ADD, HILITED_FILE, CL_CHECK_ALL);
 			contentlist_selection_save(cl, &sel);
-			WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL);
+			WM_event_add_notifier(C, NC_LISTVIEW , NULL);
 		}
 
 	}
@@ -187,7 +189,7 @@
 		sel.first = sel.last = -1;
 		contentlist_selection_save(cl, &sel);
 		listview_deselect_all(cl, HILITED_FILE);
-		WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL);
+		WM_event_add_notifier(C, NC_LISTVIEW , NULL);
 	}
 
 	return result;
@@ -213,17 +215,17 @@
 	BLI_rcti_isect(&(ar->v2d.mask), &rect, &rect);
 
 	listview_select(C, &rect, select ? CL_SEL_ADD : CL_SEL_REMOVE, 0);
-	ED_region_tag_redraw(ar);
+	WM_event_add_notifier(C, NC_LISTVIEW , NULL);
 
 	return OPERATOR_FINISHED;
 }
 
-void FILE_OT_select_border(wmOperatorType *ot)
+void LISTVIEW_OT_select_border(wmOperatorType *ot)
 {
 	/* identifiers */
 	ot->name = "Activate/Select File";
 	ot->description = "Activate/select the file(s) contained in the border";
-	ot->idname = "FILE_OT_select_border";
+	ot->idname = "LISTVIEW_OT_select_border";
 	
 	/* api callbacks */
 	ot->invoke = WM_border_select_invoke;
@@ -258,7 +260,7 @@
 	if (!extend) listview_deselect_all(cl, SELECTED_FILE);
 
 	listview_select(C, &rect, extend ? CL_SEL_TOGGLE : CL_SEL_ADD, fill);
-	ED_region_tag_redraw(ar);
+	WM_event_add_notifier(C, NC_LISTVIEW , NULL);
 
 	return OPERATOR_FINISHED;
 }
@@ -268,7 +270,7 @@
 	/* identifiers */
 	ot->name = "Activate/Select File";
 	ot->description = "Activate/select file";
-	ot->idname = "FILE_OT_select";
+	ot->idname = "LISTVIEW_OT_select";
 	
 	/* api callbacks */
 	ot->invoke = listview_select_invoke;
@@ -315,11 +317,11 @@
 	/* identifiers */
 	ot->name = "(De)select All Files";
 	ot->description = "Select or deselect all files";
-	ot->idname = "FILE_OT_select_all_toggle";
+	ot->idname = "LISTVIEW_OT_select_all_toggle";
 	
 	/* api callbacks */
 	ot->exec = listview_select_all_exec;
-	ot->poll = ED_operator_file_active;
+	ot->poll = ED_operator_areaactive; // XXXXX
 
 	/* rna */
 	
@@ -384,9 +386,9 @@
 	/* identifiers */
 	ot->name = "Highlight File";
 	ot->description = "Highlight selected file(s)";
-	ot->idname = "FILE_OT_highlight";
+	ot->idname = "LISTVIEW_OT_highlight";
 	
 	/* api callbacks */
 	ot->invoke = listview_highlight_invoke;
-	ot->poll = ED_operator_file_active;
+	ot->poll = ED_operator_areaactive; // XXXXX
 }
\ No newline at end of file

Modified: branches/asset-browser/source/blender/editors/listview/listview_ops.h
===================================================================
--- branches/asset-browser/source/blender/editors/listview/listview_ops.h	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/editors/listview/listview_ops.h	2012-08-12 08:48:32 UTC (rev 49831)
@@ -32,4 +32,9 @@
 #ifndef __LISTVIEW_OPS_H__
 #define __LISTVIEW_OPS_H__
 
+void LISTVIEW_OT_highlight(struct wmOperatorType *ot);
+void LISTVIEW_OT_select_all_toggle(wmOperatorType *ot);
+void LISTVIEW_OT_select(wmOperatorType *ot);
+void LISTVIEW_OT_select_border(wmOperatorType *ot);
+
 #endif

Modified: branches/asset-browser/source/blender/editors/space_asset/space_asset.c
===================================================================
--- branches/asset-browser/source/blender/editors/space_asset/space_asset.c	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/editors/space_asset/space_asset.c	2012-08-12 08:48:32 UTC (rev 49831)
@@ -46,6 +46,8 @@
 
 #include "MEM_guardedalloc.h"
 
+#include "RNA_access.h"
+
 #include "UI_view2d.h"
 #include "UI_resources.h"
 
@@ -55,6 +57,7 @@
 #include "asset_ops.h"
 #include "listview_layout.h"
 #include "listview_draw.h"
+#include "listview_ops.h"
 #include "contentlist.h"
 #include "assetlist.h"
 
@@ -158,9 +161,11 @@
 	}
 	if (ac) {
 		asset_collection_update(main, ac);
-		contentlist_read(cl, C);
-		layout = contentlist_layout_get(cl);
-		layout->dirty = 1;
+		if (contentlist_empty(cl)) {
+			contentlist_read(cl, C);
+			layout = contentlist_layout_get(cl);
+			layout->dirty = 1;
+		}
 	}
 	
 	listview_layout_init(ar);
@@ -217,7 +222,12 @@
 
 static void assetbrowser_main_region_listener(ARegion *ar, wmNotifier *wmn)
 {
-	
+	/* context changes */
+	switch (wmn->category) {
+		case NC_LISTVIEW:
+			ED_region_tag_redraw(ar);
+			break;
+	}
 }
 
 /* --- header area --- */
@@ -256,7 +266,10 @@
 
 static void assetbrowser_operatortypes(void)
 {
-	WM_operatortype_append(ASSET_OT_select);
+	WM_operatortype_append(LISTVIEW_OT_select);
+	WM_operatortype_append(LISTVIEW_OT_select_all_toggle);
+	WM_operatortype_append(LISTVIEW_OT_select_border);
+	WM_operatortype_append(LISTVIEW_OT_highlight);
 }
 
 static void assetbrowser_keymap(struct wmKeyConfig *keyconf)
@@ -264,7 +277,17 @@
 	wmKeyMapItem *kmi;
 	/* keys for all areas */
 	wmKeyMap *keymap = WM_keymap_find(keyconf, "Asset Browser", SPACE_ASSET, 0);
-	WM_keymap_add_item(keymap, "ASSET_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
+
+	WM_keymap_add_item(keymap, "LISTVIEW_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "LISTVIEW_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
+	kmi = WM_keymap_add_item(keymap, "LISTVIEW_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
+	RNA_boolean_set(kmi->ptr, "extend", TRUE);
+	kmi = WM_keymap_add_item(keymap, "LISTVIEW_OT_select", LEFTMOUSE, KM_CLICK, KM_ALT, 0);
+	RNA_boolean_set(kmi->ptr, "extend", TRUE);
+	RNA_boolean_set(kmi->ptr, "fill", TRUE);
+	WM_keymap_add_item(keymap, "LISTVIEW_OT_select_border", BKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "LISTVIEW_OT_select_border", EVT_TWEAK_L, KM_ANY, 0, 0);
+	WM_keymap_add_item(keymap, "LISTVIEW_OT_highlight", MOUSEMOVE, KM_ANY, KM_ANY, 0);
 }
 
 

Modified: branches/asset-browser/source/blender/windowmanager/WM_types.h
===================================================================
--- branches/asset-browser/source/blender/windowmanager/WM_types.h	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/windowmanager/WM_types.h	2012-08-12 08:48:32 UTC (rev 49831)
@@ -167,8 +167,9 @@
 #define NC_ID				(18<<24)
 #define NC_LOGIC			(19<<24)
 #define NC_MOVIECLIP		(20<<24)
-#define NC_ASSETCOLLECTION  (21<<24)
 #define NC_MASK				(21<<24)
+#define NC_ASSETCOLLECTION  (22<<24)
+#define NC_LISTVIEW         (23<<24)
 
 /* data type, 256 entries is enough, it can overlap */
 #define NOTE_DATA			0x00FF0000

Modified: branches/asset-browser/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- branches/asset-browser/source/blender/windowmanager/intern/wm_operators.c	2012-08-12 02:40:21 UTC (rev 49830)
+++ branches/asset-browser/source/blender/windowmanager/intern/wm_operators.c	2012-08-12 08:48:32 UTC (rev 49831)
@@ -3802,6 +3802,7 @@
 	WM_modalkeymap_assign(keymap, "ANIM_OT_previewrange_set");
 	WM_modalkeymap_assign(keymap, "INFO_OT_select_border");
 	WM_modalkeymap_assign(keymap, "FILE_OT_select_border");
+	WM_modalkeymap_assign(keymap, "LISTVIEW_OT_select_border");
 	WM_modalkeymap_assign(keymap, "GRAPH_OT_select_border");
 	WM_modalkeymap_assign(keymap, "MARKER_OT_select_border");
 	WM_modalkeymap_assign(keymap, "NLA_OT_select_border");




More information about the Bf-blender-cvs mailing list