Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Weikert <elubie@gmx.net>2009-03-14 21:15:28 +0300
committerAndrea Weikert <elubie@gmx.net>2009-03-14 21:15:28 +0300
commite7e655ce746039601d8ecc3896db744e81c4dea8 (patch)
tree31deb0c44109f48ed6ae5cd4bab6e72816b3f8fb /source/blender/editors/space_file/filesel.c
parentd297058910f121c619ef90b29070f62964e905e2 (diff)
2.5 filebrowser
- drawing tweak for background lines - long and short display now behave the same, only difference is column width now. TODO still: - add additional columns (access rights - mode1-mode3 and owner) for non-Windows platforms
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r--source/blender/editors/space_file/filesel.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index 9eef35d47a5..a422bda9503 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -197,20 +197,33 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
}
sfile->layout->height= sfile->layout->rows*(sfile->layout->tile_h+2*sfile->layout->tile_border_y) + sfile->layout->tile_border_y*2;
sfile->layout->flag = FILE_LAYOUT_VER;
- } else if (params->display == FILE_SHORTDISPLAY) {
+ } else {
sfile->layout->prv_w = 0;
sfile->layout->prv_h = 0;
sfile->layout->tile_border_x = 8;
sfile->layout->tile_border_y = 2;
sfile->layout->prv_border_x = 0;
sfile->layout->prv_border_y = 0;
- sfile->layout->tile_w = 240;
sfile->layout->tile_h = U.fontsize*3/2;
sfile->layout->height= v2d->cur.ymax - v2d->cur.ymin;
sfile->layout->rows = sfile->layout->height / (sfile->layout->tile_h + 2*sfile->layout->tile_border_y);;
-
- maxlen = filelist_maxnamelen(sfile->files);
- sfile->layout->tile_w = maxlen + 100;
+
+ if (params->display == FILE_SHORTDISPLAY) {
+ maxlen = filelist_column_len(sfile->files, COLUMN_NAME) +
+ filelist_column_len(sfile->files, COLUMN_SIZE);
+ maxlen += 20+2*10; // for icon and space between columns
+ } else {
+ maxlen = filelist_column_len(sfile->files, COLUMN_NAME) +
+ filelist_column_len(sfile->files, COLUMN_DATE) +
+ filelist_column_len(sfile->files, COLUMN_TIME) +
+ filelist_column_len(sfile->files, COLUMN_SIZE) /* +
+ filelist_column_len(sfile->files, COLUMN_MODE1) +
+ filelist_column_len(sfile->files, COLUMN_MODE2) +
+ filelist_column_len(sfile->files, COLUMN_MODE3) +
+ filelist_column_len(sfile->files, COLUMN_OWNER) */ ;
+ maxlen += 20+4*10; // for icon and space between columns
+ }
+ sfile->layout->tile_w = maxlen + 40;
if(sfile->layout->rows > 0)
sfile->layout->columns = numfiles/sfile->layout->rows + 1; // XXX dirty, modulo is zero
else {
@@ -219,21 +232,7 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
}
sfile->layout->width = sfile->layout->columns * (sfile->layout->tile_w + 2*sfile->layout->tile_border_x) + sfile->layout->tile_border_x*2;
sfile->layout->flag = FILE_LAYOUT_HOR;
- } else {
- sfile->layout->prv_w = 0;
- sfile->layout->prv_h = 0;
- sfile->layout->tile_border_x = 8;
- sfile->layout->tile_border_y = 2;
- sfile->layout->prv_border_x = 0;
- sfile->layout->prv_border_y = 0;
- sfile->layout->tile_w = v2d->cur.xmax - v2d->cur.xmin - 2*sfile->layout->tile_border_x;
- sfile->layout->tile_h = U.fontsize*3/2;
- sfile->layout->width= (v2d->cur.xmax - v2d->cur.xmin + 2*sfile->layout->tile_border_x);
- sfile->layout->rows= numfiles+1;
- sfile->layout->columns= 1;
- sfile->layout->height= sfile->layout->rows*(sfile->layout->tile_h+2*sfile->layout->tile_border_y) + sfile->layout->tile_border_y*2;
- sfile->layout->flag = FILE_LAYOUT_VER;
- }
+ }
}
FileLayout* ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar)