User Prefs: add new flag for app-template options
authorCampbell Barton <ideasman42@gmail.com>
Fri, 12 Jan 2018 01:30:58 +0000 (12:30 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 12 Jan 2018 01:45:56 +0000 (12:45 +1100)
For experimental options, outside the scope of typical preferences.

While templates are developed we might want to make changes
to behavior which aren't fully compatible with typical work-flows.

Instead of mixing these options in with current preferences
expose separately (we could even force disable them when templates
aren't int use)

release/scripts/startup/bl_ui/space_userpref.py
source/blender/blenkernel/intern/blender.c
source/blender/editors/interface/resources.c
source/blender/editors/screen/area.c
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesrna/intern/rna_userdef.c

index 3d44c624a7b87c0f7b9a74cd0aee65c1dc5653f2..3516085602e95497f4c81071520dd068e1ab2410 100644 (file)
@@ -313,13 +313,14 @@ class USERPREF_PT_interface(Panel):
         sub.prop(view, "pie_menu_threshold")
         sub.prop(view, "pie_menu_confirm")
         col.separator()
-        col.separator()
+
+        col.prop(view, "show_splash")
         col.separator()
 
-        col.label(text="Screen:")
+        col.label(text="App Template:")
+        col.label(text="Options intended for use with app-templates only.")
         col.prop(view, "show_layout_ui")
 
-        col.prop(view, "show_splash")
 
 
 class USERPREF_PT_edit(Panel):
index bc47cfde143f7c176251ff0490846e25f55d68c7..f8a3f134bfbdcfdfc259c8b24b184371c3cee27e 100644 (file)
@@ -280,7 +280,10 @@ void BKE_blender_userdef_app_template_data_swap(UserDef *userdef_a, UserDef *use
        DATA_SWAP(font_path_ui_mono);
        DATA_SWAP(keyconfigstr);
 
-       FLAG_SWAP(uiflag, int, USER_LOCK_UI_LAYOUT);
+       DATA_SWAP(app_flag);
+
+       /* We could add others. */
+       FLAG_SWAP(uiflag, int, USER_QUIT_PROMPT);
 
 #undef DATA_SWAP
 #undef LIST_SWAP
index 09b0906f1345ea950a4f5da94d3248296f4a8a39..d12e7cc036b658a9ee405852fbad99597dd069a8 100644 (file)
@@ -2765,7 +2765,7 @@ void init_userdef_do_versions(void)
                    USER_FLAG_DEPRECATED_6 | USER_FLAG_DEPRECATED_7 |
                    USER_FLAG_DEPRECATED_9 | USER_FLAG_DEPRECATED_10);
                U.uiflag &= ~(
-                   USER_LOCK_UI_LAYOUT);
+                   USER_UIFLAG_DEPRECATED_7);
                U.transopts &= ~(
                    USER_TR_DEPRECATED_2 | USER_TR_DEPRECATED_3 | USER_TR_DEPRECATED_4 |
                    USER_TR_DEPRECATED_6 | USER_TR_DEPRECATED_7);
index e8dc220667a4d0c969ad7ea3b48c09609e4e2b32..fc0922c7b7cbd731270905bd337f6134edb6c64c 100644 (file)
@@ -666,7 +666,7 @@ static void area_azone_initialize(wmWindow *win, bScreen *screen, ScrArea *sa)
                return;
        }
 
-       if (U.uiflag & USER_LOCK_UI_LAYOUT) {
+       if (U.app_flag & USER_APP_LOCK_UI_LAYOUT) {
                return;
        }
 
index 93fab4da5664367487875cc7558fab668d68bcff..3d3e9d1704b6a843b57c8b30edc6d01ee1ab856e 100644 (file)
@@ -461,7 +461,10 @@ typedef struct UserDef {
        short wheellinescroll;
        int uiflag;   /* eUserpref_UI_Flag */
        int uiflag2;  /* eUserpref_UI_Flag2 */
-       int language;
+       /* Experimental flag for app-templates to make changes to behavior
+        * which are outside the scope of typical preferences. */
+       short app_flag;
+       short language;
        short userpref, viewzoom;
        
        int mixbufsize;
@@ -670,7 +673,7 @@ typedef enum eUserpref_UI_Flag {
        USER_LOCK_CURSOR_ADJUST = (1 << 6),
        /* Avoid accidentally adjusting the layout
         * (exact behavior may change based on whats considered reasonable to lock down). */
-       USER_LOCK_UI_LAYOUT     = (1 << 7),
+       USER_UIFLAG_DEPRECATED_7 = (1 << 7),
        USER_ALLWINCODECS               = (1 << 8),
        USER_MENUOPENAUTO               = (1 << 9),
        USER_ZBUF_CURSOR                = (1 << 10),
@@ -703,7 +706,12 @@ typedef enum eUserpref_UI_Flag2 {
        USER_REGION_OVERLAP                     = (1 << 1),
        USER_TRACKPAD_NATURAL           = (1 << 2),
 } eUserpref_UI_Flag2;
-       
+
+/* UserDef.app_flag */
+typedef enum eUserpref_APP_Flag {
+       USER_APP_LOCK_UI_LAYOUT = (1 << 0),
+} eUserpref_APP_Flag;
+
 /* Auto-Keying mode.
  * UserDef.autokey_mode */
 typedef enum eAutokey_Mode {
index 3aed3a1edb1870640cdd9fa0ece4aea35571c005..1258febab61dd9891be828db74a8289d9b363f68 100644 (file)
@@ -3395,17 +3395,19 @@ static void rna_def_userdef_view(BlenderRNA *brna)
        RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag", USER_SPLASH_DISABLE);
        RNA_def_property_ui_text(prop, "Show Splash", "Display splash screen on startup");
 
-       prop = RNA_def_property(srna, "show_layout_ui", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag", USER_LOCK_UI_LAYOUT);
-       RNA_def_property_ui_text(prop, "Show Layout Widgets", "Show screen layout editing UI");
-       RNA_def_property_update(prop, 0, "rna_userdef_update_ui");
 
        prop = RNA_def_property(srna, "show_playback_fps", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_SHOW_FPS);
        RNA_def_property_ui_text(prop, "Show Playback FPS",
                                 "Show the frames per second screen refresh rate, while animation is played back");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
-       
+
+       /* app flags (use for app-templates) */
+       prop = RNA_def_property(srna, "show_layout_ui", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "app_flag", USER_APP_LOCK_UI_LAYOUT);
+       RNA_def_property_ui_text(prop, "Show Layout Widgets", "Show screen layout editing UI");
+       RNA_def_property_update(prop, 0, "rna_userdef_update_ui");
+
        /* menus */
        prop = RNA_def_property(srna, "use_mouse_over_open", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_MENUOPENAUTO);