Fix up the custom filelist. DND in the main window still doesn't work
This commit is contained in:
parent
cbb925d4cb
commit
95537031b9
@ -25,6 +25,9 @@
|
||||
if (dat) { free(dat); dat = NULL; } \
|
||||
}
|
||||
|
||||
#undef __UNUSED__
|
||||
#define __UNUSED__ __attribute__ ((unused))
|
||||
|
||||
/* ECDB Global Variables */
|
||||
typedef struct _Ecdb_Main Ecdb_Main;
|
||||
struct _Ecdb_Main
|
||||
|
@ -1,9 +1,44 @@
|
||||
#include "ecdb.h"
|
||||
|
||||
static void free_file(Ewl_Filelist_File *file);
|
||||
void ecdb_custom_filelist_model_filter(Ewl_Filelist_Directory *dir);
|
||||
unsigned int ecdb_custom_filelist_model_data_unref(void *data);
|
||||
void *ecdb_custom_filelist_model_data_fetch(void *data, unsigned int row,
|
||||
unsigned int column);
|
||||
Ewl_Filelist_Directory *ecdb_custom_filelist_directory_new(Ecdb_Source *src);
|
||||
void ecdb_custom_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void ecdb_custom_filelist_cb_clicked(Ewl_Widget *w, void *ev,
|
||||
void *data);
|
||||
char *ecdb_custom_filelist_selected_file_get(Ewl_Filelist *fl);
|
||||
Ewl_Widget *ecdb_custom_filelist_view_widget_fetch(void *data, unsigned int row, unsigned int column);
|
||||
|
||||
Ewl_Widget *
|
||||
ecdb_custom_filelist_new(void)
|
||||
{
|
||||
const char *dnd_types[] = {"text/uri-list", NULL};
|
||||
Ewl_Widget *ret;
|
||||
|
||||
ret = ewl_filelist_new();
|
||||
ewl_model_data_unref_set(EWL_FILELIST(ret)->model,
|
||||
ecdb_custom_filelist_model_data_unref);
|
||||
ewl_model_data_fetch_set(EWL_FILELIST(ret)->model,
|
||||
ecdb_custom_filelist_model_data_fetch);
|
||||
ewl_view_widget_fetch_set(EWL_FILELIST(ret)->view,
|
||||
ecdb_custom_filelist_view_widget_fetch);
|
||||
ewl_callback_append(ret, EWL_CALLBACK_DND_DATA_RECEIVED,
|
||||
ecdb_custom_filelist_dnd_dropped_cb, NULL);
|
||||
ewl_dnd_accepted_types_set(ret, dnd_types);
|
||||
ewl_callback_del_type(EWL_FILELIST(ret)->controller,
|
||||
EWL_CALLBACK_CLICKED);
|
||||
ewl_callback_prepend(EWL_FILELIST(ret)->controller,
|
||||
EWL_CALLBACK_CLICKED, ecdb_custom_filelist_cb_clicked,
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
ecdb_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
ecdb_custom_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev,
|
||||
void *data__UNUSED__)
|
||||
{
|
||||
int i;
|
||||
Ewl_Event_Dnd_Data_Received *dnd = ev;
|
||||
@ -14,27 +49,22 @@ ecdb_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
* and add them as children to parent */
|
||||
parent = ewl_widget_data_get(w, "source");
|
||||
|
||||
/* Only handle uris for now */
|
||||
if (strcmp(dnd->type, "text/uri-list"))
|
||||
return;
|
||||
|
||||
for (i = 0; i < dnd->len; i++)
|
||||
{
|
||||
printf("file: %s\n", files[i]);
|
||||
|
||||
/* Cheap and dirty hax */
|
||||
/* XXX FIXME XXX */
|
||||
path = strdup(&files[i][7]);
|
||||
child = ecdb_source_new();
|
||||
ecdb_source_data_set(child, path);
|
||||
ecdb_source_child_append(parent, child);
|
||||
free(path);
|
||||
}
|
||||
|
||||
ecdb_filelist_directory_set(EWL_FILELIST(w), parent);
|
||||
ecdb_custom_filelist_directory_set(EWL_FILELIST(w), parent);
|
||||
}
|
||||
|
||||
void
|
||||
ecdb_filelist_directory_set(Ewl_Filelist *fl, Ecdb_Source *src)
|
||||
ecdb_custom_filelist_directory_set(Ewl_Filelist *fl, Ecdb_Source *src)
|
||||
{
|
||||
if (src)
|
||||
{
|
||||
@ -42,9 +72,9 @@ ecdb_filelist_directory_set(Ewl_Filelist *fl, Ecdb_Source *src)
|
||||
Ewl_Event_Action_Response ev_data;
|
||||
|
||||
data = ewl_mvc_data_get(EWL_MVC(fl->controller));
|
||||
if (data) ewl_filelist_model_data_unref(data);
|
||||
if (data) ecdb_custom_filelist_model_data_unref(data);
|
||||
|
||||
data = ecdb_filelist_directory_new(src);
|
||||
data = ecdb_custom_filelist_directory_new(src);
|
||||
ewl_mvc_data_set(EWL_MVC(fl->controller), data);
|
||||
ewl_mvc_dirty_set(EWL_MVC(fl->controller), TRUE);
|
||||
ev_data.response = EWL_FILELIST_EVENT_DIR_CHANGE;
|
||||
@ -57,7 +87,7 @@ ecdb_filelist_directory_set(Ewl_Filelist *fl, Ecdb_Source *src)
|
||||
}
|
||||
|
||||
Ewl_Filelist_Directory *
|
||||
ecdb_filelist_directory_new(Ecdb_Source *parent)
|
||||
ecdb_custom_filelist_directory_new(Ecdb_Source *parent)
|
||||
{
|
||||
Ecdb_Source *src;
|
||||
Ewl_Filelist_Directory *dir;
|
||||
@ -81,12 +111,11 @@ ecdb_filelist_directory_new(Ecdb_Source *parent)
|
||||
{
|
||||
if (!ecore_file_exists(src->dst))
|
||||
{
|
||||
printf("File doesn't exist!\n");
|
||||
printf("File doesn't exist: %s\n", src->dst);
|
||||
break;
|
||||
}
|
||||
file = calloc(1, sizeof(Ewl_Filelist_File));
|
||||
file->name = ecore_string_instance(ecore_file_file_get
|
||||
(src->dst));
|
||||
file->name = ecore_string_instance(src->dst);
|
||||
|
||||
stat(src->dst, &st);
|
||||
file->size = st.st_size;
|
||||
@ -116,20 +145,15 @@ ecdb_filelist_directory_new(Ecdb_Source *parent)
|
||||
|
||||
dir = calloc(1, sizeof(Ewl_Filelist_Directory));
|
||||
|
||||
dir->rfiles = ecore_list_new();
|
||||
dir->rdirs = ecore_list_new();
|
||||
|
||||
/* Also dirty hax, need filtering instead of this */
|
||||
//dir->files = ecore_list_new();
|
||||
//dir->dirs = ecore_list_new();
|
||||
dir->name = ecore_string_instance("bunny");
|
||||
|
||||
dir->files = files;
|
||||
dir->dirs = dirs;
|
||||
dir->filter = NULL;
|
||||
dir->files = ecore_list_new();
|
||||
dir->dirs = ecore_list_new();
|
||||
dir->rfiles = files;
|
||||
dir->rdirs = dirs;
|
||||
dir->num_dirs = nd;
|
||||
dir->num_files = nf;
|
||||
|
||||
ecdb_custom_filelist_model_filter(dir);
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
@ -138,3 +162,213 @@ static void free_file(Ewl_Filelist_File *file)
|
||||
ecore_string_release(file->name);
|
||||
FREE(file);
|
||||
}
|
||||
|
||||
void
|
||||
ecdb_custom_filelist_model_filter(Ewl_Filelist_Directory *dir)
|
||||
{
|
||||
Ewl_Filelist_File *file;
|
||||
int nd, nf;
|
||||
|
||||
ecore_list_clear(dir->files);
|
||||
ecore_list_clear(dir->dirs);
|
||||
nd = nf = 0;
|
||||
|
||||
if (!dir->show_dot)
|
||||
{
|
||||
ecore_list_first_goto(dir->rfiles);
|
||||
while ((file = ecore_list_next(dir->rfiles)))
|
||||
{
|
||||
if (ecore_file_file_get(file->name)[0] != '.')
|
||||
{
|
||||
ecore_list_append(dir->files, file);
|
||||
nf++;
|
||||
}
|
||||
}
|
||||
ecore_list_first_goto(dir->rdirs);
|
||||
while ((file = ecore_list_next(dir->rdirs)))
|
||||
{
|
||||
if (ecore_file_file_get(file->name)[0] != '.')
|
||||
{
|
||||
ecore_list_append(dir->dirs, file);
|
||||
nd++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ecore_list_first_goto(dir->rfiles);
|
||||
while ((file = ecore_list_next(dir->rfiles)))
|
||||
{
|
||||
ecore_list_append(dir->files, file);
|
||||
nf++;
|
||||
}
|
||||
ecore_list_first_goto(dir->rdirs);
|
||||
while ((file = ecore_list_next(dir->rdirs)))
|
||||
{
|
||||
ecore_list_append(dir->dirs, file);
|
||||
nd++;
|
||||
}
|
||||
}
|
||||
|
||||
dir->num_dirs = nd;
|
||||
dir->num_files = nf;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
ecdb_custom_filelist_model_data_unref(void *data)
|
||||
{
|
||||
Ewl_Filelist_Directory *dir;
|
||||
|
||||
dir = data;
|
||||
ecore_list_destroy(dir->files);
|
||||
ecore_list_destroy(dir->dirs);
|
||||
ecore_list_destroy(dir->rfiles);
|
||||
ecore_list_destroy(dir->rdirs);
|
||||
FREE(dir);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void *
|
||||
ecdb_custom_filelist_model_data_fetch(void *data, unsigned int row,
|
||||
unsigned int column)
|
||||
{
|
||||
Ewl_Filelist_Directory *fld;
|
||||
Ewl_Filelist_File *file;
|
||||
int i;
|
||||
void *ret;
|
||||
|
||||
fld = data;
|
||||
|
||||
/* Check if in dirs or files list */
|
||||
if (row < fld->num_dirs)
|
||||
file = ecore_list_index_goto(fld->dirs, row);
|
||||
else
|
||||
{
|
||||
i = (row - fld->num_dirs);
|
||||
file = ecore_list_index_goto(fld->files, i);
|
||||
}
|
||||
|
||||
if (column == 1) ret = ewl_filelist_size_get(file->size);
|
||||
else if (column == 2) ret = ewl_filelist_perms_get(file->mode);
|
||||
else if (column == 3) ret = ewl_filelist_username_get
|
||||
(file->username);
|
||||
else if (column == 4) ret = ewl_filelist_groupname_get
|
||||
(file->groupname);
|
||||
else if (column == 5) ret = ewl_filelist_modtime_get
|
||||
(file->modtime);
|
||||
else ret = strdup(file->name);
|
||||
|
||||
/* ret needs to be freed by the view or with model_data_free_set */
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void ecdb_custom_filelist_cb_clicked(Ewl_Widget *w, void *ev,
|
||||
void *data)
|
||||
{
|
||||
Ewl_Event_Mouse_Down *md;
|
||||
char *file;
|
||||
int i = 0;
|
||||
Ewl_Widget *c;
|
||||
Ewl_Filelist *fl;
|
||||
Ecdb_Source *parent, *child;
|
||||
|
||||
md = ev;
|
||||
fl = data;
|
||||
|
||||
if (!ewl_mvc_selected_count_get(EWL_MVC(fl->controller)))
|
||||
return;
|
||||
|
||||
if (md->clicks != 2)
|
||||
{
|
||||
ewl_filelist_selected_files_change_notify(fl);
|
||||
return;
|
||||
}
|
||||
|
||||
c = ewl_container_child_at_recursive_get(EWL_CONTAINER(fl),
|
||||
md->base.x, md->base.y);
|
||||
|
||||
while (c && c->parent)
|
||||
{
|
||||
if (!ewl_widget_internal_is(c))
|
||||
{
|
||||
i = 1;
|
||||
break;
|
||||
}
|
||||
c = c->parent;
|
||||
}
|
||||
|
||||
if (!i)
|
||||
return;
|
||||
|
||||
file = ecdb_custom_filelist_selected_file_get(fl);
|
||||
|
||||
parent = ewl_widget_data_get(EWL_WIDGET(fl), "source");
|
||||
i = 0;
|
||||
while ((child = parent->children[i]))
|
||||
{
|
||||
if ((child->dir) && (!strcmp(child->dst, file)))
|
||||
{
|
||||
printf("Setting directory\n");
|
||||
ecdb_custom_filelist_directory_set(fl, child);
|
||||
FREE(file);
|
||||
return;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
ewl_filelist_selected_files_change_notify(fl);
|
||||
FREE(file);
|
||||
}
|
||||
|
||||
char *
|
||||
ecdb_custom_filelist_selected_file_get(Ewl_Filelist *fl)
|
||||
{
|
||||
Ewl_Filelist_Directory *data;
|
||||
Ewl_Filelist_File *file;
|
||||
Ewl_Selection_Idx *idx;
|
||||
int i;
|
||||
|
||||
idx = ewl_mvc_selected_get(EWL_MVC(fl->controller));
|
||||
data = EWL_SELECTION(idx)->data;
|
||||
if (idx->row < data->num_dirs)
|
||||
file = ecore_list_index_goto(data->dirs, idx->row);
|
||||
else
|
||||
{
|
||||
i = (idx->row - data->num_dirs);
|
||||
file = ecore_list_index_goto(data->files, i);
|
||||
}
|
||||
FREE(idx);
|
||||
return strdup(file->name);
|
||||
}
|
||||
|
||||
Ewl_Widget *
|
||||
ecdb_custom_filelist_view_widget_fetch(void *data, unsigned int row __UNUSED__,
|
||||
unsigned int column)
|
||||
{
|
||||
Ewl_Widget *ret;
|
||||
const char *img = NULL, *stock, *filename;
|
||||
|
||||
/* Create icon */
|
||||
ret = ewl_icon_simple_new();
|
||||
ewl_icon_constrain_set(EWL_ICON(ret), EWL_ICON_SIZE_MEDIUM);
|
||||
ewl_box_orientation_set(EWL_BOX(ret),
|
||||
EWL_ORIENTATION_HORIZONTAL);
|
||||
ewl_object_alignment_set(EWL_OBJECT(ret), EWL_FLAG_ALIGN_LEFT);
|
||||
|
||||
/* Get and set data into icon */
|
||||
if (column == 0)
|
||||
{
|
||||
stock = ewl_filelist_stock_icon_get(data);
|
||||
img = ewl_icon_theme_icon_path_get(stock, EWL_ICON_SIZE_MEDIUM);
|
||||
if (img) ewl_icon_image_set(EWL_ICON(ret), img, NULL);
|
||||
|
||||
filename = ecore_file_file_get(data);
|
||||
ewl_icon_label_set(EWL_ICON(ret), filename);
|
||||
}
|
||||
else
|
||||
ewl_icon_label_set(EWL_ICON(ret), data);
|
||||
|
||||
FREE(data);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,8 @@
|
||||
#ifndef ECDB_FILELIST_CUSTOM_H
|
||||
#define ECDB_FILELIST_CUSTOM_H
|
||||
|
||||
void ecdb_filelist_directory_set(Ewl_Filelist *fl,
|
||||
void ecdb_custom_filelist_directory_set(Ewl_Filelist *fl,
|
||||
Ecdb_Source *src);
|
||||
Ewl_Filelist_Directory *ecdb_filelist_directory_new(Ecdb_Source *src);
|
||||
void ecdb_filelist_dnd_dropped_cb(Ewl_Widget *w,
|
||||
void *ev, void *data);
|
||||
|
||||
Ewl_Widget *ecdb_custom_filelist_new(void);
|
||||
|
||||
#endif
|
||||
|
@ -6,19 +6,20 @@ static void _data_disc_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _burn_image_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _copy_disc_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _audio_disc_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _hidden_files_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
|
||||
static Ewl_Widget *_page_start(void);
|
||||
static Ewl_Widget *_page_data(void);
|
||||
|
||||
static void
|
||||
_destroy_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_destroy_cb(Ewl_Widget *w, void *ev __UNUSED__, void *data __UNUSED__)
|
||||
{
|
||||
ewl_widget_destroy(w);
|
||||
ecore_event_add(ECORE_EVENT_SIGNAL_EXIT, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_destroy_data_page_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_destroy_data_page_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, void *data)
|
||||
{
|
||||
Ecdb_Burn_Project *proj = data;
|
||||
printf("Destroy burn project data\n");
|
||||
@ -44,6 +45,7 @@ void
|
||||
ecdb_create_main_gui(void)
|
||||
{
|
||||
Ewl_Widget *main_win, *vbox, *filelist, *note, *fn;
|
||||
Ewl_Widget *cm, *menu;
|
||||
|
||||
main_win = ewl_window_new();
|
||||
ewl_window_name_set(EWL_WINDOW(main_win), "ECDB");
|
||||
@ -67,6 +69,16 @@ ecdb_create_main_gui(void)
|
||||
ewl_object_maximum_h_set(EWL_OBJECT(filelist), 300);
|
||||
ewl_widget_show(filelist);
|
||||
|
||||
cm = ewl_context_menu_new();
|
||||
ewl_context_menu_attach(EWL_CONTEXT_MENU(cm), filelist);
|
||||
|
||||
menu = ewl_menu_item_new();
|
||||
ewl_button_label_set(EWL_BUTTON(menu), "Show/Hide Hidden Files");
|
||||
ewl_container_child_append(EWL_CONTAINER(cm), menu);
|
||||
ewl_callback_append(menu, EWL_CALLBACK_CLICKED, _hidden_files_cb,
|
||||
filelist);
|
||||
ewl_widget_show(menu);
|
||||
|
||||
note = ewl_notebook_new();
|
||||
ewl_object_fill_policy_set(EWL_OBJECT(note), EWL_FLAG_FILL_ALL);
|
||||
ewl_container_child_append(EWL_CONTAINER(vbox), note);
|
||||
@ -89,27 +101,23 @@ static Ewl_Widget
|
||||
char *bdr_titles[] = {"Create Data Disc",
|
||||
"Burn Image",
|
||||
"Copy Disc",
|
||||
"Create Audio Disc",
|
||||
NULL};
|
||||
"Create Audio Disc"};
|
||||
|
||||
char *but_titles[] = {"Data Disc",
|
||||
"Image",
|
||||
"Copy",
|
||||
"Audio Disc",
|
||||
NULL};
|
||||
"Audio Disc"};
|
||||
|
||||
char *images[] = {EWL_ICON_DRIVE_CDROM,
|
||||
EWL_ICON_MEDIA_CDROM,
|
||||
EWL_ICON_DRIVE_HARDDISK,
|
||||
EWL_ICON_AUDIO_X_GENERIC,
|
||||
NULL};
|
||||
EWL_ICON_AUDIO_X_GENERIC};
|
||||
|
||||
static void (*funs[]) (Ewl_Widget *w, void *ev, void *data) =
|
||||
{_data_disc_cb,
|
||||
_burn_image_cb,
|
||||
_copy_disc_cb,
|
||||
_audio_disc_cb,
|
||||
NULL};
|
||||
_audio_disc_cb};
|
||||
|
||||
box = ewl_hbox_new();
|
||||
ewl_object_fill_policy_set(EWL_OBJECT(box), EWL_FLAG_FILL_NONE);
|
||||
@ -142,7 +150,6 @@ static Ewl_Widget
|
||||
{
|
||||
Ewl_Widget *box, *filelist;
|
||||
Ecdb_Burn_Project *proj;
|
||||
const char *dnd_types[] = {"text/uri-list", NULL};
|
||||
|
||||
proj = ecdb_burn_project_new();
|
||||
|
||||
@ -152,11 +159,8 @@ static Ewl_Widget
|
||||
_destroy_data_page_cb, proj);
|
||||
ewl_widget_show(box);
|
||||
|
||||
filelist = ewl_filelist_new();
|
||||
filelist = ecdb_custom_filelist_new();
|
||||
ewl_filelist_multiselect_set(EWL_FILELIST(filelist), TRUE);
|
||||
ewl_dnd_accepted_types_set(filelist, dnd_types);
|
||||
ewl_callback_append(filelist, EWL_CALLBACK_DND_DATA_RECEIVED,
|
||||
ecdb_filelist_dnd_dropped_cb, NULL);
|
||||
ewl_container_child_append(EWL_CONTAINER(box), filelist);
|
||||
ewl_widget_data_set(filelist, "source", proj->files);
|
||||
ewl_widget_show(filelist);
|
||||
@ -165,27 +169,40 @@ static Ewl_Widget
|
||||
}
|
||||
|
||||
static void
|
||||
_data_disc_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_data_disc_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
printf("Create Data Disc\n");
|
||||
ecdb_create_data_tab();
|
||||
}
|
||||
|
||||
static void
|
||||
_burn_image_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_burn_image_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
printf("Burn Image to Disc\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_copy_disc_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_copy_disc_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
printf("Copy Disc\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_audio_disc_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
_audio_disc_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
printf("Create Audio Disc\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_hidden_files_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, void *data)
|
||||
{
|
||||
Ewl_Filelist *filelist = data;
|
||||
unsigned int hf;
|
||||
|
||||
hf = ewl_filelist_show_dot_files_get(filelist);
|
||||
ewl_filelist_show_dot_files_set(filelist, !hf);
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ ecdb_source_data_set(Ecdb_Source *src, const char *dst)
|
||||
/* Add the files recursively here */
|
||||
if (ecore_file_is_dir(src->dst))
|
||||
{
|
||||
src->dir = TRUE;
|
||||
src->dir = !!TRUE;
|
||||
ecdb_source_add_directory_recursive(src);
|
||||
}
|
||||
}
|
||||
@ -73,6 +73,7 @@ ecdb_source_add_directory_recursive(Ecdb_Source *parent)
|
||||
{
|
||||
Ecore_List *files;
|
||||
Ecdb_Source *child;
|
||||
char path[PATH_MAX];
|
||||
char *src;
|
||||
|
||||
files = ecore_file_ls(parent->dst);
|
||||
@ -80,10 +81,12 @@ ecdb_source_add_directory_recursive(Ecdb_Source *parent)
|
||||
while ((src = ecore_list_first_remove(files)))
|
||||
{
|
||||
child = ecdb_source_new();
|
||||
ecdb_source_data_set(child, src);
|
||||
snprintf(path, PATH_MAX, "%s/%s", parent->dst, src);
|
||||
ecdb_source_data_set(child, path);
|
||||
ecdb_source_child_append(parent, child);
|
||||
free(src);
|
||||
}
|
||||
ecore_list_destroy(files);
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user