[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