UI: Initial User-Preferences redesign
authorJulian Eisel <eiseljulian@gmail.com>
Sun, 25 Nov 2018 15:21:35 +0000 (16:21 +0100)
committerJulian Eisel <eiseljulian@gmail.com>
Sun, 25 Nov 2018 16:08:58 +0000 (17:08 +0100)
Implements the first changes for T54115:

* Rename "User Preferences" window to "Settings" in the UI.
  We'll likely put workspace settings in there, separate from the global
  user settings. System settings should become separate from user
  settings in future to allow settings for specific hardware.
* Add sidebar region for navigation (scrolls independently).
  Addresses space problems, so we can add more categories as needed now.
* Increase size of Settings window to compensate new navigation bar.
* Group sections into User Preferences and System.
  Icons for section groups by Andrzej Ambroz. Thanks!
* Bumps subversion for file compatibility.

Screenshot: https://developer.blender.org/F5715337

I also added categories for future work, but commented them out.
We may also want to redesign contents of each section now.

Reviewers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D3088
Design Task: https://developer.blender.org/T54115

16 files changed:
release/datafiles/userdef/userdef_default_theme.c
release/scripts/presets/keyconfig/keymap_data/blender_default.py
release/scripts/startup/bl_ui/space_topbar.py
release/scripts/startup/bl_ui/space_userpref.py
source/blender/blenkernel/BKE_blender_version.h
source/blender/blenkernel/BKE_screen.h
source/blender/blenkernel/intern/screen.c
source/blender/blenloader/intern/versioning_280.c
source/blender/editors/include/UI_interface.h
source/blender/editors/interface/interface_layout.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/space_userpref/space_userpref.c
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesrna/intern/rna_userdef.c
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_window.c

index b7b9c1aa9b80a6ba0723f454c618899435fdb9c7..b804109c7433ac2199a533ccc633b351020a1d89 100644 (file)
@@ -819,6 +819,7 @@ const bTheme U_theme_default = {
                .button_title = RGBA(0xffffffff),
                .button_text = RGBA(0xe5e5e5ff),
                .button_text_hi = RGBA(0xffffffff),
+               .navigation_bar = RGBA(0x373737ff),
                .panelcolors = {
                        .header = RGBA(0x42424200),
                        .back = RGBA(0x333333b3),
index 00fd59820e0eb28195229d03c51c3c1a098ec9b6..182dfd0870bdd589cf0c7c018bd9fdb85e89d9aa 100644 (file)
@@ -404,7 +404,7 @@ def km_screen(params):
             ("screen.region_flip", {"type": 'F5', "value": 'PRESS'}, None),
             ("screen.redo_last", {"type": 'F6', "value": 'PRESS'}, None),
             ("script.reload", {"type": 'F8', "value": 'PRESS'}, None),
-            ("screen.userpref_show", {"type": 'U', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+            ("screen.settings_show", {"type": 'U', "value": 'PRESS', "ctrl": True, "alt": True}, None),
         ])
 
     if params.apple:
@@ -413,7 +413,7 @@ def km_screen(params):
             ("ed.undo", {"type": 'Z', "value": 'PRESS', "oskey": True}, None),
             ("ed.redo", {"type": 'Z', "value": 'PRESS', "shift": True, "oskey": True}, None),
             ("ed.undo_history", {"type": 'Z', "value": 'PRESS', "alt": True, "oskey": True}, None),
-            ("screen.userpref_show", {"type": 'COMMA', "value": 'PRESS', "oskey": True}, None),
+            ("screen.settings_show", {"type": 'COMMA', "value": 'PRESS', "oskey": True}, None),
         ])
 
     return keymap
index 8b9c47839e99496956cb4ba0bfa5eedb389be118..4fc2b12e9509a22ba8b51f08d0fe1a7dd05b6dd3 100644 (file)
@@ -828,7 +828,7 @@ class TOPBAR_MT_edit(Menu):
 
         layout.separator()
 
-        layout.operator("screen.userpref_show", text="User Preferences...", icon='PREFERENCES')
+        layout.operator("screen.settings_show", text="Settings...", icon='PREFERENCES')
 
 
 class TOPBAR_MT_window(Menu):
@@ -981,7 +981,7 @@ class TOPBAR_MT_window_specials(Menu):
 
         layout.separator()
 
-        layout.operator("screen.userpref_show", text="User Preferences...", icon='PREFERENCES')
+        layout.operator("screen.settings_show", text="Settings...", icon='PREFERENCES')
 
 
 class TOPBAR_MT_workspace_menu(Menu):
index 954326f88993778243c3eb0c8e11f94507891f80..22fb5af5c58f07649085f5da5f2b07aa0cbf088e 100644 (file)
@@ -59,10 +59,10 @@ class USERPREF_HT_header(Header):
         layout.operator("wm.save_userpref")
 
 
-class USERPREF_PT_tabs(Panel):
+class USERPREF_PT_navigation(Panel):
     bl_label = ""
     bl_space_type = 'USER_PREFERENCES'
-    bl_region_type = 'WINDOW'
+    bl_region_type = 'NAVIGATION_BAR'
     bl_options = {'HIDE_HEADER'}
 
     def draw(self, context):
@@ -70,7 +70,11 @@ class USERPREF_PT_tabs(Panel):
 
         userpref = context.user_preferences
 
-        layout.row().prop(userpref, "active_section", expand=True)
+        col = layout.column()
+
+        col.scale_x = 1.3
+        col.scale_y = 1.3
+        col.prop(userpref, "active_section", expand=True)
 
 
 class USERPREF_PT_interface(Panel):
@@ -331,16 +335,16 @@ class USERPREF_PT_edit(Panel):
         col.prop(edit, "use_duplicate_particle", text="Particle")
 
 
-class USERPREF_PT_system(Panel):
+class USERPREF_PT_system_general(Panel):
     bl_space_type = 'USER_PREFERENCES'
-    bl_label = "System"
+    bl_label = "System General"
     bl_region_type = 'WINDOW'
     bl_options = {'HIDE_HEADER'}
 
     @classmethod
     def poll(cls, context):
         userpref = context.user_preferences
-        return (userpref.active_section == 'SYSTEM')
+        return (userpref.active_section == 'SYSTEM_GENERAL')
 
     def draw(self, context):
         import sys
@@ -880,7 +884,7 @@ class USERPREF_PT_file(Panel):
     @classmethod
     def poll(cls, context):
         userpref = context.user_preferences
-        return (userpref.active_section == 'FILES')
+        return (userpref.active_section == 'SYSTEM_FILES')
 
     def draw(self, context):
         layout = self.layout
@@ -1572,10 +1576,10 @@ class USERPREF_PT_studiolight_specular(Panel, StudioLightPanelMixin):
 
 classes = (
     USERPREF_HT_header,
-    USERPREF_PT_tabs,
+    USERPREF_PT_navigation,
     USERPREF_PT_interface,
     USERPREF_PT_edit,
-    USERPREF_PT_system,
+    USERPREF_PT_system_general,
     USERPREF_MT_interface_theme_presets,
     USERPREF_PT_theme,
     USERPREF_PT_file,
index 32b9508a6798243b67f359369295ad2db7350161..b34dc55ba442689238daf4c484b57d8014f74c33 100644 (file)
@@ -28,7 +28,7 @@
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION         280
-#define BLENDER_SUBVERSION      33
+#define BLENDER_SUBVERSION      34
 /* Several breakages with 280, e.g. collections vs layers */
 #define BLENDER_MINVERSION      280
 #define BLENDER_MINSUBVERSION   0
index 0d766e83299deb756f90b3cb8bb289dc9aa69e24..75d2ed0d0bc77b0b45fc15f2743a8bfbf04148db 100644 (file)
@@ -319,6 +319,10 @@ void BKE_spacedata_freelist(ListBase *lb);
 void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2);
 void BKE_spacedata_draw_locks(int set);
 
+struct ARegion *BKE_spacedata_find_region_type(
+        const struct SpaceLink *slink, const struct ScrArea *sa,
+        int region_type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
+
 void BKE_spacedata_callback_id_remap_set(
         void (*func)(struct ScrArea *sa, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id));
 void BKE_spacedata_id_unref(struct ScrArea *sa, struct SpaceLink *sl, struct ID *id);
@@ -332,7 +336,7 @@ void            BKE_screen_area_free(struct ScrArea *sa);
 void BKE_region_callback_free_gizmomap_set(void (*callback)(struct wmGizmoMap *));
 void BKE_region_callback_refresh_tag_gizmomap_set(void (*callback)(struct wmGizmoMap *));
 
-struct ARegion *BKE_area_find_region_type(struct ScrArea *sa, int type);
+struct ARegion *BKE_area_find_region_type(const struct ScrArea *sa, int type);
 struct ARegion *BKE_area_find_region_active_win(struct ScrArea *sa);
 struct ARegion *BKE_area_find_region_xy(struct ScrArea *sa, const int regiontype, int x, int y);
 struct ScrArea *BKE_screen_find_area_from_space(struct bScreen *sc, struct SpaceLink *sl) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 2);
index 0c93281bf848ecfdaa1dc83ed9d6d873f568c2da..e23291d42d4b09a3a9e21acd01e6e22adc901f88 100644 (file)
@@ -309,6 +309,30 @@ void BKE_spacedata_draw_locks(int set)
        }
 }
 
+/**
+ * Version of #BKE_area_find_region_type that also works if \a slink is not the active space of \a sa.
+ */
+ARegion *BKE_spacedata_find_region_type(const SpaceLink *slink, const ScrArea *sa, int region_type)
+{
+       const bool is_slink_active = slink == sa->spacedata.first;
+       const ListBase *regionbase = (is_slink_active) ?
+                                  &sa->regionbase : &slink->regionbase;
+       ARegion *ar = NULL;
+
+       BLI_assert(BLI_findindex(&sa->spacedata, slink) != -1);
+       for (ar = regionbase->first; ar; ar = ar->next) {
+               if (ar->regiontype == region_type) {
+                       break;
+               }
+       }
+
+       /* Should really unit test this instead. */
+       BLI_assert(!is_slink_active || ar == BKE_area_find_region_type(sa, region_type));
+
+       return ar;
+}
+
+
 static void (*spacedata_id_remap_cb)(struct ScrArea *sa, struct SpaceLink *sl, ID *old_id, ID *new_id) = NULL;
 
 void BKE_spacedata_callback_id_remap_set(void (*func)(ScrArea *sa, SpaceLink *sl, ID *, ID *))
@@ -644,17 +668,21 @@ void BKE_screen_remove_unused_scrverts(bScreen *sc)
 
 /* ***************** Utilities ********************** */
 
-/* Find a region of the specified type from the given area */
-ARegion *BKE_area_find_region_type(ScrArea *sa, int type)
+/**
+ * Find a region of type \a region_type in the currently active space of \a sa.
+ *
+ * \note This does _not_ work if the region to look up is not in the active
+ *       space. Use #BKE_spacedata_find_region_type if that may be the case.
+ */
+ARegion *BKE_area_find_region_type(const ScrArea *sa, int region_type)
 {
        if (sa) {
-               ARegion *ar;
-
-               for (ar = sa->regionbase.first; ar; ar = ar->next) {
-                       if (ar->regiontype == type)
+               for (ARegion *ar = sa->regionbase.first; ar; ar = ar->next) {
+                       if (ar->regiontype == region_type)
                                return ar;
                }
        }
+
        return NULL;
 }
 
index 2cf00bfe2c193d32aeba67e88e3fe9074e68e88b..a844a2dc91b5dcac008e1cd275b4095e1de299be 100644 (file)
@@ -2428,6 +2428,29 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
                }
        }
 
+       if (!MAIN_VERSION_ATLEAST(bmain, 280, 34)) {
+               for (bScreen *screen = bmain->screen.first; screen; screen = screen->id.next) {
+                       for (ScrArea *area = screen->areabase.first; area; area = area->next) {
+                               for (SpaceLink *slink = area->spacedata.first; slink; slink = slink->next) {
+                                       if (slink->spacetype == SPACE_USERPREF) {
+                                               ARegion *navigation_region = BKE_spacedata_find_region_type(slink, area, RGN_TYPE_NAV_BAR);
+
+                                               if (!navigation_region) {
+                                                       ListBase *regionbase = (slink == area->spacedata.first) ?
+                                                                                  &area->regionbase : &slink->regionbase;
+
+                                                       navigation_region = MEM_callocN(sizeof(ARegion), "userpref navigation-region do_versions");
+
+                                                       BLI_addhead(regionbase, navigation_region); /* order matters, addhead not addtail! */
+                                                       navigation_region->regiontype = RGN_TYPE_NAV_BAR;
+                                                       navigation_region->alignment = RGN_ALIGN_LEFT;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
        {
                /* Versioning code until next subversion bump goes here. */
        }
index dd0070b3b37b6358be39114738d9e75c2c28ec38..dac1ca95effe6152822a4aac7ba010520dba1e88 100644 (file)
@@ -200,6 +200,7 @@ enum {
 
 #define UI_PANEL_WIDTH          340
 #define UI_COMPACT_PANEL_WIDTH  160
+#define UI_NAVIGATION_REGION_WIDTH UI_COMPACT_PANEL_WIDTH
 
 #define UI_PANEL_CATEGORY_MARGIN_WIDTH (U.widget_unit * 1.0f)
 
index 306fa89a0624bb85a0817acb448ec78071e9c640..8a27fd55d37b57fc56c12f9e7e4ccc3f08b381b9 100644 (file)
@@ -655,6 +655,7 @@ static void ui_item_enum_expand_exec(
        uiLayout *layout_radial = NULL;
        const EnumPropertyItem *item, *item_array;
        const char *name;
+       char group_name[UI_MAX_NAME_STR];
        int itemw, icon, value;
        bool free;
        bool radial = (layout->root->type == UI_LAYOUT_PIEMENU);
@@ -687,10 +688,22 @@ static void ui_item_enum_expand_exec(
        }
 
        for (item = item_array; item->identifier; item++) {
+               const bool is_first = item == item_array;
+
                if (!item->identifier[0]) {
                        const EnumPropertyItem *next_item = item + 1;
+
+                       /* Separate items, potentially with a label. */
                        if (next_item->identifier) {
-                               if (radial && layout_radial) {
+                               /* Item without identifier but with name: Add group label for the following items. */
+                               if (item->name) {
+                                       if (!is_first) {
+                                               uiItemS(block->curlayout);
+                                       }
+                                       BLI_snprintf(group_name, sizeof(group_name), "%s:", item->name);
+                                       uiItemL(block->curlayout, group_name, item->icon);
+                               }
+                               else if (radial && layout_radial) {
                                        uiItemS(layout_radial);
                                }
                                else {
index 6a9f1e13aeab17663b5c9ce421116862a79187d8..2305ce8f5fe4a4dcba858f33a650d73752e0f181 100644 (file)
@@ -4332,9 +4332,9 @@ static void SCREEN_OT_back_to_previous(struct wmOperatorType *ot)
 /** \name Show User Preferences Operator
  * \{ */
 
-static int userpref_show_invoke(bContext *C, wmOperator *op, const wmEvent *event)
+static int settings_show_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 {
-       int sizex = 800 * UI_DPI_FAC;
+       int sizex = (800 + UI_NAVIGATION_REGION_WIDTH) * UI_DPI_FAC;
        int sizey = 500 * UI_DPI_FAC;
 
        /* changes context! */
@@ -4348,15 +4348,15 @@ static int userpref_show_invoke(bContext *C, wmOperator *op, const wmEvent *even
 }
 
 
-static void SCREEN_OT_userpref_show(struct wmOperatorType *ot)
+static void SCREEN_OT_settings_show(struct wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name = "Show User Preferences";
-       ot->description = "Show user preferences";
-       ot->idname = "SCREEN_OT_userpref_show";
+       ot->name = "Show Blender Settings";
+       ot->description = "Edit user preferences, workspaces and system settings";
+       ot->idname = "SCREEN_OT_settings_show";
 
        /* api callbacks */
-       ot->invoke = userpref_show_invoke;
+       ot->invoke = settings_show_invoke;
        ot->poll = ED_operator_screenactive;
 }
 
@@ -4814,7 +4814,7 @@ void ED_operatortypes_screen(void)
        WM_operatortype_append(SCREEN_OT_back_to_previous);
        WM_operatortype_append(SCREEN_OT_spacedata_cleanup);
        WM_operatortype_append(SCREEN_OT_screenshot);
-       WM_operatortype_append(SCREEN_OT_userpref_show);
+       WM_operatortype_append(SCREEN_OT_settings_show);
        WM_operatortype_append(SCREEN_OT_drivers_editor_show);
        WM_operatortype_append(SCREEN_OT_region_blend);
        WM_operatortype_append(SCREEN_OT_space_context_cycle);
index 06c6e612f13f4fb3713bee7ac9dde29ca6a36eac..87da461f269dab61d1e2a474541c9c3cf14a7931 100644 (file)
@@ -47,6 +47,8 @@
 #include "WM_api.h"
 #include "WM_types.h"
 
+#include "UI_interface.h"
+
 
 
 /* ******************** default callbacks for userpref space ***************** */
@@ -59,6 +61,13 @@ static SpaceLink *userpref_new(const ScrArea *UNUSED(area), const Scene *UNUSED(
        spref = MEM_callocN(sizeof(SpaceUserPref), "inituserpref");
        spref->spacetype = SPACE_USERPREF;
 
+       /* navigation region */
+       ar = MEM_callocN(sizeof(ARegion), "navigation region for userpref");
+
+       BLI_addtail(&spref->regionbase, ar);
+       ar->regiontype = RGN_TYPE_NAV_BAR;
+       ar->alignment = RGN_ALIGN_LEFT;
+
        /* header */
        ar = MEM_callocN(sizeof(ARegion), "header for userpref");
 
@@ -136,6 +145,19 @@ static void userpref_header_region_draw(const bContext *C, ARegion *ar)
        ED_region_header(C, ar);
 }
 
+/* add handlers, stuff you only do once or on area/region changes */
+static void userpref_navigation_region_init(wmWindowManager *wm, ARegion *ar)
+{
+       ar->v2d.scroll = V2D_SCROLL_RIGHT | V2D_SCROLL_VERTICAL_HIDE;
+
+       ED_region_panels_init(wm, ar);
+}
+
+static void userpref_navigation_region_draw(const bContext *C, ARegion *ar)
+{
+       ED_region_panels(C, ar);
+}
+
 static void userpref_main_region_listener(
         wmWindow *UNUSED(win), ScrArea *UNUSED(sa), ARegion *UNUSED(ar),
         wmNotifier *UNUSED(wmn), const Scene *UNUSED(scene))
@@ -156,6 +178,13 @@ static void userpref_header_listener(
 #endif
 }
 
+static void userpref_navigation_region_listener(
+        wmWindow *UNUSED(win), ScrArea *UNUSED(sa), ARegion *UNUSED(ar),
+        wmNotifier *UNUSED(wmn), const Scene *UNUSED(scene))
+{
+       /* context changes */
+}
+
 /* only called once, from space/spacetypes.c */
 void ED_spacetype_userpref(void)
 {
@@ -193,6 +222,17 @@ void ED_spacetype_userpref(void)
 
        BLI_addhead(&st->regiontypes, art);
 
+       /* regions: navigation window */
+       art = MEM_callocN(sizeof(ARegionType), "spacetype userpref region");
+       art->regionid = RGN_TYPE_NAV_BAR;
+       art->prefsizex = UI_NAVIGATION_REGION_WIDTH;
+       art->init = userpref_navigation_region_init;
+       art->draw = userpref_navigation_region_draw;
+       art->listener = userpref_navigation_region_listener;
+       art->keymapflag = ED_KEYMAP_UI;
+
+       BLI_addhead(&st->regiontypes, art);
+
 
        BKE_spacetype_register(st);
 }
index c9d163516356e7b72039f5a2694b32638e168251..0eed17cf1ffe262c53b9a1bf96ce4d1952596f42 100644 (file)
@@ -677,16 +677,29 @@ extern UserDef U; /* from blenkernel blender.c */
 
 /* ***************** USERDEF ****************** */
 
+/* Toggles for unfinished 2.8 UserPref design. */
+//#define WITH_USERDEF_WORKSPACES
+//#define WITH_USERDEF_SYSTEM_SPLIT
+
 /* UserDef.userpref (UI active_section) */
 typedef enum eUserPref_Section {
-       USER_SECTION_INTERFACE  = 0,
-       USER_SECTION_EDIT               = 1,
-       USER_SECTION_FILE               = 2,
-       USER_SECTION_SYSTEM             = 3,
-       USER_SECTION_THEME              = 4,
-       USER_SECTION_INPUT              = 5,
-       USER_SECTION_ADDONS     = 6,
-       USER_SECTION_LIGHT      = 7,
+       USER_SECTION_INTERFACE         = 0,
+       USER_SECTION_EDIT              = 1,
+       USER_SECTION_SYSTEM_FILES      = 2,
+       USER_SECTION_SYSTEM_GENERAL    = 3,
+       USER_SECTION_THEME             = 4,
+       USER_SECTION_INPUT             = 5,
+       USER_SECTION_ADDONS            = 6,
+       USER_SECTION_LIGHT             = 7,
+#ifdef WITH_USERDEF_WORKSPACES
+       USER_SECTION_WORKSPACE_CONFIG  = 8,
+       USER_SECTION_WORKSPACE_ADDONS  = 9,
+       USER_SECTION_WORKSPACE_KEYMAPS = 10,
+#endif
+#ifdef WITH_USERDEF_SYSTEM_SPLIT
+       USER_SECTION_SYSTEM_DISPLAY    = 11,
+       USER_SECTION_SYSTEM_DEVICES    = 12,
+#endif
 } eUserPref_Section;
 
 /* UserDef.userpref_flag (State of the user preferences UI). */
index 03f86eba601f321763f655d51745a928bddc4d68..6ba0d4d3a7c9537acb66ef1c46caff9de17419d0 100644 (file)
@@ -4925,14 +4925,26 @@ void RNA_def_userdef(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static const EnumPropertyItem user_pref_sections[] = {
+               {0, "", ICON_USER, "User Preferences", ""},
                {USER_SECTION_INTERFACE, "INTERFACE", 0, "Interface", ""},
                {USER_SECTION_EDIT, "EDITING", 0, "Editing", ""},
                {USER_SECTION_INPUT, "INPUT", 0, "Input", ""},
                {USER_SECTION_ADDONS, "ADDONS", 0, "Add-ons", ""},
                {USER_SECTION_THEME, "THEMES", 0, "Themes", ""},
                {USER_SECTION_LIGHT, "LIGHTS", 0, "Lights", ""},
-               {USER_SECTION_FILE, "FILES", 0, "File", ""},
-               {USER_SECTION_SYSTEM, "SYSTEM", 0, "System", ""},
+#ifdef WITH_USERDEF_WORKSPACES
+               {0, "", ICON_WORKSPACE, "Workspaces", ""},
+               {USER_SECTION_WORKSPACE_CONFIG, "WORKSPACE_CONFIG", 0, "Configuration File", ""},
+               {USER_SECTION_WORKSPACE_ADDONS, "WORKSPACE_ADDONS", 0, "Add-on Overrides", ""},
+               {USER_SECTION_WORKSPACE_KEYMAPS, "WORKSPACE_KEYMAPS", 0, "Keymap Overrides", ""},
+#endif
+               {0, "", ICON_SYSTEM, "System", ""},
+               {USER_SECTION_SYSTEM_GENERAL, "SYSTEM_GENERAL", 0, "General", ""},
+               {USER_SECTION_SYSTEM_FILES,   "SYSTEM_FILES",   0, "Files",   ""},
+#ifdef WITH_USERDEF_SYSTEM_SPLIT
+               {USER_SECTION_SYSTEM_DISPLAY, "SYSTEM_DISPLAY", 0, "Display", ""},
+               {USER_SECTION_SYSTEM_DEVICES, "SYSTEM_DEVICES", 0, "Devices", ""},
+#endif
                {0, NULL, 0, NULL, NULL}
        };
 
index d90ad24dc16c228dae6ec5c0b740327c4b5d25f8..96a6538a04323b8c2e300ce6e7718260c4db43da 100644 (file)
@@ -1659,7 +1659,7 @@ static int wm_userpref_write_exec(bContext *C, wmOperator *op)
 
 void WM_OT_save_userpref(wmOperatorType *ot)
 {
-       ot->name = "Save User Preferences";
+       ot->name = "Save Settings";
        ot->idname = "WM_OT_save_userpref";
        ot->description = "Save user preferences separately, overrides startup file preferences";
 
index b644457e5938ff837b61a2437d366724344c4a19..14b13fce652026d2767014cd4ff3b9e25c11962b 100644 (file)
@@ -954,7 +954,7 @@ wmWindow *WM_window_open_temp(bContext *C, int x, int y, int sizex, int sizey, i
        if (sa->spacetype == SPACE_IMAGE)
                title = IFACE_("Blender Render");
        else if (ELEM(sa->spacetype, SPACE_OUTLINER, SPACE_USERPREF))
-               title = IFACE_("Blender User Preferences");
+               title = IFACE_("Blender Settings");
        else if (sa->spacetype == SPACE_FILE)
                title = IFACE_("Blender File View");
        else if (sa->spacetype == SPACE_IPO)