[Bf-blender-cvs] [f879b8b4ee5] temp-lanpr-cleanup: UI: Replace big options button in file browser
Julian Eisel
noreply at git.blender.org
Wed Sep 25 03:50:53 CEST 2019
Commit: f879b8b4ee5a00b0db5aa5f620bd07f4a1e21ee9
Author: Julian Eisel
Date: Fri Sep 20 17:36:38 2019 +0200
Branches: temp-lanpr-cleanup
https://developer.blender.org/rBf879b8b4ee5a00b0db5aa5f620bd07f4a1e21ee9
UI: Replace big options button in file browser
The big options button in the lower left is now gone, it's replaced by a
smaller icon toggle button in the upper right.
That means I could also remove code for the region we had just for this
button.
I also added versioning code for the removal, to make sure the region is
removed cleanly when reading old files.
===================================================================
M source/blender/blenloader/intern/versioning_280.c
M source/blender/editors/space_file/space_file.c
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 84adccde37b..3f832d54391 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -3909,11 +3909,20 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
else if (sl->spacetype == SPACE_FILE) {
ListBase *regionbase = (sl == sa->spacedata.first) ? &sa->regionbase : &sl->regionbase;
+ ARegion *ar_tools = do_versions_find_region_or_null(regionbase, RGN_TYPE_TOOLS);
- if (!do_versions_find_region_or_null(regionbase, RGN_TYPE_TOOLS)) {
+ if (ar_tools) {
+ ARegion *ar_next = ar_tools->next;
+
+ /* We temporarily had two tools regions, get rid of the second one. */
+ if (ar_next && ar_next->regiontype == RGN_TYPE_TOOLS) {
+ do_versions_remove_region(regionbase, RGN_TYPE_TOOLS);
+ }
+ }
+ else {
ARegion *ar_ui = do_versions_find_region(regionbase, RGN_TYPE_UI);
- ARegion *ar_tools = do_versions_add_region(RGN_TYPE_TOOLS,
- "versioning file tools region");
+
+ ar_tools = do_versions_add_region(RGN_TYPE_TOOLS, "versioning file tools region");
BLI_insertlinkafter(regionbase, ar_ui, ar_tools);
ar_tools->alignment = RGN_ALIGN_LEFT;
}
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 141036f856a..2f0e796d500 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -55,25 +55,6 @@
#include "filelist.h"
#include "GPU_framebuffer.h"
-static ARegion *file_tools_options_toggle_region_ensure(ScrArea *sa, ARegion *ar_prev)
-{
- ARegion *ar;
-
- if ((ar = BKE_area_find_region_type(sa, RGN_TYPE_TOOLS)) != NULL && (ar->next != NULL) &&
- (ar->next->regiontype == RGN_TYPE_TOOLS)) {
- BLI_assert(ar->alignment == (RGN_ALIGN_BOTTOM | RGN_SPLIT_PREV));
- return ar;
- }
-
- ar = MEM_callocN(sizeof(ARegion), "options toggle region for file");
- BLI_insertlinkafter(&sa->regionbase, ar_prev, ar);
- ar->regiontype = RGN_TYPE_TOOLS;
- ar->alignment = RGN_ALIGN_BOTTOM | RGN_SPLIT_PREV;
- ar->flag |= RGN_FLAG_DYNAMIC_SIZE;
-
- return ar;
-}
-
static ARegion *file_execute_region_ensure(ScrArea *sa, ARegion *ar_prev)
{
ARegion *ar;
@@ -138,7 +119,7 @@ static SpaceLink *file_new(const ScrArea *UNUSED(area), const Scene *UNUSED(scen
ar->regiontype = RGN_TYPE_TOOLS;
ar->alignment = RGN_ALIGN_LEFT;
- /* Options toggle, tool props and execute region are added as needed, see file_refresh(). */
+ /* Tool props and execute region are added as needed, see file_refresh(). */
/* main region */
ar = MEM_callocN(sizeof(ARegion), "main region for file");
@@ -258,16 +239,14 @@ static void file_ensure_valid_region_state(bContext *C,
SpaceFile *sfile,
FileSelectParams *params)
{
- ARegion *ar_tools_upper = BKE_area_find_region_type(sa, RGN_TYPE_TOOLS);
+ ARegion *ar_tools = BKE_area_find_region_type(sa, RGN_TYPE_TOOLS);
ARegion *ar_props = BKE_area_find_region_type(sa, RGN_TYPE_TOOL_PROPS);
ARegion *ar_execute = BKE_area_find_region_type(sa, RGN_TYPE_EXECUTE);
- ARegion *ar_tools_lower;
bool needs_init = false; /* To avoid multiple ED_area_initialize() calls. */
/* If there's an file-operation, ensure we have the option and execute region */
if (sfile->op && (ar_props == NULL)) {
- ar_tools_lower = file_tools_options_toggle_region_ensure(sa, ar_tools_upper);
- ar_execute = file_execute_region_ensure(sa, ar_tools_lower);
+ ar_execute = file_execute_region_ensure(sa, ar_tools);
ar_props = file_tool_props_region_ensure(sa, ar_execute);
if (params->flag & FILE_HIDE_TOOL_PROPS) {
@@ -281,15 +260,10 @@ static void file_ensure_valid_region_state(bContext *C,
}
/* If there's _no_ file-operation, ensure we _don't_ have the option and execute region */
else if ((sfile->op == NULL) && (ar_props != NULL)) {
- ar_tools_lower = ar_tools_upper->next;
-
BLI_assert(ar_execute != NULL);
- BLI_assert(ar_tools_lower != NULL);
- BLI_assert(ar_tools_lower->regiontype == RGN_TYPE_TOOLS);
ED_region_remove(C, sa, ar_props);
ED_region_remove(C, sa, ar_execute);
- ED_region_remove(C, sa, ar_tools_lower);
needs_init = true;
}
More information about the Bf-blender-cvs
mailing list