Blender V2.61 - r43446
Classes | Defines | Typedefs | Functions | Variables

filelist.c File Reference

#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <unistd.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_icons.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BLO_readfile.h"
#include "BKE_idcode.h"
#include "DNA_space_types.h"
#include "ED_fileselect.h"
#include "ED_datafiles.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_thumbs.h"
#include "PIL_time.h"
#include "WM_api.h"
#include "WM_types.h"
#include "UI_resources.h"
#include "filelist.h"

Go to the source code of this file.

Classes

struct  FileImage
struct  ThumbnailJob
struct  FileList
struct  FolderList

Defines

#define GROUP_MAX   32
#define SPECIAL_IMG_SIZE   48
#define SPECIAL_IMG_ROWS   4
#define SPECIAL_IMG_COLS   4
#define SPECIAL_IMG_FOLDER   0
#define SPECIAL_IMG_PARENT   1
#define SPECIAL_IMG_REFRESH   2
#define SPECIAL_IMG_BLENDFILE   3
#define SPECIAL_IMG_SOUNDFILE   4
#define SPECIAL_IMG_MOVIEFILE   5
#define SPECIAL_IMG_PYTHONFILE   6
#define SPECIAL_IMG_TEXTFILE   7
#define SPECIAL_IMG_FONTFILE   8
#define SPECIAL_IMG_UNKNOWNFILE   9
#define SPECIAL_IMG_LOADING   10
#define SPECIAL_IMG_MAX   SPECIAL_IMG_LOADING + 1

Typedefs

typedef struct FileImage FileImage
typedef struct ThumbnailJob ThumbnailJob
typedef struct FileList FileList
typedef struct FolderList FolderList

Functions

static int compare_name (const void *a1, const void *a2)
static int compare_date (const void *a1, const void *a2)
static int compare_size (const void *a1, const void *a2)
static int compare_extension (const void *a1, const void *a2)
static int is_hidden_file (const char *filename, short hide_dot)
static int is_filtered_file (struct direntry *file, const char *UNUSED(dir), unsigned int filter, short hide_dot)
static int is_filtered_lib (struct direntry *file, const char *dir, unsigned int filter, short hide_dot)
static int is_filtered_main (struct direntry *file, const char *UNUSED(dir), unsigned int UNUSED(filter), short hide_dot)
void filelist_filter (FileList *filelist)
void filelist_init_icons (void)
void filelist_free_icons (void)
struct ListBasefolderlist_new (void)
void folderlist_popdir (struct ListBase *folderlist, char *dir)
void folderlist_pushdir (ListBase *folderlist, const char *dir)
int folderlist_clear_next (struct SpaceFile *sfile)
void folderlist_free (ListBase *folderlist)
ListBasefolderlist_duplicate (ListBase *folderlist)
static void filelist_read_main (struct FileList *filelist)
static void filelist_read_library (struct FileList *filelist)
static void filelist_read_dir (struct FileList *filelist)
struct FileListfilelist_new (short type)
void filelist_free (struct FileList *filelist)
void filelist_freelib (struct FileList *filelist)
struct BlendHandlefilelist_lib (struct FileList *filelist)
int filelist_numfiles (struct FileList *filelist)
const char * filelist_dir (struct FileList *filelist)
void filelist_setdir (struct FileList *filelist, const char *dir)
void filelist_imgsize (struct FileList *filelist, short w, short h)
short filelist_changed (struct FileList *filelist)
struct ImBuffilelist_getimage (struct FileList *filelist, int index)
struct ImBuffilelist_geticon (struct FileList *filelist, int index)
struct direntryfilelist_file (struct FileList *filelist, int index)
int filelist_find (struct FileList *filelist, const char *filename)
void filelist_hidedot (struct FileList *filelist, short hide)
void filelist_setfilter (struct FileList *filelist, unsigned int filter)
void filelist_setfilter_types (struct FileList *filelist, const char *filter_glob)
static int file_is_blend_backup (const char *str)
static int file_extension_type (const char *relname)
int ED_file_extension_icon (const char *relname)
static void filelist_setfiletypes (struct FileList *filelist)
void filelist_readdir (struct FileList *filelist)
int filelist_empty (struct FileList *filelist)
void filelist_parent (struct FileList *filelist)
void filelist_select_file (struct FileList *filelist, int index, FileSelType select, unsigned int flag, FileCheckType check)
void filelist_select (struct FileList *filelist, FileSelection *sel, FileSelType select, unsigned int flag, FileCheckType check)
int filelist_is_selected (struct FileList *filelist, int index, FileCheckType check)
void filelist_sort (struct FileList *filelist, short sort)
int filelist_islibrary (struct FileList *filelist, char *dir, char *group)
static int groupname_to_code (const char *group)
void filelist_from_library (struct FileList *filelist)
void filelist_hideparent (struct FileList *filelist, short hide)
void filelist_from_main (struct FileList *filelist)
static void thumbnail_joblist_free (ThumbnailJob *tj)
static void thumbnails_startjob (void *tjv, short *stop, short *do_update, float *UNUSED(progress))
static void thumbnails_update (void *tjv)
static void thumbnails_free (void *tjv)
void thumbnails_start (struct FileList *filelist, const struct bContext *C)
void thumbnails_stop (struct FileList *filelist, const struct bContext *C)
int thumbnails_running (struct FileList *filelist, const struct bContext *C)

Variables

static ImBufgSpecialFileImages [SPECIAL_IMG_MAX]

Detailed Description

Definition in file filelist.c.


Define Documentation

#define GROUP_MAX   32

Definition at line 84 of file filelist.c.

Referenced by filelist_from_library(), and is_filtered_lib().

#define SPECIAL_IMG_BLENDFILE   3

Definition at line 140 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_COLS   4

Definition at line 135 of file filelist.c.

Referenced by filelist_init_icons().

#define SPECIAL_IMG_FOLDER   0

Definition at line 137 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_FONTFILE   8

Definition at line 145 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_LOADING   10

Definition at line 147 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_MAX   SPECIAL_IMG_LOADING + 1

Definition at line 148 of file filelist.c.

Referenced by filelist_free_icons(), and filelist_init_icons().

#define SPECIAL_IMG_MOVIEFILE   5

Definition at line 142 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_PARENT   1

Definition at line 138 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_PYTHONFILE   6

Definition at line 143 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_REFRESH   2

Definition at line 139 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_ROWS   4

Definition at line 134 of file filelist.c.

Referenced by filelist_init_icons().

#define SPECIAL_IMG_SIZE   48

Definition at line 133 of file filelist.c.

Referenced by filelist_init_icons().

#define SPECIAL_IMG_SOUNDFILE   4

Definition at line 141 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_TEXTFILE   7

Definition at line 144 of file filelist.c.

Referenced by filelist_geticon().

#define SPECIAL_IMG_UNKNOWNFILE   9

Definition at line 146 of file filelist.c.

Referenced by filelist_geticon().


Typedef Documentation

typedef struct FileImage FileImage
typedef struct FileList FileList
typedef struct FolderList FolderList
typedef struct ThumbnailJob ThumbnailJob

Function Documentation

static int compare_date ( const void *  a1,
const void *  a2 
) [static]

Definition at line 183 of file filelist.c.

References BLI_natstrcmp(), direntry::relname, direntry::s, and direntry::type.

Referenced by filelist_sort().

static int compare_extension ( const void *  a1,
const void *  a2 
) [static]

Definition at line 244 of file filelist.c.

References BLI_strcasecmp(), direntry::relname, and direntry::type.

Referenced by filelist_sort().

static int compare_name ( const void *  a1,
const void *  a2 
) [static]

Definition at line 155 of file filelist.c.

References BLI_natstrcmp(), direntry::relname, and direntry::type.

Referenced by filelist_from_main(), and filelist_sort().

static int compare_size ( const void *  a1,
const void *  a2 
) [static]

Definition at line 214 of file filelist.c.

References BLI_natstrcmp(), direntry::relname, direntry::s, and direntry::type.

Referenced by filelist_sort().

int ED_file_extension_icon ( const char *  relname)
static int file_extension_type ( const char *  relname) [static]
static int file_is_blend_backup ( const char *  str) [static]

Definition at line 710 of file filelist.c.

References BLI_strcasestr(), and strlen().

Referenced by file_extension_type().

short filelist_changed ( struct FileList filelist)

Definition at line 598 of file filelist.c.

References FileList::changed.

const char* filelist_dir ( struct FileList filelist)

Definition at line 582 of file filelist.c.

References FileList::dir.

Referenced by file_change_dir(), and file_refresh().

int filelist_empty ( struct FileList filelist)

Definition at line 875 of file filelist.c.

References FileList::filelist, and NULL.

Referenced by file_main_area_draw(), and file_refresh().

struct direntry* filelist_file ( struct FileList filelist,
int  index 
) [read]
void filelist_filter ( FileList filelist)
int filelist_find ( struct FileList filelist,
const char *  filename 
)
void filelist_free ( struct FileList filelist)
void filelist_free_icons ( void  )

Definition at line 396 of file filelist.c.

References i, IMB_freeImBuf(), NULL, and SPECIAL_IMG_MAX.

Referenced by ED_file_exit().

void filelist_freelib ( struct FileList filelist)

Definition at line 565 of file filelist.c.

References BLO_blendhandle_close(), FileList::libfiledata, and NULL.

Referenced by ED_fileselect_clear(), and file_free().

void filelist_from_library ( struct FileList filelist)
void filelist_from_main ( struct FileList filelist)
struct ImBuf* filelist_geticon ( struct FileList filelist,
int  index 
) [read]
struct ImBuf* filelist_getimage ( struct FileList filelist,
int  index 
) [read]
void filelist_hidedot ( struct FileList filelist,
short  hide 
)

Definition at line 695 of file filelist.c.

References FileList::hide_dot.

Referenced by file_refresh().

void filelist_hideparent ( struct FileList filelist,
short  hide 
)

Definition at line 1082 of file filelist.c.

References FileList::hide_parent.

void filelist_imgsize ( struct FileList filelist,
short  w,
short  h 
)

Definition at line 592 of file filelist.c.

References FileList::prv_h, FileList::prv_w, and simple_enum_gen::w.

void filelist_init_icons ( void  )
int filelist_is_selected ( struct FileList filelist,
int  index,
FileCheckType  check 
)
int filelist_islibrary ( struct FileList filelist,
char *  dir,
char *  group 
)

Definition at line 968 of file filelist.c.

References BLO_is_a_library(), and FileList::dir.

Referenced by file_delete_poll(), file_rename_poll(), and filelist_from_library().

struct BlendHandle* filelist_lib ( struct FileList filelist) [read]

Definition at line 572 of file filelist.c.

References FileList::libfiledata.

Referenced by file_directory_poll().

struct FileList* filelist_new ( short  type) [read]
int filelist_numfiles ( struct FileList filelist)
void filelist_parent ( struct FileList filelist)

Definition at line 880 of file filelist.c.

References BLI_make_exist(), BLI_parent_dir(), FileList::dir, and filelist_readdir().

static void filelist_read_dir ( struct FileList filelist) [static]
static void filelist_read_library ( struct FileList filelist) [static]
static void filelist_read_main ( struct FileList filelist) [static]

Definition at line 835 of file filelist.c.

References filelist_from_main().

Referenced by filelist_new().

void filelist_readdir ( struct FileList filelist)

Definition at line 870 of file filelist.c.

References FileList::readf.

Referenced by file_refresh(), and filelist_parent().

void filelist_select ( struct FileList filelist,
FileSelection sel,
FileSelType  select,
unsigned int  flag,
FileCheckType  check 
)
void filelist_select_file ( struct FileList filelist,
int  index,
FileSelType  select,
unsigned int  flag,
FileCheckType  check 
)
void filelist_setdir ( struct FileList filelist,
const char *  dir 
)

Definition at line 587 of file filelist.c.

References BLI_strncpy(), FileList::dir, and FILE_MAX.

Referenced by file_change_dir(), file_duplicate(), and file_refresh().

static void filelist_setfiletypes ( struct FileList filelist) [static]
void filelist_setfilter ( struct FileList filelist,
unsigned int  filter 
)

Definition at line 700 of file filelist.c.

References FileList::filter, and filter().

Referenced by file_refresh().

void filelist_setfilter_types ( struct FileList filelist,
const char *  filter_glob 
)

Definition at line 705 of file filelist.c.

References BLI_strncpy(), and FileList::filter_glob.

Referenced by file_refresh().

void filelist_sort ( struct FileList filelist,
short  sort 
)
int folderlist_clear_next ( struct SpaceFile sfile)
ListBase* folderlist_duplicate ( ListBase folderlist) [read]
void folderlist_free ( ListBase folderlist)
struct ListBase* folderlist_new ( void  ) [read]

Definition at line 406 of file filelist.c.

References MEM_callocN(), and p.

Referenced by ED_fileselect_set_params(), file_next_exec(), file_previous_exec(), and file_refresh().

void folderlist_popdir ( struct ListBase folderlist,
char *  dir 
)
void folderlist_pushdir ( ListBase folderlist,
const char *  dir 
)
static int groupname_to_code ( const char *  group) [static]

Definition at line 973 of file filelist.c.

References BKE_idcode_from_name(), BLI_last_slash(), and BLI_strncpy().

Referenced by filelist_from_library(), and filelist_from_main().

static int is_filtered_file ( struct direntry file,
const char *  UNUSEDdir,
unsigned int  filter,
short  hide_dot 
) [static]

Definition at line 304 of file filelist.c.

References direntry::flags, FOLDERFILE, is_hidden_file(), direntry::relname, and direntry::type.

Referenced by filelist_new(), and is_filtered_lib().

static int is_filtered_lib ( struct direntry file,
const char *  dir,
unsigned int  filter,
short  hide_dot 
) [static]
static int is_filtered_main ( struct direntry file,
const char *  UNUSEDdir,
unsigned int   UNUSEDfilter,
short  hide_dot 
) [static]

Definition at line 333 of file filelist.c.

References is_hidden_file(), and direntry::relname.

Referenced by filelist_new().

static int is_hidden_file ( const char *  filename,
short  hide_dot 
) [static]

Definition at line 281 of file filelist.c.

References len(), and strlen().

Referenced by is_filtered_file(), is_filtered_lib(), and is_filtered_main().

static void thumbnail_joblist_free ( ThumbnailJob tj) [static]
static void thumbnails_free ( void *  tjv) [static]

Definition at line 1290 of file filelist.c.

References MEM_freeN(), and thumbnail_joblist_free().

Referenced by thumbnails_start().

int thumbnails_running ( struct FileList filelist,
const struct bContext C 
)

Definition at line 1336 of file filelist.c.

References CTX_wm_manager(), and WM_jobs_test().

Referenced by file_refresh().

void thumbnails_start ( struct FileList filelist,
const struct bContext C 
)
static void thumbnails_startjob ( void *  tjv,
short *  stop,
short *  do_update,
float *  UNUSEDprogress 
) [static]
void thumbnails_stop ( struct FileList filelist,
const struct bContext C 
)

Definition at line 1331 of file filelist.c.

References CTX_wm_manager(), NULL, and WM_jobs_kill().

Referenced by ED_fileselect_clear(), and file_refresh().

static void thumbnails_update ( void *  tjv) [static]

Variable Documentation

ImBuf* gSpecialFileImages[SPECIAL_IMG_MAX] [static]

Definition at line 150 of file filelist.c.