[Bf-blender-cvs] [6ad2056282b] filebrowser_redesign: Vertical layout for short list display type
Brian Meisenheimer
noreply at git.blender.org
Mon Jul 22 19:36:59 CEST 2019
Commit: 6ad2056282b548ff634975551620c425792eba2f
Author: Brian Meisenheimer
Date: Sun Jul 21 14:29:21 2019 +0200
Branches: filebrowser_redesign
https://developer.blender.org/rB6ad2056282b548ff634975551620c425792eba2f
Vertical layout for short list display type
===================================================================
M source/blender/editors/space_file/filesel.c
M source/blender/editors/space_file/space_file.c
===================================================================
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index faaecd975a3..319f6f32ced 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -536,6 +536,7 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, ARegion *ar)
int maxlen = 0;
int numfiles;
int textheight;
+ int rowamount;
if (sfile->layout == NULL) {
sfile->layout = MEM_callocN(sizeof(struct FileLayout), "file_layout");
@@ -572,16 +573,39 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, ARegion *ar)
layout->tile_border_y * 2;
layout->flag = FILE_LAYOUT_VER;
}
- else {
+ else if (params->display == FILE_SHORTDISPLAY) {
+
+ layout->prv_w = ((float)params->thumbnail_size / 20.0f) * UI_UNIT_X;
+ layout->prv_h = ((float)params->thumbnail_size / 20.0f) * UI_UNIT_Y;
+ layout->tile_border_x = 0.4f * UI_UNIT_X;
+ layout->tile_border_y = 0.1f * UI_UNIT_Y;
+ layout->tile_h = textheight * 3 / 2;
+ layout->width = (int)(BLI_rctf_size_x(&v2d->cur) - 2 * layout->tile_border_x);
+ layout->tile_w = v2d->winx;
+ layout->columns = 1;
+ column_widths(params, layout);
+ rowamount = (int)(BLI_rctf_size_y(&v2d->cur) - 2 * layout->tile_border_y) /
+ (layout->tile_h + 2 * layout->tile_border_y);
+ if ((int)rowamount / numfiles >= 1) {
+ layout->rows = rowamount;
+ }
+ else {
+ layout->rows = rowamount + (numfiles - rowamount);
+ }
+ layout->height = sfile->layout->rows * (layout->tile_h + 2 * layout->tile_border_y) +
+ layout->tile_border_y * 2;
+ layout->flag = FILE_LAYOUT_VER;
+ }
+ else if (params->display == FILE_LONGDISPLAY) {
int column_space = 0.6f * UI_UNIT_X;
int column_icon_space = 0.2f * UI_UNIT_X;
- layout->prv_w = 0;
- layout->prv_h = 0;
+ layout->prv_w = ((float)params->thumbnail_size / 20.0f) * UI_UNIT_X;
+ layout->prv_h = ((float)params->thumbnail_size / 20.0f) * UI_UNIT_Y;
layout->tile_border_x = 0.4f * UI_UNIT_X;
layout->tile_border_y = 0.1f * UI_UNIT_Y;
- layout->prv_border_x = 0;
- layout->prv_border_y = 0;
+ layout->tile_border_x = 0;
+ layout->tile_border_x = 0;
layout->tile_h = textheight * 3 / 2;
layout->height = (int)(BLI_rctf_size_y(&v2d->cur) - 2 * layout->tile_border_y);
/* Padding by full scrollbar H is too much, can overlap tile border Y. */
@@ -589,19 +613,11 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, ARegion *ar)
(layout->tile_h + 2 * layout->tile_border_y);
column_widths(params, layout);
-
- if (params->display == FILE_SHORTDISPLAY) {
- maxlen = ICON_DEFAULT_WIDTH_SCALE + column_icon_space +
- (int)layout->column_widths[COLUMN_NAME] + column_space +
- (int)layout->column_widths[COLUMN_SIZE] + column_space;
- }
- else {
- maxlen = ICON_DEFAULT_WIDTH_SCALE + column_icon_space +
- (int)layout->column_widths[COLUMN_NAME] + column_space +
- (int)layout->column_widths[COLUMN_DATE] + column_space +
- (int)layout->column_widths[COLUMN_TIME] + column_space +
- (int)layout->column_widths[COLUMN_SIZE] + column_space;
- }
+ maxlen = ICON_DEFAULT_WIDTH_SCALE + column_icon_space +
+ (int)layout->column_widths[COLUMN_NAME] + column_space +
+ (int)layout->column_widths[COLUMN_DATE] + column_space +
+ (int)layout->column_widths[COLUMN_TIME] + column_space +
+ (int)layout->column_widths[COLUMN_SIZE] + column_space;
layout->tile_w = maxlen;
if (layout->rows > 0) {
layout->columns = numfiles / layout->rows + 1; // XXX dirty, modulo is zero
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 5ffd42da39b..1210e5b5af0 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -414,6 +414,11 @@ static void file_main_region_draw(const bContext *C, ARegion *ar)
v2d->keepofs &= ~V2D_LOCKOFS_Y;
v2d->keepofs |= V2D_LOCKOFS_X;
}
+ else if (params->display == FILE_SHORTDISPLAY) {
+ v2d->scroll = V2D_SCROLL_RIGHT;
+ v2d->keepofs &= ~V2D_LOCKOFS_Y;
+ v2d->keepofs |= V2D_LOCKOFS_X;
+ }
else {
v2d->scroll = V2D_SCROLL_BOTTOM;
v2d->keepofs &= ~V2D_LOCKOFS_X;
More information about the Bf-blender-cvs
mailing list