Skip to content

Commit

Permalink
use FileData even for sidecar file list
Browse files Browse the repository at this point in the history
  • Loading branch information
nadvornik committed Oct 1, 2007
1 parent dab00f0 commit bd71fb9
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 77 deletions.
90 changes: 23 additions & 67 deletions src/filelist.c
Original file line number Diff line number Diff line change
Expand Up @@ -568,8 +568,6 @@ const gchar *text_from_time(time_t t)
* file info struct
*-----------------------------------------------------------------------------
*/
SidecarFileData *sidecar_file_data_new_from_file_data(const FileData *fd);
void sidecar_file_data_free(SidecarFileData *fd);

static void file_data_set_path(FileData *fd, const gchar *path)
{
Expand Down Expand Up @@ -663,23 +661,29 @@ FileData *file_data_new_simple(const gchar *path_utf8)
return file_data_new(path_utf8, &st);
}

FileData *file_data_add_sidecar_file(FileData *target, SidecarFileData *sfd)
FileData *file_data_add_sidecar_file(FileData *target, FileData *sfd)
{
target->sidecar_files = g_list_append(target->sidecar_files, sfd);
target->sidecar_files = g_list_append(target->sidecar_files, file_data_ref(sfd));
sfd->parent = target;
return target;
}

FileData *file_data_merge_sidecar_files(FileData *target, FileData *source)
{
SidecarFileData *sfd;

sfd = sidecar_file_data_new_from_file_data(source);
file_data_add_sidecar_file(target, sfd);
GList *work;
file_data_add_sidecar_file(target, source);

work = source->sidecar_files;
while (work)
{
FileData *sfd = work->data;
sfd->parent = target;
work = work->next;
}

target->sidecar_files = g_list_concat(target->sidecar_files, source->sidecar_files);
source->sidecar_files = NULL;

file_data_unref(source);
return target;
}

Expand All @@ -700,11 +704,11 @@ void file_data_free(FileData *fd)
work = fd->sidecar_files;
while (work)
{
sidecar_file_data_free((SidecarFileData *)work->data);
FileData *sfd = work->data;
sfd->parent = NULL;
work = work->next;
}

g_list_free(fd->sidecar_files);
filelist_free(fd->sidecar_files);

file_data_change_info_free(NULL, fd);
g_free(fd);
Expand Down Expand Up @@ -796,68 +800,20 @@ void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd)
*-----------------------------------------------------------------------------
*/

SidecarFileData *sidecar_file_data_new(const gchar *path, struct stat *st)
{
SidecarFileData *fd;

fd = g_new0(SidecarFileData, 1);
fd->path = path_to_utf8(path);
fd->name = filename_from_path(fd->path);
fd->extension = extension_from_path(fd->path);

fd->size = st->st_size;
fd->date = st->st_mtime;

return fd;
}

SidecarFileData *sidecar_file_data_new_simple(const gchar *path)
{
struct stat st;

if (!stat(path, &st))
{
st.st_size = 0;
st.st_mtime = 0;
}

return sidecar_file_data_new(path, &st);
}

SidecarFileData *sidecar_file_data_new_from_file_data(const FileData *fd)
{
SidecarFileData *sfd;

sfd = g_new0(SidecarFileData, 1);
sfd->path = g_strdup(fd->path);
sfd->name = filename_from_path(sfd->path);;
sfd->extension = extension_from_path(sfd->path);

sfd->size = fd->size;
sfd->date = fd->date;

return sfd;
}


void sidecar_file_data_free(SidecarFileData *fd)
{
g_free(fd->path);
g_free(fd);
}

gint sidecar_file_priority(const gchar *path)
{
const char *extension = extension_from_path(path);

printf("prio %s >%s<\n", path, extension);

if (strcmp(extension, ".cr2") == 0) return 1;
if (strcmp(extension, ".crw") == 0) return 2;
if (strcmp(extension, ".nef") == 0) return 3;
if (strcmp(extension, ".raw") == 0) return 4;
if (strcmp(extension, ".jpg") == 0) return 1;

if (strcmp(extension, ".cr2") == 0) return 1001;
if (strcmp(extension, ".crw") == 0) return 1002;
if (strcmp(extension, ".nef") == 0) return 1003;
if (strcmp(extension, ".raw") == 0) return 1004;

if (strcmp(extension, ".jpg") == 0) return 1001;

if (strcmp(extension, ".vaw") == 0) return 2001;
if (strcmp(extension, ".mp3") == 0) return 2002;
Expand All @@ -875,7 +831,7 @@ gchar *sidecar_file_data_list_to_string(FileData *fd)
work = fd->sidecar_files;
while (work)
{
SidecarFileData *sfd = work->data;
FileData *sfd = work->data;
result = g_string_append(result, "+ ");
result = g_string_append(result, sfd->extension);
work = work->next;
Expand Down
11 changes: 1 addition & 10 deletions src/typedefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ typedef struct _CollectWindow CollectWindow;
typedef struct _ImageWindow ImageWindow;

typedef struct _FileData FileData;
typedef struct _SidecarFileData SidecarFileData;
typedef struct _FileDataChangeInfo FileDataChangeInfo;

typedef struct _LayoutWindow LayoutWindow;
Expand Down Expand Up @@ -329,15 +328,6 @@ struct _ImageWindow

#define FILEDATA_MARKS_SIZE 10

struct _SidecarFileData {
gint type;
gchar *path;
const gchar *name;
const gchar *extension;
gint64 size;
time_t date;
};

struct _FileDataChangeInfo {
gchar *source;
gchar *dest;
Expand All @@ -354,6 +344,7 @@ struct _FileData {
time_t date;
gboolean marks[FILEDATA_MARKS_SIZE];
GList *sidecar_files;
FileData *parent; /* parent file if this is a sidecar file, NULL otherwise */
FileDataChangeInfo *change; /* for rename, move ... */
GdkPixbuf *pixbuf;
gint ref;
Expand Down

0 comments on commit bd71fb9

Please sign in to comment.