[Bf-blender-cvs] [da7092f] asset-experiments: Restore size/date sorting.
Bastien Montagne
noreply at git.blender.org
Tue Feb 24 16:24:01 CET 2015
Commit: da7092ff7d4aa538be69c27537824898a8e2ae8c
Author: Bastien Montagne
Date: Tue Feb 24 14:14:27 2015 +0100
Branches: asset-experiments
https://developer.blender.org/rBda7092ff7d4aa538be69c27537824898a8e2ae8c
Restore size/date sorting.
Also, get rid of modes/owner crap, this is quite advanced UNIX fs info, not much to
do in our filebrowser imho, and takes time, UI space and Mem space!
===================================================================
M source/blender/editors/space_file/file_draw.c
M source/blender/editors/space_file/filelist.c
M source/blender/editors/space_file/filesel.c
M source/blender/makesdna/DNA_space_types.h
===================================================================
diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c
index 81093ae..9b9a7b6 100644
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@ -571,13 +571,14 @@ void file_draw_list(const bContext *C, ARegion *ar)
if (params->display == FILE_SHORTDISPLAY) {
sx += (int)layout->column_widths[COLUMN_NAME] + column_space;
if (!(file->typeflag & FILE_TYPE_DIR)) {
- file_draw_string(sx, sy, file->entry->size, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
+ file_draw_string(sx, sy, file->entry->size_str, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
sx += (int)layout->column_widths[COLUMN_SIZE] + column_space;
}
}
else if (params->display == FILE_LONGDISPLAY) {
sx += (int)layout->column_widths[COLUMN_NAME] + column_space;
+#if 0
#ifndef WIN32
/* rwx rwx rwx */
file_draw_string(sx, sy, file->entry->mode1, layout->column_widths[COLUMN_MODE1], layout->tile_h, align);
@@ -592,15 +593,15 @@ void file_draw_list(const bContext *C, ARegion *ar)
file_draw_string(sx, sy, file->entry->owner, layout->column_widths[COLUMN_OWNER], layout->tile_h, align);
sx += layout->column_widths[COLUMN_OWNER] + column_space;
#endif
-
- file_draw_string(sx, sy, file->entry->date, layout->column_widths[COLUMN_DATE], layout->tile_h, align);
+#endif
+ file_draw_string(sx, sy, file->entry->date_str, layout->column_widths[COLUMN_DATE], layout->tile_h, align);
sx += (int)layout->column_widths[COLUMN_DATE] + column_space;
- file_draw_string(sx, sy, file->entry->time, layout->column_widths[COLUMN_TIME], layout->tile_h, align);
+ file_draw_string(sx, sy, file->entry->time_str, layout->column_widths[COLUMN_TIME], layout->tile_h, align);
sx += (int)layout->column_widths[COLUMN_TIME] + column_space;
if (!(file->typeflag & FILE_TYPE_DIR)) {
- file_draw_string(sx, sy, file->entry->size, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
+ file_draw_string(sx, sy, file->entry->size_str, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
sx += (int)layout->column_widths[COLUMN_SIZE] + column_space;
}
}
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index f7fadca..cd0565a 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -377,10 +377,8 @@ static int compare_date(const void *a1, const void *a2)
return ret;
}
-#if 0 /* TODO: add back that stuff to FileDirEntryRevision */
- if (entry1->entry->s.st_mtime < entry2->entry->s.st_mtime) return 1;
- if (entry1->entry->s.st_mtime > entry2->entry->s.st_mtime) return -1;
-#endif
+ if (entry1->entry->time < entry2->entry->time) return 1;
+ if (entry1->entry->time > entry2->entry->time) return -1;
name1 = fileentry_uiname(entry1, dir1);
name2 = fileentry_uiname(entry2, dir2);
@@ -400,10 +398,8 @@ static int compare_size(const void *a1, const void *a2)
return ret;
}
-#if 0 /* TODO: add back that stuff to FileDirEntryRevision */
- if (entry1->entry->s.st_size < entry2->entry->s.st_size) return 1;
- if (entry1->entry->s.st_size > entry2->entry->s.st_size) return -1;
-#endif
+ if (entry1->entry->size < entry2->entry->size) return 1;
+ if (entry1->entry->size > entry2->entry->size) return -1;
name1 = fileentry_uiname(entry1, dir1);
name2 = fileentry_uiname(entry2, dir2);
@@ -1585,14 +1581,16 @@ static int filelist_readjob_list_dir(
if (S_ISDIR(entries[i].s.st_mode)) {
entry->typeflag |= FILE_TYPE_DIR;
}
+ rev->size = (uint64_t)entries[i].s.st_size;
+ rev->time = (int64_t)entries[i].s.st_mtime;
/* TODO rather use real values from direntry.s!!! */
- memcpy(rev->size, entries[i].size, sizeof(rev->size));
- memcpy(rev->mode1, entries[i].mode1, sizeof(rev->mode1));
- memcpy(rev->mode2, entries[i].mode2, sizeof(rev->mode2));
- memcpy(rev->mode3, entries[i].mode3, sizeof(rev->mode3));
- memcpy(rev->owner, entries[i].owner, sizeof(rev->owner));
- memcpy(rev->time, entries[i].time, sizeof(rev->time));
- memcpy(rev->date, entries[i].date, sizeof(rev->date));
+ memcpy(rev->size_str, entries[i].size, sizeof(rev->size_str));
+// memcpy(rev->mode1, entries[i].mode1, sizeof(rev->mode1));
+// memcpy(rev->mode2, entries[i].mode2, sizeof(rev->mode2));
+// memcpy(rev->mode3, entries[i].mode3, sizeof(rev->mode3));
+// memcpy(rev->owner, entries[i].owner, sizeof(rev->owner));
+ memcpy(rev->time_str, entries[i].time, sizeof(rev->time_str));
+ memcpy(rev->date_str, entries[i].date, sizeof(rev->date_str));
/* Set file type. */
/* If we are considering .blend files as libs, promote them to directory status! */
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index c74da64..bbbc440 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -495,12 +495,13 @@ static void column_widths(struct FileList *files, struct FileLayout *layout)
float len;
len = file_string_width(file->entry->relpath);
if (len > layout->column_widths[COLUMN_NAME]) layout->column_widths[COLUMN_NAME] = len;
- len = file_string_width(file->entry->date);
+ len = file_string_width(file->entry->date_str);
if (len > layout->column_widths[COLUMN_DATE]) layout->column_widths[COLUMN_DATE] = len;
- len = file_string_width(file->entry->time);
+ len = file_string_width(file->entry->time_str);
if (len > layout->column_widths[COLUMN_TIME]) layout->column_widths[COLUMN_TIME] = len;
- len = file_string_width(file->entry->size);
+ len = file_string_width(file->entry->size_str);
if (len > layout->column_widths[COLUMN_SIZE]) layout->column_widths[COLUMN_SIZE] = len;
+#if 0
len = file_string_width(file->entry->mode1);
if (len > layout->column_widths[COLUMN_MODE1]) layout->column_widths[COLUMN_MODE1] = len;
len = file_string_width(file->entry->mode2);
@@ -509,6 +510,7 @@ static void column_widths(struct FileList *files, struct FileLayout *layout)
if (len > layout->column_widths[COLUMN_MODE3]) layout->column_widths[COLUMN_MODE3] = len;
len = file_string_width(file->entry->owner);
if (len > layout->column_widths[COLUMN_OWNER]) layout->column_widths[COLUMN_OWNER] = len;
+#endif
}
}
}
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index fbb4bc5..74e55b8 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -758,16 +758,18 @@ typedef struct FileDirEntryRevision {
char *relpath;
char *abspath; /* XXX Get rid of this! */
+ uint64_t size;
+ int64_t time;
/* Those are direct copy from direntry. We may rework that later, but really not top priority. */
/* TODO: switch back to real values, no sense to keep this as string when it often not used at all! */
- char size[16];
- char mode1[4];
- char mode2[4];
- char mode3[4];
- char owner[16];
- char time[8];
- char date[16];
- char pad[4];
+ char size_str[16];
+// char mode1[4];
+// char mode2[4];
+// char mode3[4];
+// char owner[16];
+ char time_str[8];
+ char date_str[16];
+// char pad[4];
void *poin;
struct ImBuf *image;
More information about the Bf-blender-cvs
mailing list