Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_file/filesel.c
| Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | |||||
| #include "DNA_screen_types.h" | #include "DNA_screen_types.h" | ||||
| #include "DNA_space_types.h" | #include "DNA_space_types.h" | ||||
| #include "DNA_userdef_types.h" | #include "DNA_userdef_types.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "BLI_blenlib.h" | #include "BLI_blenlib.h" | ||||
| #include "BLI_fnmatch.h" | #include "BLI_fnmatch.h" | ||||
| #include "BLI_math_base.h" | |||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "BLO_readfile.h" | #include "BLO_readfile.h" | ||||
| #include "BLT_translation.h" | #include "BLT_translation.h" | ||||
| #include "BKE_appdir.h" | #include "BKE_appdir.h" | ||||
| #include "BKE_context.h" | #include "BKE_context.h" | ||||
| ▲ Show 20 Lines • Show All 695 Lines • ▼ Show 20 Lines | if (params->display == FILE_IMGDISPLAY) { | ||||
| layout->prv_border_y = 0.3f * UI_UNIT_Y; | layout->prv_border_y = 0.3f * UI_UNIT_Y; | ||||
| layout->tile_w = layout->prv_w + 2 * layout->prv_border_x; | layout->tile_w = layout->prv_w + 2 * layout->prv_border_x; | ||||
| layout->tile_h = layout->prv_h + 2 * layout->prv_border_y + textheight; | layout->tile_h = layout->prv_h + 2 * layout->prv_border_y + textheight; | ||||
| layout->width = (int)(BLI_rctf_size_x(&v2d->cur) - 2 * layout->tile_border_x); | layout->width = (int)(BLI_rctf_size_x(&v2d->cur) - 2 * layout->tile_border_x); | ||||
| layout->flow_columns = layout->width / (layout->tile_w + 2 * layout->tile_border_x); | layout->flow_columns = layout->width / (layout->tile_w + 2 * layout->tile_border_x); | ||||
| layout->attribute_column_header_h = 0; | layout->attribute_column_header_h = 0; | ||||
| layout->offset_top = 0; | layout->offset_top = 0; | ||||
| if (layout->flow_columns > 0) { | if (layout->flow_columns > 0) { | ||||
| layout->rows = numfiles / layout->flow_columns + 1; // XXX dirty, modulo is zero | layout->rows = divide_ceil_u(numfiles, layout->flow_columns); | ||||
| } | } | ||||
| else { | else { | ||||
| layout->flow_columns = 1; | layout->flow_columns = 1; | ||||
| layout->rows = numfiles + 1; // XXX dirty, modulo is zero | layout->rows = numfiles; | ||||
| } | } | ||||
| layout->height = sfile->layout->rows * (layout->tile_h + 2 * layout->tile_border_y) + | layout->height = sfile->layout->rows * (layout->tile_h + 2 * layout->tile_border_y) + | ||||
| layout->tile_border_y * 2 - layout->offset_top; | layout->tile_border_y * 2 - layout->offset_top; | ||||
| layout->flag = FILE_LAYOUT_VER; | layout->flag = FILE_LAYOUT_VER; | ||||
| } | } | ||||
| else if (params->display == FILE_VERTICALDISPLAY) { | else if (params->display == FILE_VERTICALDISPLAY) { | ||||
| int rowcount; | int rowcount; | ||||
| Show All 28 Lines | else if (params->display == FILE_HORIZONTALDISPLAY) { | ||||
| layout->height = (int)(BLI_rctf_size_y(&v2d->cur) - 2 * layout->tile_border_y); | 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. */ | /* Padding by full scrollbar H is too much, can overlap tile border Y. */ | ||||
| layout->rows = (layout->height - V2D_SCROLL_HEIGHT + layout->tile_border_y) / | layout->rows = (layout->height - V2D_SCROLL_HEIGHT + layout->tile_border_y) / | ||||
| (layout->tile_h + 2 * layout->tile_border_y); | (layout->tile_h + 2 * layout->tile_border_y); | ||||
| layout->tile_w = VERTLIST_MAJORCOLUMN_WIDTH; | layout->tile_w = VERTLIST_MAJORCOLUMN_WIDTH; | ||||
| file_attribute_columns_init(params, layout); | file_attribute_columns_init(params, layout); | ||||
| if (layout->rows > 0) { | if (layout->rows > 0) { | ||||
| layout->flow_columns = numfiles / layout->rows + 1; // XXX dirty, modulo is zero | layout->flow_columns = divide_ceil_u(numfiles, layout->rows); | ||||
| } | } | ||||
| else { | else { | ||||
| layout->rows = 1; | layout->rows = 1; | ||||
| layout->flow_columns = numfiles + 1; // XXX dirty, modulo is zero | layout->flow_columns = numfiles; | ||||
| } | } | ||||
| layout->width = sfile->layout->flow_columns * (layout->tile_w + 2 * layout->tile_border_x) + | layout->width = sfile->layout->flow_columns * (layout->tile_w + 2 * layout->tile_border_x) + | ||||
| layout->tile_border_x * 2; | layout->tile_border_x * 2; | ||||
| layout->flag = FILE_LAYOUT_HOR; | layout->flag = FILE_LAYOUT_HOR; | ||||
| } | } | ||||
| layout->dirty = false; | layout->dirty = false; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 216 Lines • Show Last 20 Lines | |||||