[Bf-blender-cvs] [b789e5a82a0] userpref_redesign: Own left-bottom aligned region for Save Preference button
Julian Eisel
noreply at git.blender.org
Mon Dec 24 13:01:01 CET 2018
Commit: b789e5a82a0a5953e09622f43f20895456e352ab
Author: Julian Eisel
Date: Mon Dec 24 00:15:36 2018 +0100
Branches: userpref_redesign
https://developer.blender.org/rBb789e5a82a0a5953e09622f43f20895456e352ab
Own left-bottom aligned region for Save Preference button
* Own region allows scrolling the navigation bar independently (Save
Preference button stays visible).
* We may want to change background color and size, but I'll leave that
for others to do.
* Region can be hidden but not scaled or scrolled.
* Bumps subversion.
* Added new execute region type which we may want to use in more places.
* Had to do some tweaks to drawing/layout code to get the dynamically
sized region to work without glitches.
* Also correct navigation bar versioning code to use full area width for
header.
===================================================================
M release/datafiles/userdef/userdef_default_theme.c
M release/scripts/startup/bl_ui/space_userpref.py
M source/blender/blenkernel/BKE_blender_version.h
M source/blender/blenloader/intern/versioning_280.c
M source/blender/blenloader/intern/versioning_userdef.c
M source/blender/editors/interface/interface_panel.c
M source/blender/editors/interface/resources.c
M source/blender/editors/screen/area.c
M source/blender/editors/screen/screen_edit.c
M source/blender/editors/screen/screen_ops.c
M source/blender/editors/space_userpref/space_userpref.c
M source/blender/makesdna/DNA_screen_types.h
M source/blender/makesdna/DNA_userdef_types.h
M source/blender/makesrna/intern/rna_screen.c
M source/blender/makesrna/intern/rna_userdef.c
===================================================================
diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 008aeffd9bd..7a7f804bbed 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -822,6 +822,7 @@ const bTheme U_theme_default = {
.button_text = RGBA(0xe5e5e5ff),
.button_text_hi = RGBA(0xffffffff),
.navigation_bar = RGBA(0x4b4b4bff),
+ .execution_buts = RGBA(0x4b4b4bff),
.panelcolors = {
.header = RGBA(0x42424200),
.back = RGBA(0x333333b3),
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 44b09701541..e0a383b9b64 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -36,12 +36,6 @@ class USERPREF_HT_header(Header):
layout.template_header()
- row = layout.row()
-
- row.separator_spacer()
-
- row.operator("wm.save_userpref")
-
class USERPREF_PT_navigation(Panel):
bl_label = ""
@@ -62,6 +56,24 @@ class USERPREF_PT_navigation(Panel):
col.prop(prefs, "active_section", expand=True)
+class USERPREF_PT_save_preferences(Panel):
+ bl_label = ""
+ bl_space_type = 'PREFERENCES'
+ bl_region_type = 'EXECUTE'
+ bl_options = {'HIDE_HEADER'}
+
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'EXEC_AREA'
+
+ prefs = context.preferences
+
+ layout.scale_x = 1.3
+ layout.scale_y = 1.3
+
+ layout.operator("wm.save_userpref")
+
+
class PreferencePanel(Panel):
bl_space_type = 'PREFERENCES'
bl_region_type = 'WINDOW'
@@ -1498,11 +1510,6 @@ class USERPREF_PT_keymap(Panel):
prefs = context.preferences
return (prefs.active_section == 'KEYMAP')
- @staticmethod
- def draw_input_prefs(inputs, layout):
- import sys
-
-
def draw(self, context):
from rna_keymap_ui import draw_keymaps
@@ -1517,9 +1524,6 @@ class USERPREF_PT_keymap(Panel):
col = layout.column()
- # Input settings
- self.draw_input_prefs(keymappref, col)
-
# Keymap Settings
draw_keymaps(context, col)
@@ -1975,6 +1979,7 @@ classes = (USERPREF_PT_theme_user_interface,) + tuple(ThemeGenericClassGenerator
classes += (
USERPREF_HT_header,
USERPREF_PT_navigation,
+ USERPREF_PT_save_preferences,
USERPREF_PT_interface_display,
USERPREF_PT_interface_display_info,
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index 2d044fd9399..bc2212f6091 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -28,7 +28,7 @@
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 280
-#define BLENDER_SUBVERSION 39
+#define BLENDER_SUBVERSION 40
/* Several breakages with 280, e.g. collections vs layers */
#define BLENDER_MINVERSION 280
#define BLENDER_MINSUBVERSION 0
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index c110594125a..647ccf25c3f 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -2420,35 +2420,13 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
ARegion *navigation_region = BKE_spacedata_find_region_type(slink, area, RGN_TYPE_NAV_BAR);
if (!navigation_region) {
+ ARegion *main_region = BKE_spacedata_find_region_type(slink, area, RGN_TYPE_WINDOW);
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;
- }
- }
- }
- }
- }
- }
-
- if (!MAIN_VERSION_ATLEAST(bmain, 280, 37)) {
- 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! */
+ BLI_insertlinkbefore(regionbase, main_region, navigation_region); /* order matters, addhead not addtail! */
navigation_region->regiontype = RGN_TYPE_NAV_BAR;
navigation_region->alignment = RGN_ALIGN_LEFT;
}
@@ -2754,9 +2732,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
- {
- /* Versioning code until next subversion bump goes here. */
-
+ if (!MAIN_VERSION_ATLEAST(bmain, 280, 40)) {
if (!DNA_struct_elem_find(fd->filesdna, "ToolSettings", "char", "snap_transform_mode_flag")) {
for (Scene *scene = bmain->scene.first; scene; scene = scene->id.next) {
scene->toolsettings->snap_transform_mode_flag =
@@ -2790,5 +2766,34 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
+
+ for (bScreen *screen = bmain->screen.first; screen; screen = screen->id.next) {
+ for (ScrArea *area = screen->areabase.first; area; area = area->next) {
+ for (SpaceLink *sl = area->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_USERPREF) {
+ ARegion *execute_region = BKE_spacedata_find_region_type(sl, area, RGN_TYPE_EXECUTE);
+
+ if (!execute_region) {
+ ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase : &sl->regionbase;
+ ARegion *ar_navbar = BKE_spacedata_find_region_type(sl, area, RGN_TYPE_NAV_BAR);
+
+ execute_region = MEM_callocN(sizeof(ARegion), "execute region for properties");
+
+ BLI_assert(ar_navbar);
+
+ BLI_insertlinkafter(regionbase, ar_navbar, execute_region);
+
+ execute_region->regiontype = RGN_TYPE_EXECUTE;
+ execute_region->alignment = RGN_ALIGN_BOTTOM | RGN_SPLIT_PREV;
+ execute_region->flag |= RGN_FLAG_DYNAMIC_SIZE;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ {
+ /* Versioning code until next subversion bump goes here. */
}
}
diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c
index bb0ad9d3ce5..de5a1c8a79e 100644
--- a/source/blender/blenloader/intern/versioning_userdef.c
+++ b/source/blender/blenloader/intern/versioning_userdef.c
@@ -106,6 +106,11 @@ static void do_versions_theme(UserDef *userdef, bTheme *btheme)
copy_v4_v4_char(btheme->tclip.metadatabg, U_theme_default.tima.metadatabg);
copy_v4_v4_char(btheme->tclip.metadatatext, U_theme_default.tima.metadatatext);
}
+
+ if (!USER_VERSION_ATLEAST(280, 40)) {
+ copy_v4_v4_char(btheme->tuserpref.execution_buts, btheme->tuserpref.navigation_bar);
+ }
+
#undef USER_VERSION_ATLEAST
}
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 1e97cbc29d0..b8e9ddd26ac 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -147,7 +147,7 @@ static int panel_aligned(ScrArea *sa, ARegion *ar)
return BUT_VERTICAL;
else if (sa->spacetype == SPACE_IMAGE && ar->regiontype == RGN_TYPE_PREVIEW)
return BUT_VERTICAL;
- else if (ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS, RGN_TYPE_HUD, RGN_TYPE_NAV_BAR))
+ else if (ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS, RGN_TYPE_HUD, RGN_TYPE_NAV_BAR, RGN_TYPE_EXECUTE))
return BUT_VERTICAL;
return 0;
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 09b8933206e..e48ad21ea62 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -183,6 +183,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
cp = ts->header;
else if (theme_regionid == RGN_TYPE_NAV_BAR)
cp = ts->navigation_bar;
+ else if (theme_regionid == RGN_TYPE_EXECUTE)
+ cp = ts->execution_buts;
else
cp = ts->button;
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 47c44468bc7..26960c3d114 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1605,6 +1605,7 @@ void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *ar
if (!(area->flag & AREA_FLAG_REGION_SIZE_UPDATE)) {
return;
}
+ const bScreen *screen = WM_window_get_active_screen(win);
WM_window_rect_calc(win, &window_rect);
area_calc_totrct(area, &window_rect);
@@ -1614,6 +1615,9 @@ void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *ar
overlap_rect = rect;
region_rect_recursive(area, area->regionbase.first, &rect, &overlap_rect, 0);
+ /* Dynamically sized regions may have changed region sizes, so we have to force azone update. */
+ area_azone_initialize(win, screen, area);
+
for (ARegion *ar = area->regionbase.first; ar; ar = ar->next) {
region_subwindow(ar);
@@ -1621,6 +1625,9 @@ void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *ar
if (ar->type->init) {
ar->type->init(wm, ar);
}
+
+ /* Some AZones use View2D data which is only updated in region init, so call that first! */
+ region_azones_add(screen, area, ar, ar->alignment & ~RG
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list