Cleanup: Remove unused/unneeded code from old Asset Engine design
This code was written for the File Browser together with the Asset Engine design, that is not part of the Asset Browser/System design anymore. Updated comments accordingly. `FileDirEntryRevision` was actually used, but I removed it and moved the used members to the parent `FileDirEntry`, since there is no concept of revisions currently. There should be no functional changes.
This commit is contained in:
parent
5a693ce9e3
commit
88c855174d
Notes:
blender-bot
2024-03-03 04:40:13 +01:00
Referenced by issue #83656, Code cleanup
|
@ -727,40 +727,45 @@ static void draw_columnheader_columns(const FileSelectParams *params,
|
|||
/**
|
||||
* Updates the stat string stored in file->entry if necessary.
|
||||
*/
|
||||
static const char *filelist_get_details_column_string(FileAttributeColumnType column,
|
||||
const FileDirEntry *file,
|
||||
const bool small_size,
|
||||
const bool update_stat_strings)
|
||||
static const char *filelist_get_details_column_string(
|
||||
FileAttributeColumnType column,
|
||||
/* Generated string will be cached in the file, so non-const. */
|
||||
FileDirEntry *file,
|
||||
const bool small_size,
|
||||
const bool update_stat_strings)
|
||||
{
|
||||
switch (column) {
|
||||
case COLUMN_DATETIME:
|
||||
if (!(file->typeflag & FILE_TYPE_BLENDERLIB) && !FILENAME_IS_CURRPAR(file->relpath)) {
|
||||
if ((file->entry->datetime_str[0] == '\0') || update_stat_strings) {
|
||||
if ((file->draw_data.datetime_str[0] == '\0') || update_stat_strings) {
|
||||
char date[FILELIST_DIRENTRY_DATE_LEN], time[FILELIST_DIRENTRY_TIME_LEN];
|
||||
bool is_today, is_yesterday;
|
||||
|
||||
BLI_filelist_entry_datetime_to_string(
|
||||
NULL, file->entry->time, small_size, time, date, &is_today, &is_yesterday);
|
||||
NULL, file->time, small_size, time, date, &is_today, &is_yesterday);
|
||||
|
||||
if (is_today || is_yesterday) {
|
||||
BLI_strncpy(date, is_today ? N_("Today") : N_("Yesterday"), sizeof(date));
|
||||
}
|
||||
BLI_snprintf(
|
||||
file->entry->datetime_str, sizeof(file->entry->datetime_str), "%s %s", date, time);
|
||||
BLI_snprintf(file->draw_data.datetime_str,
|
||||
sizeof(file->draw_data.datetime_str),
|
||||
"%s %s",
|
||||
date,
|
||||
time);
|
||||
}
|
||||
|
||||
return file->entry->datetime_str;
|
||||
return file->draw_data.datetime_str;
|
||||
}
|
||||
break;
|
||||
case COLUMN_SIZE:
|
||||
if ((file->typeflag & (FILE_TYPE_BLENDER | FILE_TYPE_BLENDER_BACKUP)) ||
|
||||
!(file->typeflag & (FILE_TYPE_DIR | FILE_TYPE_BLENDERLIB))) {
|
||||
if ((file->entry->size_str[0] == '\0') || update_stat_strings) {
|
||||
if ((file->draw_data.size_str[0] == '\0') || update_stat_strings) {
|
||||
BLI_filelist_entry_size_to_string(
|
||||
NULL, file->entry->size, small_size, file->entry->size_str);
|
||||
NULL, file->size, small_size, file->draw_data.size_str);
|
||||
}
|
||||
|
||||
return file->entry->size_str;
|
||||
return file->draw_data.size_str;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -772,7 +777,7 @@ static const char *filelist_get_details_column_string(FileAttributeColumnType co
|
|||
|
||||
static void draw_details_columns(const FileSelectParams *params,
|
||||
const FileLayout *layout,
|
||||
const FileDirEntry *file,
|
||||
FileDirEntry *file,
|
||||
const int pos_x,
|
||||
const int pos_y,
|
||||
const uchar text_col[4])
|
||||
|
|
|
@ -1382,40 +1382,6 @@ static void filelist_entry_clear(FileDirEntry *entry)
|
|||
BKE_icon_delete(entry->preview_icon_id);
|
||||
entry->preview_icon_id = 0;
|
||||
}
|
||||
/* For now, consider FileDirEntryRevision::poin as not owned here,
|
||||
* so no need to do anything about it */
|
||||
|
||||
if (!BLI_listbase_is_empty(&entry->variants)) {
|
||||
FileDirEntryVariant *var;
|
||||
|
||||
for (var = entry->variants.first; var; var = var->next) {
|
||||
if (var->name) {
|
||||
MEM_freeN(var->name);
|
||||
}
|
||||
if (var->description) {
|
||||
MEM_freeN(var->description);
|
||||
}
|
||||
|
||||
if (!BLI_listbase_is_empty(&var->revisions)) {
|
||||
FileDirEntryRevision *rev;
|
||||
|
||||
for (rev = var->revisions.first; rev; rev = rev->next) {
|
||||
if (rev->comment) {
|
||||
MEM_freeN(rev->comment);
|
||||
}
|
||||
}
|
||||
|
||||
BLI_freelistN(&var->revisions);
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: tags! */
|
||||
|
||||
BLI_freelistN(&entry->variants);
|
||||
}
|
||||
else if (entry->entry) {
|
||||
MEM_freeN(entry->entry);
|
||||
}
|
||||
}
|
||||
|
||||
static void filelist_entry_free(FileDirEntry *entry)
|
||||
|
@ -1954,16 +1920,12 @@ static FileDirEntry *filelist_file_create_entry(FileList *filelist, const int in
|
|||
FileListInternEntry *entry = filelist->filelist_intern.filtered[index];
|
||||
FileListEntryCache *cache = &filelist->filelist_cache;
|
||||
FileDirEntry *ret;
|
||||
FileDirEntryRevision *rev;
|
||||
|
||||
ret = MEM_callocN(sizeof(*ret), __func__);
|
||||
rev = MEM_callocN(sizeof(*rev), __func__);
|
||||
|
||||
rev->size = (uint64_t)entry->st.st_size;
|
||||
ret->size = (uint64_t)entry->st.st_size;
|
||||
ret->time = (int64_t)entry->st.st_mtime;
|
||||
|
||||
rev->time = (int64_t)entry->st.st_mtime;
|
||||
|
||||
ret->entry = rev;
|
||||
ret->relpath = BLI_strdup(entry->relpath);
|
||||
if (entry->free_name) {
|
||||
ret->name = BLI_strdup(entry->name);
|
||||
|
|
|
@ -1043,68 +1043,6 @@ typedef enum eDirEntry_SelectFlag {
|
|||
|
||||
/* ***** Related to file browser, but never saved in DNA, only here to help with RNA. ***** */
|
||||
|
||||
/**
|
||||
* About Unique identifier.
|
||||
*
|
||||
* Stored in a CustomProps once imported.
|
||||
* Each engine is free to use it as it likes - it will be the only thing passed to it by blender to
|
||||
* identify asset/variant/version (concatenating the three into a single 48 bytes one).
|
||||
* Assumed to be 128bits, handled as four integers due to lack of real bytes proptype in RNA :|.
|
||||
*/
|
||||
#define ASSET_UUID_LENGTH 16
|
||||
|
||||
/* Used to communicate with asset engines outside of 'import' context. */
|
||||
#
|
||||
#
|
||||
typedef struct AssetUUID {
|
||||
int uuid_asset[4];
|
||||
int uuid_variant[4];
|
||||
int uuid_revision[4];
|
||||
} AssetUUID;
|
||||
|
||||
#
|
||||
#
|
||||
typedef struct AssetUUIDList {
|
||||
AssetUUID *uuids;
|
||||
int nbr_uuids;
|
||||
char _pad[4];
|
||||
} AssetUUIDList;
|
||||
|
||||
/* Container for a revision, only relevant in asset context. */
|
||||
#
|
||||
#
|
||||
typedef struct FileDirEntryRevision {
|
||||
struct FileDirEntryRevision *next, *prev;
|
||||
|
||||
char *comment;
|
||||
void *_pad;
|
||||
|
||||
int uuid[4];
|
||||
|
||||
uint64_t size;
|
||||
int64_t time;
|
||||
/* Temp caching of UI-generated strings... */
|
||||
char size_str[16];
|
||||
char datetime_str[16 + 8];
|
||||
} FileDirEntryRevision;
|
||||
|
||||
/* Container for a variant, only relevant in asset context.
|
||||
* In case there are no variants, a single one shall exist, with NULL name/description. */
|
||||
#
|
||||
#
|
||||
typedef struct FileDirEntryVariant {
|
||||
struct FileDirEntryVariant *next, *prev;
|
||||
|
||||
int uuid[4];
|
||||
char *name;
|
||||
char *description;
|
||||
|
||||
ListBase revisions;
|
||||
int nbr_revisions;
|
||||
int act_revision;
|
||||
} FileDirEntryVariant;
|
||||
|
||||
/* Container for mere direntry, with additional asset-related data. */
|
||||
#
|
||||
#
|
||||
typedef struct FileDirEntry {
|
||||
|
@ -1116,9 +1054,14 @@ typedef struct FileDirEntry {
|
|||
char *name;
|
||||
char *description;
|
||||
|
||||
/* Either point to active variant/revision if available, or own entry
|
||||
* (in mere filebrowser case). */
|
||||
FileDirEntryRevision *entry;
|
||||
uint64_t size;
|
||||
int64_t time;
|
||||
|
||||
struct {
|
||||
/* Temp caching of UI-generated strings. */
|
||||
char size_str[16];
|
||||
char datetime_str[16 + 8];
|
||||
} draw_data;
|
||||
|
||||
/** #eFileSel_File_Types. */
|
||||
int typeflag;
|
||||
|
@ -1141,32 +1084,16 @@ typedef struct FileDirEntry {
|
|||
/* The icon_id for the preview image. */
|
||||
int preview_icon_id;
|
||||
|
||||
/* Tags are for info only, most of filtering is done in asset engine. */
|
||||
char **tags;
|
||||
int nbr_tags;
|
||||
|
||||
short status;
|
||||
short flags;
|
||||
/* eFileAttributes defined in BLI_fileops.h */
|
||||
int attributes;
|
||||
|
||||
ListBase variants;
|
||||
int nbr_variants;
|
||||
int act_variant;
|
||||
} FileDirEntry;
|
||||
|
||||
/**
|
||||
* Array of direntries.
|
||||
* Array of directory entries.
|
||||
*
|
||||
* This struct is used in various, different contexts.
|
||||
*
|
||||
* In Filebrowser UI, it stores the total number of available entries, the number of visible
|
||||
* (filtered) entries, and a subset of those in 'entries' ListBase, from idx_start (included)
|
||||
* to idx_end (excluded).
|
||||
*
|
||||
* In AssetEngine context (i.e. outside of 'browsing' context), entries contain all needed data,
|
||||
* there is no filtering, so nbr_entries_filtered, entry_idx_start and entry_idx_end
|
||||
* should all be set to -1.
|
||||
* Stores the total number of available entries, the number of visible (filtered) entries, and a
|
||||
* subset of those in 'entries' ListBase, from idx_start (included) to idx_end (excluded).
|
||||
*/
|
||||
#
|
||||
#
|
||||
|
@ -1180,14 +1107,6 @@ typedef struct FileDirEntryArr {
|
|||
char root[1024];
|
||||
} FileDirEntryArr;
|
||||
|
||||
#if 0 /* UNUSED */
|
||||
/* FileDirEntry.status */
|
||||
enum {
|
||||
ASSET_STATUS_LOCAL = 1 << 0, /* If active uuid is available locally/immediately. */
|
||||
ASSET_STATUS_LATEST = 1 << 1, /* If active uuid is latest available version. */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* FileDirEntry.flags */
|
||||
enum {
|
||||
FILE_ENTRY_INVALID_PREVIEW = 1 << 0, /* The preview for this entry could not be generated. */
|
||||
|
|
Loading…
Reference in New Issue