[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21604] branches/blender2.5/blender: 2.5: User Preferences

Brecht Van Lommel brecht at blender.org
Wed Jul 15 21:19:43 CEST 2009


Revision: 21604
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21604
Author:   blendix
Date:     2009-07-15 21:19:43 +0200 (Wed, 15 Jul 2009)

Log Message:
-----------
2.5: User Preferences

* Added basic infrastructure to layout user preferences. The
  intention is that you open a user preferences space in place
  of the buttons space, and have panels there.
* The existing sections don't have to be followed, it's easy
  to create different ones, just change the user_pref_sections
  enum in RNA.
* This will get separated from the info header later.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/space_info.py
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c
    branches/blender2.5/blender/source/blender/editors/interface/resources.c
    branches/blender2.5/blender/source/blender/editors/screen/area.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
    branches/blender2.5/blender/source/blender/editors/space_info/space_info.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_context.c

Modified: branches/blender2.5/blender/release/ui/space_info.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_info.py	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/release/ui/space_info.py	2009-07-15 19:19:43 UTC (rev 21604)
@@ -108,6 +108,31 @@
 		layout = self.layout
 		layout.itemL(text="Nothing yet")
 
+class INFO_PT_tabs(bpy.types.Panel):
+	__space_type__ = "USER_PREFERENCES"
+	__no_header__ = True
+
+	def draw(self, context):
+		layout = self.layout
+		userpref = context.user_preferences
+
+		layout.itemR(userpref, "active_section")
+
+class INFO_PT_view(bpy.types.Panel):
+	__space_type__ = "USER_PREFERENCES"
+	__label__ = "View"
+
+	def poll(self, context):
+		userpref = context.user_preferences
+		return (userpref.active_section == 'VIEW_CONTROLS')
+
+	def draw(self, context):
+		layout = self.layout
+		userpref = context.user_preferences
+		view = userpref.view
+
+		layout.itemR(view, "show_view_name")
+
 bpy.types.register(INFO_HT_header)
 bpy.types.register(INFO_MT_file)
 bpy.types.register(INFO_MT_file_external_data)
@@ -116,4 +141,6 @@
 bpy.types.register(INFO_MT_game)
 bpy.types.register(INFO_MT_render)
 bpy.types.register(INFO_MT_help)
+bpy.types.register(INFO_PT_tabs)
+bpy.types.register(INFO_PT_view)
 

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -9191,6 +9191,9 @@
 		}
 	}
 
+	if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 1)) {
+	}
+
 	/* TODO: should be moved into one of the version blocks once this branch moves to trunk and we can
 	   bump the version (or sub-version.) */
 	{

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_panel.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -104,6 +104,8 @@
 		SpaceButs *sbuts= sa->spacedata.first;
 		return sbuts->align;
 	}
+	else if(sa->spacetype==SPACE_INFO && ar->regiontype == RGN_TYPE_WINDOW)
+		return BUT_VERTICAL;
 	else if(sa->spacetype==SPACE_FILE && ar->regiontype == RGN_TYPE_CHANNELS)
 		return BUT_VERTICAL;
 	else if(ELEM3(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS))

Modified: branches/blender2.5/blender/source/blender/editors/interface/resources.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/resources.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/editors/interface/resources.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -581,7 +581,7 @@
 	
 	/* space info */
 	btheme->tinfo= btheme->tv3d;
-	SETCOL(btheme->tinfo.back, 	153, 153, 153, 255);
+	SETCOLF(btheme->tinfo.back, 	0.45, 0.45, 0.45, 1.0);
 
 	/* space sound */
 	btheme->tsnd= btheme->tv3d;
@@ -1231,6 +1231,8 @@
 				btheme->tlogic= btheme->tv3d;
 				SETCOL(btheme->tlogic.back, 100, 100, 100, 255);
 			}
+
+			SETCOLF(btheme->tinfo.back, 0.45, 0.45, 0.45, 1.0);
 		}
 	}
 	

Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -1254,8 +1254,10 @@
 {
 	ListBase *keymap;
 	
-	// XXX quick hack for files saved with 2.5 already (i.e. the builtin defaults file)
+	// XXX quick hacks for files saved with 2.5 already (i.e. the builtin defaults file)
 	ar->v2d.scroll |= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM); 
+	if(!(ar->v2d.align & V2D_ALIGN_NO_POS_Y))
+		ar->v2d.flag &= ~V2D_IS_INITIALISED;
 	
 	UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_PANELS_UI, ar->winx, ar->winy);
 

Modified: branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -94,31 +94,6 @@
 	BLI_addtail(&sbuts->regionbase, ar);
 	ar->regiontype= RGN_TYPE_WINDOW;
 	
-#if 0 // disabled, as this currently draws badly in new system
-	/* buts space goes from (0,0) to (1280, 228) */
-	ar->v2d.tot.xmin= 0.0f;
-	ar->v2d.tot.ymin= 0.0f;
-	ar->v2d.tot.xmax= 1279.0f;
-	ar->v2d.tot.ymax= 228.0f;
-	
-	ar->v2d.cur= sbuts->v2d.tot;
-	
-	ar->v2d.min[0]= 256.0f;
-	ar->v2d.min[1]= 42.0f;
-	
-	ar->v2d.max[0]= 2048.0f;
-	ar->v2d.max[1]= 450.0f;
-	
-	ar->v2d.minzoom= 0.5f;
-	ar->v2d.maxzoom= 1.21f;
-	
-	ar->v2d.scroll= 0;  // TODO: will we need scrollbars?
-	ar->v2d.align= V2D_ALIGN_NO_NEG_X|V2D_ALIGN_NO_NEG_Y;
-	ar->v2d.keepzoom= V2D_KEEPZOOM|V2D_KEEPASPECT;
-	ar->v2d.keeptot= V2D_KEEPTOT_BOUNDS;
-#endif	
-	
-	
 	return (SpaceLink *)sbuts;
 }
 
@@ -164,13 +139,7 @@
 /* add handlers, stuff you only do once or on area/region changes */
 static void buttons_main_area_init(wmWindowManager *wm, ARegion *ar)
 {
-	ListBase *keymap;
-
 	ED_region_panels_init(wm, ar);
-	
-	/* own keymap */
-	keymap= WM_keymap_listbase(wm, "Buttons", SPACE_BUTS, 0);	/* XXX weak? */
-	WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
 }
 
 static void buttons_main_area_draw(const bContext *C, ARegion *ar)

Modified: branches/blender2.5/blender/source/blender/editors/space_info/space_info.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_info/space_info.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/editors/space_info/space_info.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -84,9 +84,6 @@
 	BLI_addtail(&sinfo->regionbase, ar);
 	ar->regiontype= RGN_TYPE_WINDOW;
 	
-	/* channel list region XXX */
-
-	
 	return (SpaceLink *)sinfo;
 }
 
@@ -118,35 +115,12 @@
 /* add handlers, stuff you only do once or on area/region changes */
 static void info_main_area_init(wmWindowManager *wm, ARegion *ar)
 {
-	ListBase *keymap;
-	
-	UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
-	
-	/* own keymap */
-	keymap= WM_keymap_listbase(wm, "info", SPACE_INFO, 0);	/* XXX weak? */
-	WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+	ED_region_panels_init(wm, ar);
 }
 
 static void info_main_area_draw(const bContext *C, ARegion *ar)
 {
-	/* draw entirely, view changes should be handled here */
-	// SpaceInfo *sinfo= (SpaceInfo*)CTX_wm_space_data(C);
-	View2D *v2d= &ar->v2d;
-	float col[3];
-
-	/* clear and setup matrix */
-	UI_GetThemeColor3fv(TH_BACK, col);
-	glClearColor(col[0], col[1], col[2], 0.0);
-	glClear(GL_COLOR_BUFFER_BIT);
-	
-	UI_view2d_view_ortho(C, v2d);
-		
-	/* data... */
-
-	/* reset view matrix */
-	UI_view2d_view_restore(C);
-	
-	/* scrollers? */
+	ED_region_panels(C, ar, 1, NULL);
 }
 
 void info_operatortypes(void)
@@ -217,7 +191,7 @@
 	art->init= info_main_area_init;
 	art->draw= info_main_area_draw;
 	art->listener= info_main_area_listener;
-	art->keymapflag= ED_KEYMAP_VIEW2D;
+	art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
 
 	BLI_addhead(&st->regiontypes, art);
 	

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_context.c	2009-07-15 19:13:47 UTC (rev 21603)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_context.c	2009-07-15 19:19:43 UTC (rev 21604)
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 
 #include "DNA_ID.h"
+#include "DNA_userdef_types.h"
 
 #include "RNA_access.h"
 #include "RNA_define.h"
@@ -102,6 +103,13 @@
 	return rna_pointer_inherit_refine(ptr, &RNA_ToolSettings, CTX_data_tool_settings(C));
 }
 
+static PointerRNA rna_Context_user_preferences_get(PointerRNA *ptr)
+{
+	PointerRNA newptr;
+	RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &newptr);
+	return newptr;
+}
+
 #else
 
 void RNA_def_context(BlenderRNA *brna)
@@ -165,6 +173,10 @@
 	RNA_def_property_struct_type(prop, "ToolSettings");
 	RNA_def_property_pointer_funcs(prop, "rna_Context_tool_settings_get", NULL, NULL);
 
+	prop= RNA_def_property(srna, "user_preferences", PROP_POINTER, PROP_NONE);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_struct_type(prop, "UserPreferences");
+	RNA_def_property_pointer_funcs(prop, "rna_Context_user_preferences_get", NULL, NULL);
 }
 
 #endif





More information about the Bf-blender-cvs mailing list